Project

Profile

Help

Issue #464

Updated by bmbouter about 9 years ago

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: 

 <pre> 
 $ 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" 
     ] 
 } 
 </pre> 

 <pre> 
 $ 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" 
     ] 
 } 
 </pre> 

 + This bug was cloned from "Bugzilla Bug #1115474":https://bugzilla.redhat.com/show_bug.cgi?id=1115474 +

Back