<font face="arial" size="2"><p style="margin:0;padding:0;">Hey Antonio,</p>
<p style="margin:0;padding:0;"> </p>
<p style="margin:0;padding:0;">Unfortunately this is a known design flaw and has been reported previously as a bug as well - <a style="font-size: 10pt;" href="https://bugs.launchpad.net/glance/+bug/1100220">https://bugs.launchpad.net/glance/+bug/1100220</a> . We will hopefully be looking at rectifying it sometime soon.</p>
<p style="margin:0;padding:0;"> </p>
<p style="margin:0;padding:0;">Thanks,</p>
<p style="margin:0;padding:0;">Iccha</p>
<p style="margin:0;padding:0;"> </p>
<p style="margin:0;padding:0;"> </p>
<p style="margin:0;padding:0;"> </p>
<p style="margin:0;padding:0;">-----Original Message-----<br />From: "Antonio Messina" <antonio.s.messina@gmail.com><br />Sent: Thursday, February 7, 2013 2:10pm<br />To: openstack@lists.launchpad.net<br />Subject: [Openstack] Unable to download images from glance.<br /><br /></p>
<div id="SafeStyles1360264951">
<p style="margin:0;padding:0;">Hi all,<br /><br />I've recently updated the password of the glance, swift and nova<br />services via keystone user-update-password, and now I am unable to run<br />instances because nova-compute is unable to download the image from<br />glance.<br /><br />I know it sounds stupid, but I am pretty sure all the configuration<br />files are fine, and the password works for *some* of the<br />functionalities but not for glance image-download. I tried "swift -U<br />service:glance ... download glance image-id" and it worked. Als<br />"glance image-list" works.<br />When I try "glance -d download-image ...", however, I get:<br /><br />(cloud)antonio@kenny:~$ glance -d image-download<br />d5b25046-fd08-4e30-950b-ab956c547f8d --file /tmp/antanicurl -i -X GET<br />-H 'X-Auth-Token: 819f0cf1786e4d80ba0a1f672bbe9713' -H 'Content-Type:<br />application/octet-stream' -H 'User-Agent: python-glanceclient'<br />http://myhostname:9292/v1/images/d5b25046-fd08-4e30-950b-ab956c547f8d<br /><br />HTTP/1.1 500 Internal Server Error<br />date: Thu, 07 Feb 2013 19:02:13 GMT<br />content-length: 5424<br />content-type: text/plain<br />connection: close<br /><br />Traceback (most recent call last):<br /> File "/usr/lib/python2.7/dist-packages/eventlet/wsgi.py", line 382,<br />in handle_one_response<br /> result = self.application(self.environ, start_response)<br /> File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 147, in __call__<br /> resp = self.call_func(req, *args, **self.kwargs)<br /> File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 210, in call_func<br /> return self.func(req, *args, **kwargs)<br /> File "/usr/lib/python2.7/dist-packages/glance/common/wsgi.py", line<br />326, in __call__<br /> response = req.get_response(self.application)<br /> File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1086,<br />in get_response<br /> application, catch_exc_info=False)<br /> File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1055,<br />in call_application<br /> app_iter = application(self.environ, start_response)<br /> File "/usr/lib/python2.7/dist-packages/keystone/middleware/auth_token.py",<br />line 278, in __call__<br /> return self.app(env, start_response)<br /> File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 147, in __call__<br /> resp = self.call_func(req, *args, **self.kwargs)<br /> File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 210, in call_func<br /> return self.func(req, *args, **kwargs)<br /> File "/usr/lib/python2.7/dist-packages/glance/common/wsgi.py", line<br />326, in __call__<br /> response = req.get_response(self.application)<br /> File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1086,<br />in get_response<br /> application, catch_exc_info=False)<br /> File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1055,<br />in call_application<br /> app_iter = application(self.environ, start_response)<br /> File "/usr/lib/python2.7/dist-packages/paste/urlmap.py", line 203, in __call__<br /> return app(environ, start_response)<br /> File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 159, in __call__<br /> return resp(environ, start_response)<br /> File "/usr/lib/python2.7/dist-packages/routes/middleware.py", line<br />131, in __call__<br /> response = self.app(environ, start_response)<br /> File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 159, in __call__<br /> return resp(environ, start_response)<br /> File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 147, in __call__<br /> resp = self.call_func(req, *args, **self.kwargs)<br /> File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 210, in call_func<br /> return self.func(req, *args, **kwargs)<br /> File "/usr/lib/python2.7/dist-packages/glance/common/wsgi.py", line<br />532, in __call__<br /> request, **action_args)<br /> File "/usr/lib/python2.7/dist-packages/glance/common/wsgi.py", line<br />549, in dispatch<br /> return method(*args, **kwargs)<br /> File "/usr/lib/python2.7/dist-packages/glance/api/v1/images.py",<br />line 318, in show<br /> image_meta['location'])<br /> File "/usr/lib/python2.7/dist-packages/glance/api/v1/images.py",<br />line 294, in _get_from_store<br /> image_data, image_size = get_from_backend(context, where)<br /> File "/usr/lib/python2.7/dist-packages/glance/store/__init__.py",<br />line 221, in get_from_backend<br /> return store.get(loc)<br /> File "/usr/lib/python2.7/dist-packages/glance/store/swift.py", line<br />291, in get<br /> resp_chunk_size=self.CHUNKSIZE)<br /> File "/usr/lib/python2.7/dist-packages/swiftclient/client.py", line<br />1048, in get_object<br /> resp_chunk_size=resp_chunk_size)<br /> File "/usr/lib/python2.7/dist-packages/swiftclient/client.py", line<br />969, in _retry<br /> self.url, self.token = self.get_auth()<br /> File "/usr/lib/python2.7/dist-packages/swiftclient/client.py", line<br />957, in get_auth<br /> os_options=self.os_options)<br /> File "/usr/lib/python2.7/dist-packages/swiftclient/client.py", line<br />302, in get_auth<br /> key, kwargs['os_options'])<br /> File "/usr/lib/python2.7/dist-packages/swiftclient/client.py", line<br />244, in get_keystoneclient_2_0<br /> auth_url=auth_url)<br /> File "/usr/lib/python2.7/dist-packages/keystoneclient/v2_0/client.py",<br />line 80, in __init__<br /> self.authenticate()<br /> File "/usr/lib/python2.7/dist-packages/keystoneclient/v2_0/client.py",<br />line 102, in authenticate<br /> return_raw=True)<br /> File "/usr/lib/python2.7/dist-packages/keystoneclient/v2_0/tokens.py",<br />line 37, in authenticate<br /> return self._create('/tokens', params, "access", return_raw=return_raw)<br /> File "/usr/lib/python2.7/dist-packages/keystoneclient/base.py", line<br />82, in _create<br /> resp, body = self.api.post(url, body=body)<br /> File "/usr/lib/python2.7/dist-packages/keystoneclient/client.py",<br />line 180, in post<br /> return self._cs_request(url, 'POST', **kwargs)<br /> File "/usr/lib/python2.7/dist-packages/keystoneclient/client.py",<br />line 167, in _cs_request<br /> self.authenticate()<br /> File "/usr/lib/python2.7/dist-packages/keystoneclient/v2_0/client.py",<br />line 102, in authenticate<br /> return_raw=True)<br /> File "/usr/lib/python2.7/dist-packages/keystoneclient/v2_0/tokens.py",<br />line 37, in authenticate<br /> return self._create('/tokens', params, "access", return_raw=return_raw)<br /> File "/usr/lib/python2.7/dist-packages/keystoneclient/base.py", line<br />82, in _create<br /> resp, body = self.api.post(url, body=body)<br /> File "/usr/lib/python2.7/dist-packages/keystoneclient/client.py",<br />line 180, in post<br /> return self._cs_request(url, 'POST', **kwargs)<br /> File "/usr/lib/python2.7/dist-packages/keystoneclient/client.py",<br />line 161, in _cs_request<br /> **kwargs)<br /> File "/usr/lib/python2.7/dist-packages/keystoneclient/client.py",<br />line 141, in request<br /> raise exceptions.from_response(resp, body)<br />Unauthorized: Invalid user / password (HTTP 401)<br /><br /><br />Request returned failure status.<br />HTTPInternalServerError (HTTP 500)<br /><br />regardless of the user I am using with glance.<br /><br />>From the log of glance and swift it seems that glance is not<br />contacting swift (the store backend). However, the glance log looks<br />fine:<br /><br />==> /var/log/glance/api.log <==<br />2013-02-07 20:07:36 7490 DEBUG<br />glance.api.middleware.version_negotiation [-] Determining version of<br />request: GET //v1/images/d5b25046-fd08-4e30-950b-ab956c547f8d Accept:<br />process_request<br />/usr/lib/python2.7/dist-packages/glance/api/middleware/version_negotiation.py:45<br />2013-02-07 20:07:36 7490 DEBUG<br />glance.api.middleware.version_negotiation [-] Using url versioning<br />process_request<br />/usr/lib/python2.7/dist-packages/glance/api/middleware/version_negotiation.py:58<br />2013-02-07 20:07:36 7490 DEBUG<br />glance.api.middleware.version_negotiation [-] Matched version: v1<br />process_request<br />/usr/lib/python2.7/dist-packages/glance/api/middleware/version_negotiation.py:70<br />2013-02-07 20:07:36 7490 DEBUG<br />glance.api.middleware.version_negotiation [-] new uri<br />/v1/images/d5b25046-fd08-4e30-950b-ab956c547f8d process_request<br />/usr/lib/python2.7/dist-packages/glance/api/middleware/version_negotiation.py:71<br />2013-02-07 20:07:36 DEBUG glance.api.policy<br />[9f346e0c-2a0e-45a3-a281-e7a3c9e85802 6f86d41e1244471d86a02f79c4e03ef1<br />4bdc5d18c711438f8be0ec9b70272892] Loaded policy rules: {u'default':<br />[], u'manage_image_cache': [[u'role:admin']]} load_rules<br />/usr/lib/python2.7/dist-packages/glance/api/policy.py:63<br />2013-02-07 20:07:36 DEBUG glance.api.policy<br />[9f346e0c-2a0e-45a3-a281-e7a3c9e85802 6f86d41e1244471d86a02f79c4e03ef1<br />4bdc5d18c711438f8be0ec9b70272892] Loaded policy rules: {u'default':<br />[], u'manage_image_cache': [[u'role:admin']]} load_rules<br />/usr/lib/python2.7/dist-packages/glance/api/policy.py:63<br />2013-02-07 20:07:36 DEBUG glance.common.client<br />[9f346e0c-2a0e-45a3-a281-e7a3c9e85802 6f86d41e1244471d86a02f79c4e03ef1<br />4bdc5d18c711438f8be0ec9b70272892] Constructed URL:<br />http://0.0.0.0:9191/images/d5b25046-fd08-4e30-950b-ab956c547f8d<br />_construct_url /usr/lib/python2.7/dist-packages/glance/common/client.py:464<br /><br />==> /var/log/glance/registry.log <==<br />2013-02-07 20:07:36 INFO glance.registry.api.v1.images<br />[3cd682ee-0739-4161-a611-1e7f428a1072 6f86d41e1244471d86a02f79c4e03ef1<br />4bdc5d18c711438f8be0ec9b70272892] Successfully retrieved image<br />d5b25046-fd08-4e30-950b-ab956c547f8d<br /><br />==> /var/log/glance/api.log <==<br />2013-02-07 20:07:36 DEBUG glance.registry.client<br />[9f346e0c-2a0e-45a3-a281-e7a3c9e85802 6f86d41e1244471d86a02f79c4e03ef1<br />4bdc5d18c711438f8be0ec9b70272892] Registry request GET<br />/images/d5b25046-fd08-4e30-950b-ab956c547f8d HTTP 200 request id<br />req-3cd682ee-0739-4161-a611-1e7f428a1072 do_request<br />/usr/lib/python2.7/dist-packages/glance/registry/client.py:94<br />2013-02-07 20:07:36 DEBUG glance.store.swift<br />[9f346e0c-2a0e-45a3-a281-e7a3c9e85802 6f86d41e1244471d86a02f79c4e03ef1<br />4bdc5d18c711438f8be0ec9b70272892] Creating Swift connection with<br />(auth_address=http://myhostname:5000/v2.0/, user=service:glance,<br />snet=False, auth_version=2) _make_swift_connection<br />/usr/lib/python2.7/dist-packages/glance/store/swift.py:363<br /><br />Anyone have an idea on how to debug this?<br /><br />.a.<br /><br />-- <br />antonio.s.messina@gmail.com<br />GC3: Grid Computing Competence Center<br />http://www.gc3.uzh.ch/<br />University of Zurich<br />Winterthurerstrasse 190<br />CH-8057 Zurich Switzerland<br /><br />_______________________________________________<br />Mailing list: https://launchpad.net/~openstack<br />Post to : openstack@lists.launchpad.net<br />Unsubscribe : https://launchpad.net/~openstack<br />More help : https://help.launchpad.net/ListHelp</p>
</div></font>