← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1267040] [NEW] v3 API list deleted servers raise 404

 

Public bug reported:

nova api support list deleted servers by using admin user. The api looks
like below:

v3: GET http://openstack.org:8774/v3/servers/detail?deleted=True
v2: GET http://openstack.org:8774/v2/{tenant}/servers/detail?deleted=True

v2 api works very well but v3 will return by 404.

The traceback from nova-api show below, I suspect there was something wrong with instance object:
2014-01-08 09:42:15.145 ERROR nova.api.openstack [req-dd73dfe5-96ab-488a-8c31-98b5b063ed95 admin admin] Caught error: Instance 60ec98b5-7496-4e04-aebb-3f951e660295 could not be found.
2014-01-08 09:42:15.145 TRACE nova.api.openstack Traceback (most recent call last):
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/__init__.py", line 121, in __call__
2014-01-08 09:42:15.145 TRACE nova.api.openstack     return req.get_response(self.application)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
2014-01-08 09:42:15.145 TRACE nova.api.openstack     application, catch_exc_info=False)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
2014-01-08 09:42:15.145 TRACE nova.api.openstack     app_iter = application(self.environ, start_response)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2014-01-08 09:42:15.145 TRACE nova.api.openstack     return resp(environ, start_response)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/python-keystoneclient/keystoneclient/middleware/auth_token.py", line 581, in __call__
2014-01-08 09:42:15.145 TRACE nova.api.openstack     return self.app(env, start_response)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2014-01-08 09:42:15.145 TRACE nova.api.openstack     return resp(environ, start_response)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2014-01-08 09:42:15.145 TRACE nova.api.openstack     return resp(environ, start_response)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/routes/middleware.py", line 131, in __call__
2014-01-08 09:42:15.145 TRACE nova.api.openstack     response = self.app(environ, start_response)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2014-01-08 09:42:15.145 TRACE nova.api.openstack     return resp(environ, start_response)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
2014-01-08 09:42:15.145 TRACE nova.api.openstack     resp = self.call_func(req, *args, **self.kwargs)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
2014-01-08 09:42:15.145 TRACE nova.api.openstack     return self.func(req, *args, **kwargs)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 930, in __call__
2014-01-08 09:42:15.145 TRACE nova.api.openstack     content_type, body, accept)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 1018, in _process_stack
2014-01-08 09:42:15.145 TRACE nova.api.openstack     request, action_args)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 900, in post_process_extensions
2014-01-08 09:42:15.145 TRACE nova.api.openstack     **action_args)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/compute/plugins/v3/pci.py", line 79, in detail
2014-01-08 09:42:15.145 TRACE nova.api.openstack     self._extend_server(server, instance)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/compute/plugins/v3/pci.py", line 58, in _extend_server
2014-01-08 09:42:15.145 TRACE nova.api.openstack     for dev in instance.pci_devices:
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/base.py", line 63, in getter
2014-01-08 09:42:15.145 TRACE nova.api.openstack     self.obj_load_attr(name)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/instance.py", line 498, in obj_load_attr
2014-01-08 09:42:15.145 TRACE nova.api.openstack     expected_attrs=[attrname])
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/base.py", line 112, in wrapper
2014-01-08 09:42:15.145 TRACE nova.api.openstack     result = fn(cls, context, *args, **kwargs)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/instance.py", line 300, in get_by_uuid
2014-01-08 09:42:15.145 TRACE nova.api.openstack     use_slave=use_slave)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/db/api.py", line 634, in instance_get_by_uuid
2014-01-08 09:42:15.145 TRACE nova.api.openstack     columns_to_join, use_slave=use_slave)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/db/sqlalchemy/api.py", line 130, in wrapper
2014-01-08 09:42:15.145 TRACE nova.api.openstack     return f(*args, **kwargs)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/db/sqlalchemy/api.py", line 1693, in instance_get_by_uuid
2014-01-08 09:42:15.145 TRACE nova.api.openstack     columns_to_join=columns_to_join, use_slave=use_slave)
2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/db/sqlalchemy/api.py", line 1705, in _instance_get_by_uuid
2014-01-08 09:42:15.145 TRACE nova.api.openstack     raise exception.InstanceNotFound(instance_id=uuid)
2014-01-08 09:42:15.145 TRACE nova.api.openstack InstanceNotFound: Instance 60ec98b5-7496-4e04-aebb-3f951e660295 could not be found.
2014-01-08 09:42:15.145 TRACE nova.api.openstack 
2014-01-08 09:42:15.154 INFO nova.api.openstack [req-dd73dfe5-96ab-488a-8c31-98b5b063ed95 admin admin] http://10.160.163.21:8774/v3/servers/detail?deleted=True returned with HTTP 404

** Affects: nova
     Importance: Undecided
         Status: New

-- 
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/1267040

Title:
  v3 API list deleted servers raise 404

Status in OpenStack Compute (Nova):
  New

Bug description:
  nova api support list deleted servers by using admin user. The api
  looks like below:

  v3: GET http://openstack.org:8774/v3/servers/detail?deleted=True
  v2: GET http://openstack.org:8774/v2/{tenant}/servers/detail?deleted=True

  v2 api works very well but v3 will return by 404.

  The traceback from nova-api show below, I suspect there was something wrong with instance object:
  2014-01-08 09:42:15.145 ERROR nova.api.openstack [req-dd73dfe5-96ab-488a-8c31-98b5b063ed95 admin admin] Caught error: Instance 60ec98b5-7496-4e04-aebb-3f951e660295 could not be found.
  2014-01-08 09:42:15.145 TRACE nova.api.openstack Traceback (most recent call last):
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/__init__.py", line 121, in __call__
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     return req.get_response(self.application)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     application, catch_exc_info=False)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     app_iter = application(self.environ, start_response)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     return resp(environ, start_response)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/python-keystoneclient/keystoneclient/middleware/auth_token.py", line 581, in __call__
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     return self.app(env, start_response)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     return resp(environ, start_response)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     return resp(environ, start_response)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/routes/middleware.py", line 131, in __call__
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     response = self.app(environ, start_response)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     return resp(environ, start_response)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     resp = self.call_func(req, *args, **self.kwargs)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     return self.func(req, *args, **kwargs)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 930, in __call__
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     content_type, body, accept)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 1018, in _process_stack
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     request, action_args)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 900, in post_process_extensions
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     **action_args)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/compute/plugins/v3/pci.py", line 79, in detail
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     self._extend_server(server, instance)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/api/openstack/compute/plugins/v3/pci.py", line 58, in _extend_server
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     for dev in instance.pci_devices:
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/base.py", line 63, in getter
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     self.obj_load_attr(name)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/instance.py", line 498, in obj_load_attr
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     expected_attrs=[attrname])
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/base.py", line 112, in wrapper
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     result = fn(cls, context, *args, **kwargs)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/objects/instance.py", line 300, in get_by_uuid
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     use_slave=use_slave)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/db/api.py", line 634, in instance_get_by_uuid
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     columns_to_join, use_slave=use_slave)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/db/sqlalchemy/api.py", line 130, in wrapper
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     return f(*args, **kwargs)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/db/sqlalchemy/api.py", line 1693, in instance_get_by_uuid
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     columns_to_join=columns_to_join, use_slave=use_slave)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack   File "/opt/stack/nova/nova/db/sqlalchemy/api.py", line 1705, in _instance_get_by_uuid
  2014-01-08 09:42:15.145 TRACE nova.api.openstack     raise exception.InstanceNotFound(instance_id=uuid)
  2014-01-08 09:42:15.145 TRACE nova.api.openstack InstanceNotFound: Instance 60ec98b5-7496-4e04-aebb-3f951e660295 could not be found.
  2014-01-08 09:42:15.145 TRACE nova.api.openstack 
  2014-01-08 09:42:15.154 INFO nova.api.openstack [req-dd73dfe5-96ab-488a-8c31-98b5b063ed95 admin admin] http://10.160.163.21:8774/v3/servers/detail?deleted=True returned with HTTP 404

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


Follow ups

References