← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1408122] [NEW] Cells service_get_by_compute_host fails on object conversion

 

Public bug reported:

When pulling service information on a compute node with cells there is a
failure to convert the compute node db dict into an object.  This is due
to the id field being of the form 'region!child@1' while the
compute_node object id field is expected to be an int.

2015-01-06 17:17:07.365 ERROR nova.api.openstack [req-b8e62f38-a1b1-4d41-9502-484c706cba5c HostsAdminTestJSON-320709791 HostsAdminTestJSON-164089223] Caught error: invalid literal for int() with base 10: 'region!child@1'
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack Traceback (most recent call last):
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/__init__.py", line 125, in __call__
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return req.get_response(self.application)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1320, in send
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     application, catch_exc_info=False)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1284, in call_application
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     app_iter = application(self.environ, start_response)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return resp(environ, start_response)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token.py", line 823, in __call__
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return self._call_app(env, start_response)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token.py", line 758, in _call_app
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return self._app(env, _fake_start_response)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return resp(environ, start_response)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return resp(environ, start_response)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/routes/middleware.py", line 131, in __call__
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     response = self.app(environ, start_response)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return resp(environ, start_response)2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     resp = self.call_func(req, *args, **self.kwargs)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return self.func(req, *args, **kwargs)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 752, in __call__
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     content_type, body, accept)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 817, in _process_stack
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     action_result = self.dispatch(meth, request, action_args)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 907, in dispatch
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return method(req=request, **action_args)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/compute/contrib/hosts.py", line 272, in show
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     service = self.api.service_get_by_compute_host(context, host_name)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/compute/cells_api.py", line 570, in service_get_by_compute_host
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     db_service)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/service.py", line 77, in _from_db_object
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     service._do_compute_node(context, service, db_service)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/service.py", line 68, in _do_compute_node
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     context, objects.ComputeNode(), db_compute)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/compute_node.py", line 130, in _from_db_object
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     compute[key] = db_compute[key]
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/base.py", line 598, in __setitem__
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     setattr(self, name, value)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/base.py", line 76, in setter
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     field_value = field.coerce(self, name, value)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/fields.py", line 189, in coerce
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return self._type.coerce(obj, attr, value)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/fields.py", line 264, in coerce
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return int(value)
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack ValueError: invalid literal for int() with base 10: 'region!child@1'
2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack

** Affects: nova
     Importance: Undecided
     Assignee: Andrew Laski (alaski)
         Status: New

** Changed in: nova
     Assignee: (unassigned) => Andrew Laski (alaski)

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1408122

Title:
  Cells service_get_by_compute_host fails on object conversion

Status in OpenStack Compute (Nova):
  New

Bug description:
  When pulling service information on a compute node with cells there is
  a failure to convert the compute node db dict into an object.  This is
  due to the id field being of the form 'region!child@1' while the
  compute_node object id field is expected to be an int.

  2015-01-06 17:17:07.365 ERROR nova.api.openstack [req-b8e62f38-a1b1-4d41-9502-484c706cba5c HostsAdminTestJSON-320709791 HostsAdminTestJSON-164089223] Caught error: invalid literal for int() with base 10: 'region!child@1'
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack Traceback (most recent call last):
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/__init__.py", line 125, in __call__
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return req.get_response(self.application)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1320, in send
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     application, catch_exc_info=False)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1284, in call_application
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     app_iter = application(self.environ, start_response)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return resp(environ, start_response)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token.py", line 823, in __call__
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return self._call_app(env, start_response)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token.py", line 758, in _call_app
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return self._app(env, _fake_start_response)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return resp(environ, start_response)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return resp(environ, start_response)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/routes/middleware.py", line 131, in __call__
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     response = self.app(environ, start_response)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return resp(environ, start_response)2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     resp = self.call_func(req, *args, **self.kwargs)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return self.func(req, *args, **kwargs)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 752, in __call__
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     content_type, body, accept)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 817, in _process_stack
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     action_result = self.dispatch(meth, request, action_args)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 907, in dispatch
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return method(req=request, **action_args)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/compute/contrib/hosts.py", line 272, in show
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     service = self.api.service_get_by_compute_host(context, host_name)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/compute/cells_api.py", line 570, in service_get_by_compute_host
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     db_service)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/service.py", line 77, in _from_db_object
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     service._do_compute_node(context, service, db_service)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/service.py", line 68, in _do_compute_node
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     context, objects.ComputeNode(), db_compute)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/compute_node.py", line 130, in _from_db_object
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     compute[key] = db_compute[key]
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/base.py", line 598, in __setitem__
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     setattr(self, name, value)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/base.py", line 76, in setter
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     field_value = field.coerce(self, name, value)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/fields.py", line 189, in coerce
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return self._type.coerce(obj, attr, value)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/fields.py", line 264, in coerce
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack     return int(value)
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack ValueError: invalid literal for int() with base 10: 'region!child@1'
  2015-01-06 17:17:07.365 21844 TRACE nova.api.openstack

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1408122/+subscriptions


Follow ups

References