Description of problem: Unhandled Exception is raised if during creation of consumer profile required key is missed. Version-Release number of selected component (if applicable): 2.4.0-0.23.beta How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: 500 Unhandled Exception Expected results: 400 Additional info: $ curl -H "Accept: application/json" -X POST -k -u admin:admin -d '{"content_type": "rpm","profile": [{"arch": "i686","epoch": 0,"name": "glib2","release": "2.fc17","vendor": "Fedora Project","version": "2.32.4"},{"arch": "x86_64","epoch": 0,"release": "8.fc17","vendor": "Fedora Project","version": "4.9.1.3"}]}' 'https://example.com/pulp/api/v2/consumers/c1/profiles/'|python -m json.tool % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 4959 100 4714 100 245 4214 219 0:00:01 0:00:01 --:--:-- 4216 { "_href": "/pulp/api/v2/consumers/c1/profiles/", "error_message": "Unhandled Exception", "exception": [ "KeyError: 'name'\n" ], "http_request_method": "POST", "http_status": 500, "traceback": [ " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/middleware/exception.py\", line 44, in __call__\n return self.app(environ, start_response)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/middleware/postponed.py\", line 42, in __call__\n return self.app(environ, start_response)\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 279, in wsgi\n result = self.handle_with_processors()\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 29, in _handle_with_processors\n return process(self.processors)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in process\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 566, in processor\n return handler()\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in <lambda>\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in process\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 581, in processor\n result = handler()\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in <lambda>\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 28, in process\n return self.handle()\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 230, in handle\n return self._delegate(fn, self.fvars, args)\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 422, in _delegate\n return f()\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 430, in <lambda>\n f = lambda: self._delegate_sub_application(pat, what)\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 455, in _delegate_sub_application\n return app.handle_with_processors()\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 29, in _handle_with_processors\n return process(self.processors)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in process\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 566, in processor\n return handler()\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in <lambda>\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in process\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 581, in processor\n result = handler()\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in <lambda>\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 28, in process\n return self.handle()\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 230, in handle\n return self._delegate(fn, self.fvars, args)\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 405, in _delegate\n return handle_class(f)\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 396, in handle_class\n return tocall(*args)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/controllers/decorators.py\", line 227, in _auth_decorator\n value = method(self, *args, **kwargs)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/controllers/consumers.py\", line 483, in POST\n new_profile = manager.create(consumer_id, content_type, profile)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/managers/consumer/profile.py\", line 42, in create\n return ProfileManager.update(consumer_id, content_type, profile)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/managers/consumer/profile.py\", line 65, in update\n profile = profiler.update_profile(consumer, content_type, profile, config)\n", " File \"/usr/lib/python2.7/site-packages/pulp_rpm/plugins/profilers/yum.py\", line 130, in update_profile\n for p in profile]\n" ] } $ curl -H "Accept: application/json" -X POST -k -u admin:admin -d '{"profile": [{"arch": "i686","epoch": 0,"name": "glib2","release": "2.fc17","vendor": "Fedora Project","version": "2.32.4"},{"arch": "x86_64","epoch": 0,"name": "rpm-libs","release": "8.fc17","vendor": "Fedora Project","version": "4.9.1.3"}]}' 'https://example.com/pulp/api/v2/consumers/c1/profiles/'|python -m json.tool % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 4669 100 4427 100 242 4433 242 0:00:01 --:--:-- 0:00:01 4449 { "_href": "/pulp/api/v2/consumers/c1/profiles/", "error_message": "Unhandled Exception", "exception": [ "TypeError: sequence item 1: expected string or Unicode, NoneType found\n" ], "http_request_method": "POST", "http_status": 500, "traceback": [ " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/middleware/exception.py\", line 44, in __call__\n return self.app(environ, start_response)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/middleware/postponed.py\", line 42, in __call__\n return self.app(environ, start_response)\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 279, in wsgi\n result = self.handle_with_processors()\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 29, in _handle_with_processors\n return process(self.processors)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in process\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 566, in processor\n return handler()\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in <lambda>\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in process\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 581, in processor\n result = handler()\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in <lambda>\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 28, in process\n return self.handle()\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 230, in handle\n return self._delegate(fn, self.fvars, args)\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 422, in _delegate\n return f()\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 430, in <lambda>\n f = lambda: self._delegate_sub_application(pat, what)\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 455, in _delegate_sub_application\n return app.handle_with_processors()\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 29, in _handle_with_processors\n return process(self.processors)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in process\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 566, in processor\n return handler()\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in <lambda>\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in process\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 581, in processor\n result = handler()\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in <lambda>\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 28, in process\n return self.handle()\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 230, in handle\n return self._delegate(fn, self.fvars, args)\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 405, in _delegate\n return handle_class(f)\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 396, in handle_class\n return tocall(*args)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/controllers/decorators.py\", line 227, in _auth_decorator\n value = method(self, *args, **kwargs)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/controllers/consumers.py\", line 484, in POST\n link = serialization.link.child_link_obj(consumer_id, content_type)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/serialization/link.py\", line 69, in child_link_obj\n suffix = '/'.join(path_elements)\n" ] }
Same with Replace the profile $ curl -H "Accept: application/json" -X PUT -k -u admin:admin -d '{"profile": [{"arch": "i686","epoch": 0,"name": "glib2","release": "2.fc17","vendor": "Fedora Project","version": "2.32.4"},{"arch": "x86_64","epoch": 0,"release": "8.fc17","vendor": "Fedora Project","version": "4.0.0.0"}]}' 'https://example.com/pulp/api/v2/consumers/c1/profiles/rpm/'|python -m json.tool % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 4756 100 4533 100 223 2734 134 0:00:01 0:00:01 --:--:-- 2735 { "_href": "/pulp/api/v2/consumers/c1/profiles/rpm/", "error_message": "Unhandled Exception", "exception": [ "KeyError: 'name'\n" ], "http_request_method": "PUT", "http_status": 500, "traceback": [ " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/middleware/exception.py\", line 44, in __call__\n return self.app(environ, start_response)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/middleware/postponed.py\", line 42, in __call__\n return self.app(environ, start_response)\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 279, in wsgi\n result = self.handle_with_processors()\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 29, in _handle_with_processors\n return process(self.processors)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in process\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 566, in processor\n return handler()\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in <lambda>\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in process\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 581, in processor\n result = handler()\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in <lambda>\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 28, in process\n return self.handle()\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 230, in handle\n return self._delegate(fn, self.fvars, args)\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 422, in _delegate\n return f()\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 430, in <lambda>\n f = lambda: self._delegate_sub_application(pat, what)\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 455, in _delegate_sub_application\n return app.handle_with_processors()\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 29, in _handle_with_processors\n return process(self.processors)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in process\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 566, in processor\n return handler()\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in <lambda>\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in process\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 581, in processor\n result = handler()\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 26, in <lambda>\n return p(lambda: process(processors))\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py\", line 28, in process\n return self.handle()\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 230, in handle\n return self._delegate(fn, self.fvars, args)\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 405, in _delegate\n return handle_class(f)\n", " File \"/usr/lib/python2.7/site-packages/web/application.py\", line 396, in handle_class\n return tocall(*args)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/controllers/decorators.py\", line 227, in _auth_decorator\n value = method(self, *args, **kwargs)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/controllers/consumers.py\", line 523, in PUT\n consumer = manager.update(consumer_id, content_type, profile)\n", " File \"/usr/lib/python2.7/site-packages/pulp/server/managers/consumer/profile.py\", line 65, in update\n profile = profiler.update_profile(consumer, content_type, profile, config)\n", " File \"/usr/lib/python2.7/site-packages/pulp_rpm/plugins/profilers/yum.py\", line 130, in update_profile\n for p in profile]\n" ] }
Moved to https://pulp.plan.io/issues/464