Bug 1005899

Summary: node importer should catch and report errors fetching the bindings from the parent node
Product: [Retired] Pulp Reporter: Jeff Ortel <jortel>
Component: nodesAssignee: Jeff Ortel <jortel>
Status: CLOSED CURRENTRELEASE QA Contact: Preethi Thomas <pthomas>
Severity: medium Docs Contact:
Priority: medium    
Version: MasterCC: skarmark
Target Milestone: ---Keywords: Triaged
Target Release: 2.4.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-08-09 06:55:47 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Jeff Ortel 2013-09-09 15:55:43 UTC
Description of problem:

The node handler should catch and report errors fetching bindings in the returned report rather than a stack trace.


Version-Release number of selected component (if applicable):


How reproducible:

Always.


Steps to Reproduce:
1. Set the oauth credentials in /etc/pulp/nodes.conf [parent-oauth] to be incorrect.
2. Sync the child node.
3.

Actual results:

CLI reports unhandled error see: the log.

Expected results:

Reported gracefully.

Additional info:

Comment 1 Jeff Ortel 2013-12-12 17:23:56 UTC
https://github.com/pulp/pulp/pull/737

Comment 2 Jeff Ortel 2014-04-03 13:36:34 UTC
build: 2.4.0-0.7.beta

Comment 3 Preethi Thomas 2014-07-10 16:41:06 UTC
fails-qa
[root@qe-blade-14 ~]# rpm -qa pulp-server
pulp-server-2.4.0-0.23.beta.el6.noarch

[root@qe-blade-14 ~]# pulp-admin node sync run --node-id node1
This command may be exited via ctrl+c without affecting the request.



An unexpected error has occurred. More information can be found in the client
log file ~/.pulp/admin.log.


/var/log/messages

Jul 10 12:17:44 qe-blade-14 pulp: pulp.server.agent.direct.services:INFO: {'reboot': {'scheduled': False, 'details': {}}, 'details': {'node': {'details': {'message': 'RequestException: GET request on /pulp/api/v2/consumers/node1/bindings/ failed with 401 - Pulp exception occurred: AuthenticationFailed', 'trace': 'Traceback (most recent call last):\n\n  File "/usr/lib/python2.6/site-packages/pulp/agent/lib/dispatcher.py", line 108, in update\n    report = handler.update(conduit, units, dict(options))\n\n  File "/usr/lib/python2.6/site-packages/pulp_node/handlers/handler.py", line 92, in update\n    bindings = RepositoryBinding.fetch_all(pulp_bindings, conduit.consumer_id)\n\n  File "/usr/lib/python2.6/site-packages/pulp_node/handlers/model.py", line 513, in fetch_all\n    http = bindings.bind.find_by_id(node_id)\n\n  File "/usr/lib/python2.6/site-packages/pulp/bindings/consumer.py", line 158, in find_by_id\n    return self.server.GET(path)\n\n  File "/usr/lib/python2.6/site-packages/pulp/bindings/server.py", line 85, in GET\n    return self._request(\'GET\', path, queries)\n\n  File "/usr/lib/python2.6/site-packages/pulp/bindings/server.py", line 143, in _request\n    self._handle_exceptions(response_code, response_body)\n\n  File "/usr/lib/python2.6/site-packages/pulp/bindings/server.py", line 184, in _handle_exceptions\n    raise code_class_mappings[response_code](response_body)\n\nPermissionsException: RequestException: GET request on /pulp/api/v2/consumers/node1/bindings/ failed with 401 - Pulp exception occurred: AuthenticationFailed\n'}, 'succeeded': False}}, 'succeeded': False, 'num_changes': 0}



admin.log



2014-07-10 12:17:45,087 - ERROR - Client-side exception occurred
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/pulp/client/extensions/core.py", line 478, in run
    exit_code = Cli.run(self, args)
  File "/usr/lib/python2.6/site-packages/okaara/cli.py", line 974, in run
    exit_code = command_or_section.execute(self.prompt, remaining_args)
  File "/usr/lib/python2.6/site-packages/pulp/client/extensions/extensions.py", line 224, in execute
    return self.method(*arg_list, **clean_kwargs)
  File "/usr/lib/python2.6/site-packages/pulp_node/extensions/admin/commands.py", line 515, in run
    self.poll([task], kwargs)
  File "/usr/lib/python2.6/site-packages/pulp/client/commands/polling.py", line 148, in poll
    self.succeeded(task)
  File "/usr/lib/python2.6/site-packages/pulp_node/extensions/admin/commands.py", line 530, in succeeded
    r = UpdateRenderer(self.context.prompt, report)
  File "/usr/lib/python2.6/site-packages/pulp_node/extensions/admin/rendering.py", line 215, in __init__
    self.errors = self.details['errors']
KeyError: 'errors'

Comment 4 Jeff Ortel 2014-07-16 14:40:25 UTC
https://github.com/pulp/pulp/pull/1045

Comment 5 Preethi Thomas 2014-07-23 20:20:22 UTC
verified

[root@cloud-qe-6 ~]# pulp-admin node sync run --node-id node1
This command may be exited via ctrl+c without affecting the request.



RequestException: GET request on /pulp/api/v2/consumers/node1/bindings/ failed
with 401 - Pulp exception occurred: AuthenticationFailed

Error occurred during synchronization, check the child node logs for details


[root@cloud-qe-6 ~]#

Comment 6 Randy Barlow 2014-08-09 06:55:47 UTC
This has been fixed in Pulp 2.4.0-1.