<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div style="word-wrap:break-word">I'm reinstalling the various Openstack services from packages in the ManagedIT PPA to pull in the latest Diablo bug fixes.  I'm following the latest directions in the newly release installation guide as I perform these upgrades
 (<a href="http://docs.openstack.org/diablo/openstack-compute/install/content/index.html">http://docs.openstack.org/diablo/openstack-compute/install/content/index.html</a>).
<div><br>
</div>
<div>However, I'm having trouble getting Glance to authenticate with Keystone.  All config files have been copied from the examples posted in the installation guide (and modified accordingly for my admin token, IP addresses, etc.).  Regardless, I continually
 get the following error message and stack dump when trying to verify the Glance/Keystone integration:</div>
<div><br>
</div>
<div>Step 1:  Grab a token</div>
<div><br>
</div>
<div>
<div># curl -d '{"auth": {"tenantName": "default", "passwordCredentials":{"username": "admin", "password": "admin"}}}' -H "Content-type: application/json"
<a href="http://173.23.181.1:35357/v2.0/tokens">http://173.23.181.1:35357/v2.0/tokens</a> | python -mjson.tool</div>
<div><br>
</div>
<div><font class="x_Apple-style-span" face="Courier">...</font></div>
<div><font class="x_Apple-style-span" face="Courier">        "token": {</font></div>
<div><font class="x_Apple-style-span" face="Courier">            "expires": "2012-02-01T15:24:33", </font></div>
<div><font class="x_Apple-style-span" face="Courier">            "id": "fa89fb9a-60d2-4921-b12d-6aee1c177823", </font></div>
<div><font class="x_Apple-style-span" face="Courier">            "tenant": {</font></div>
<div><font class="x_Apple-style-span" face="Courier">                "id": "1", </font></div>
<div><font class="x_Apple-style-span" face="Courier">                "name": "default"</font></div>
<div><font class="x_Apple-style-span" face="Courier">            }</font></div>
<div><font class="x_Apple-style-span" face="Courier">        }</font></div>
<div><font class="x_Apple-style-span" face="Courier">?</font></div>
<div><br>
</div>
</div>
<div>Step 2: Try a Glance command</div>
<div><br>
</div>
<div><font class="x_Apple-style-span" face="Courier"># glance details -A fa89fb9a-60d2-4921-b12d-6aee1c177823</font></div>
<div><font class="x_Apple-style-span" face="Courier">Failed to show details. Got error:</font></div>
<div><font class="x_Apple-style-span" face="Courier">Internal Server error: Traceback (most recent call last):</font></div>
<div><font class="x_Apple-style-span" face="Courier">  File "/usr/lib/python2.7/dist-packages/eventlet/wsgi.py", line 336, in handle_one_response</font></div>
<div><font class="x_Apple-style-span" face="Courier">    result = self.application(self.environ, start_response)</font></div>
<div><font class="x_Apple-style-span" face="Courier">  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 147, in __call__</font></div>
<div><font class="x_Apple-style-span" face="Courier">    resp = self.call_func(req, *args, **self.kwargs)</font></div>
<div><font class="x_Apple-style-span" face="Courier">  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 208, in call_func</font></div>
<div><font class="x_Apple-style-span" face="Courier">    return self.func(req, *args, **kwargs)</font></div>
<div><font class="x_Apple-style-span" face="Courier">  File "/usr/lib/python2.7/dist-packages/glance/common/wsgi.py", line 113, in __call__</font></div>
<div><font class="x_Apple-style-span" face="Courier">    response = req.get_response(self.application)</font></div>
<div><font class="x_Apple-style-span" face="Courier">  File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1053, in get_response</font></div>
<div><font class="x_Apple-style-span" face="Courier">    application, catch_exc_info=False)</font></div>
<div><font class="x_Apple-style-span" face="Courier">  File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1022, in call_application</font></div>
<div><font class="x_Apple-style-span" face="Courier">    app_iter = application(self.environ, start_response)</font></div>
<div><font class="x_Apple-style-span" face="Courier">  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 147, in __call__</font></div>
<div><font class="x_Apple-style-span" face="Courier">    resp = self.call_func(req, *args, **self.kwargs)</font></div>
<div><font class="x_Apple-style-span" face="Courier">  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 208, in call_func</font></div>
<div><font class="x_Apple-style-span" face="Courier">    return self.func(req, *args, **kwargs)</font></div>
<div><font class="x_Apple-style-span" face="Courier">  File "/usr/lib/python2.7/dist-packages/glance/common/wsgi.py", line 110, in __call__</font></div>
<div><font class="x_Apple-style-span" face="Courier">    response = self.process_request(req)</font></div>
<div><font class="x_Apple-style-span" face="Courier">  File "/usr/lib/python2.7/dist-packages/glance/common/context.py", line 104, in process_request</font></div>
<div><font class="x_Apple-style-span" face="Courier">    raise exception.NotAuthorized()</font></div>
<div><font class="x_Apple-style-span" face="Courier">NotAuthorized: None</font></div>
<div><br>
</div>
<div>From the Glance api.log file we see the following (with the traceback identical to above removed):</div>
<div><br>
</div>
<div>
<div><font class="x_Apple-style-span" face="Courier">2012-01-31 17:14:30    DEBUG [glance.api.middleware.version_negotiation] Processing request: GET /v1/images/detail A</font><span class="x_Apple-style-span" style="font-family:Courier">ccept: </span></div>
<div><font class="x_Apple-style-span" face="Courier">2012-01-31 17:14:30    DEBUG [glance.api.middleware.version_negotiation] Matched versioned URI. Version: 1.0</font></div>
<div><font class="x_Apple-style-span" face="Courier">2012-01-31 17:14:30    DEBUG [eventlet.wsgi.server] Traceback (most recent call last):</font></div>
<div><font class="x_Apple-style-span" face="Courier">? (traceback removed)</font></div>
<div><font class="x_Apple-style-span" face="Courier">2012-01-31 17:14:30    DEBUG [eventlet.wsgi.server] 127.0.0.1 - - [31/Jan/2012 17:14:30] "GET /v1/images/detail?limi</font><span class="x_Apple-style-span" style="font-family:Courier">t=10 HTTP/1.1" 500 1528
 0.001163</span></div>
</div>
<div><span class="x_Apple-style-span" style="font-family:Courier"><br>
</span></div>
<div><span class="x_Apple-style-span" style="font-family:Courier">This is probably a config blunder on my part, but I've poured over the config files numerous times.  Regardless, I've attached the glance-api and registry conf files.</span></div>
<div><span class="x_Apple-style-span" style="font-family:Courier"><br>
</span></div>
<div><span class="x_Apple-style-span" style="font-family:Courier">Any suggestions?</span></div>
<div><span class="x_Apple-style-span" style="font-family:Courier"><br>
</span></div>
<div><span class="x_Apple-style-span" style="font-family:Courier">Regards,</span></div>
<div><span class="x_Apple-style-span" style="font-family:Courier">Ross</span></div>
<div><span class="x_Apple-style-span" style="font-family:Courier"><br>
</span></div>
<div><span class="x_Apple-style-span" style="font-family:Courier"></span></div>
</div>
<div style="word-wrap:break-word">
<div><span class="x_Apple-style-span" style="font-family:Courier"></span></div>
</div>
<div style="word-wrap:break-word">
<div><span class="x_Apple-style-span" style="font-family:Courier"></span></div>
<div><br>
</div>
<div><br>
</div>
</div>
</body>
</html>