On Nova instance boot, 'glanceclient/openstack/common/apiclient/base.py' throws: "AttributeError: id"

Bug #1479296 reported by Kashyap Chamarthy
36
This bug affects 8 people
Affects Status Importance Assigned to Milestone
Glance Client
New
Undecided
Unassigned

Bug Description

Description of problem
----------------------

Once DevStack is completed successfully, attempting to boot an instance
fails, resulting in:

    $ . openrc admin
    $ nova flavor-create eph 100 512 0 1 --ephemeral 10
    $ nova boot --image cirros-0.3.3-x86_64-disk --flavor eph --ephemeral size=1 vm1
    ERROR (ClientException): The server has either erred or is incapable of performing the requested operation. (HTTP 500) (Request-ID: req-caeb0b17-7873-4c75-ae3a-2ad4334a697f)

NOTE: Booting an instance with any of the default flavors fail the same
      way, too.

With the n-api.log throwing this AttributeError:

    [. . .]
    2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/glanceclient/openstack/common/apiclient/base.py", line 494, in __getattr__
    2015-07-29 05:34:37.551 TRACE nova.api.openstack raise AttributeError(k)
    2015-07-29 05:34:37.551 TRACE nova.api.openstack AttributeError: id
    [. . .]

This is consistently reproducible with the below DevStack commits. I
tested this on Fedora 22.

Version
-------

I'm on DevStack, with these commits:

    Cinder:
    b19d8e9 (Merge "Windows iSCSI: Add CHAP authentication support", 2015-07-29)
    DevStack:
    e0eb1a1 (Merge "Remove unused variable", 2015-07-28)
    Glance:
    4ec1e7d (Merge "Fix Python 3 issues in glance.tests.unit", 2015-07-28)
    Keystone:
    7bf9b41 (Merge "Document sample config updated automatically", 2015-07-29)
    Neutron:
    12aa832 (Merge "Updated from global requirements", 2015-07-28)
    Nova:
    3191c3e (libvirt: use log file and serial console at the same time, 2015-05-29)
    requirements:
    9bbc6dd (Merge "Add dnspython3 to global-requirements.txt", 2015-07-29)

Versions of 'python-glanceclient' & 'glance-store':

    $ pip show python-glanceclient | grep ^Version
    Version: 0.19.0
    $ pip show glance-store | grep ^Version
    Version: 0.7.1

Actual result
-------------

Nova instance boot fails with the below error from Nova API log.

$ less -R ../data/logs/n-api.log
. . .
.Controller object at 0x7f7cbd0e0190>>' from (pid=23176) _process_stack /home/kashyapc/src/cloud/nova/nova/api/openstack/wsgi.py:783
2015-07-29 05:34:37.551 ERROR nova.api.openstack [req-caeb0b17-7873-4c75-ae3a-2ad4334a697f demo demo] Caught error: id
2015-07-29 05:34:37.551 TRACE nova.api.openstack Traceback (most recent call last):
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/home/kashyapc/src/cloud/nova/nova/api/openstack/__init__.py", line 126, in __call__
2015-07-29 05:34:37.551 TRACE nova.api.openstack return req.get_response(self.application)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/request.py", line 1317, in send
2015-07-29 05:34:37.551 TRACE nova.api.openstack application, catch_exc_info=False)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/request.py", line 1281, in call_application
2015-07-29 05:34:37.551 TRACE nova.api.openstack app_iter = application(self.environ, start_response)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2015-07-29 05:34:37.551 TRACE nova.api.openstack return resp(environ, start_response)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 130, in __call__
2015-07-29 05:34:37.551 TRACE nova.api.openstack resp = self.call_func(req, *args, **self.kwargs)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 195, in call_func
2015-07-29 05:34:37.551 TRACE nova.api.openstack return self.func(req, *args, **kwargs)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/__init__.py", line 434, in __call__
2015-07-29 05:34:37.551 TRACE nova.api.openstack response = req.get_response(self._app)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/request.py", line 1317, in send
2015-07-29 05:34:37.551 TRACE nova.api.openstack application, catch_exc_info=False)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/request.py", line 1281, in call_application
2015-07-29 05:34:37.551 TRACE nova.api.openstack app_iter = application(self.environ, start_response)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2015-07-29 05:34:37.551 TRACE nova.api.openstack return resp(environ, start_response)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2015-07-29 05:34:37.551 TRACE nova.api.openstack return resp(environ, start_response)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/routes/middleware.py", line 136, in __call__
2015-07-29 05:34:37.551 TRACE nova.api.openstack response = self.app(environ, start_response)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2015-07-29 05:34:37.551 TRACE nova.api.openstack return resp(environ, start_response)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 130, in __call__
2015-07-29 05:34:37.551 TRACE nova.api.openstack resp = self.call_func(req, *args, **self.kwargs)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 195, in call_func
2015-07-29 05:34:37.551 TRACE nova.api.openstack return self.func(req, *args, **kwargs)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/home/kashyapc/src/cloud/nova/nova/api/openstack/wsgi.py", line 756, in __call__
2015-07-29 05:34:37.551 TRACE nova.api.openstack content_type, body, accept)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/home/kashyapc/src/cloud/nova/nova/api/openstack/wsgi.py", line 821, in _process_stack
2015-07-29 05:34:37.551 TRACE nova.api.openstack action_result = self.dispatch(meth, request, action_args)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/home/kashyapc/src/cloud/nova/nova/api/openstack/wsgi.py", line 911, in dispatch
2015-07-29 05:34:37.551 TRACE nova.api.openstack return method(req=request, **action_args)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/home/kashyapc/src/cloud/nova/nova/api/openstack/compute/images.py", line 83, in show
2015-07-29 05:34:37.551 TRACE nova.api.openstack image = self._image_api.get(context, id)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/home/kashyapc/src/cloud/nova/nova/image/api.py", line 93, in get
2015-07-29 05:34:37.551 TRACE nova.api.openstack show_deleted=show_deleted)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/home/kashyapc/src/cloud/nova/nova/image/glance.py", line 311, in show
2015-07-29 05:34:37.551 TRACE nova.api.openstack image = self._image_api.get(context, id)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/home/kashyapc/src/cloud/nova/nova/image/api.py", line 93, in get
2015-07-29 05:34:37.551 TRACE nova.api.openstack show_deleted=show_deleted)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/home/kashyapc/src/cloud/nova/nova/image/glance.py", line 311, in show
2015-07-29 05:34:37.551 TRACE nova.api.openstack include_locations=include_locations)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/home/kashyapc/src/cloud/nova/nova/image/glance.py", line 485, in _translate_from_glance
2015-07-29 05:34:37.551 TRACE nova.api.openstack include_locations=include_locations)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/home/kashyapc/src/cloud/nova/nova/image/glance.py", line 547, in _extract_attributes
2015-07-29 05:34:37.551 TRACE nova.api.openstack queued = getattr(image, 'status') == 'queued'
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/glanceclient/openstack/common/apiclient/base.py", line 491, in __getattr__
2015-07-29 05:34:37.551 TRACE nova.api.openstack self.get()
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/glanceclient/openstack/common/apiclient/base.py", line 509, in get
2015-07-29 05:34:37.551 TRACE nova.api.openstack new = self.manager.get(self.id)
2015-07-29 05:34:37.551 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/glanceclient/openstack/common/apiclient/base.py", line 494, in __getattr__
2015-07-29 05:34:37.551 TRACE nova.api.openstack raise AttributeError(k)
2015-07-29 05:34:37.551 TRACE nova.api.openstack AttributeError: id
2015-07-29 05:34:37.551 TRACE nova.api.openstack
2015-07-29 05:34:37.557 INFO nova.api.openstack [req-caeb0b17-7873-4c75-ae3a-2ad4334a697f demo demo] http://192.169.142.106:8774/v2/012e12423b884610bdf960cbb2f7181a/images/41d354b9-8570-4856-b1a0-5cadceeb6437 returned with HTTP 500
. . .

Expected result
---------------

Nova instance boot should be successful.

Revision history for this message
Kashyap Chamarthy (kashyapc) wrote :
affects: nova → glance
Revision history for this message
Kashyap Chamarthy (kashyapc) wrote :
Ian Cordasco (icordasc)
affects: glance → python-glanceclient
Revision history for this message
Dean Meehan (d3an-meehan) wrote :

Finding same problem while using stable/kilo magnum (bay-create). This is due to glance-show <id> returning id when using (--os-image-api-version 1).

Using --os-image-api-version 2 fixes the issue.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.