Hide Forgot
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:
https://github.com/pulp/pulp/pull/737
build: 2.4.0-0.7.beta
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'
https://github.com/pulp/pulp/pull/1045
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 ~]#
This has been fixed in Pulp 2.4.0-1.