I was also preparing to post on this subject but my stack trace is different.  I am running milestone-proposed versions of Nova and Glance, with the latest Git versions of Dashboard and Keystone.  There was another thread on this subject a few weeks ago (<a href="https://lists.launchpad.net/openstack/msg04002.html">https://lists.launchpad.net/openstack/msg04002.html</a>) and I've confirmed I actually have the fixes mentioned there already in place.  Below is my stack trace:<div>
<br></div><div><div>2011-09-19 07:36:12,927 INFO nova.api.openstack.wsgi [-] POST <a href="http://127.0.0.1:8774/v1.1/1/extras/servers">http://127.0.0.1:8774/v1.1/1/extras/servers</a></div><div>2011-09-19 07:36:12,933 INFO nova.api.openstack.wsgi [-] HTTP exception thrown:</div>
<div>2011-09-19 07:36:12,933 INFO nova.api.openstack.wsgi [-] <a href="http://127.0.0.1:8774/v1.1/1/extras/servers">http://127.0.0.1:8774/v1.1/1/extras/servers</a> returned with HTT</div><div>P 400</div><div>2011-09-19 07:36:12,934 ERROR nova.api.openstack [-] Caught error: 'Fault' object has no attribute 'explanation'</div>
<div>(nova.api.openstack): TRACE: Traceback (most recent call last):</div><div>(nova.api.openstack): TRACE:   File "/usr/lib/pymodules/python2.7/nova/api/openstack/__init__.py", line 64, in __call_</div><div>_</div>
<div>(nova.api.openstack): TRACE:     return req.get_response(self.application)</div><div>(nova.api.openstack): TRACE:   File "/usr/lib/pymodules/python2.7/webob/request.py", line 1053, in get_response</div><div>
(nova.api.openstack): TRACE:     application, catch_exc_info=False)</div><div>(nova.api.openstack): TRACE:   File "/usr/lib/pymodules/python2.7/webob/request.py", line 1022, in call_application</div><div>(nova.api.openstack): TRACE:     app_iter = application(self.environ, start_response)</div>
<div>(nova.api.openstack): TRACE:   File "/usr/lib/python2.7/dist-packages/keystone/middleware/auth_token.py", line 185, in</div><div> __call__</div><div>(nova.api.openstack): TRACE:     return self._forward_request(env, start_response, proxy_headers)</div>
<div>(nova.api.openstack): TRACE:   File "/usr/lib/python2.7/dist-packages/keystone/middleware/auth_token.py", line 309, in</div><div> _forward_request</div><div>(nova.api.openstack): TRACE:     return self.app(env, start_response)</div>
<div>(nova.api.openstack): TRACE:   File "/usr/lib/pymodules/python2.7/webob/dec.py", line 159, in __call__</div><div>(nova.api.openstack): TRACE:     return resp(environ, start_response)</div><div>(nova.api.openstack): TRACE:   File "/usr/lib/pymodules/python2.7/webob/dec.py", line 159, in __call__</div>
<div>(nova.api.openstack): TRACE:     return resp(environ, start_response)</div><div>(nova.api.openstack): TRACE:   File "/usr/lib/pymodules/python2.7/webob/dec.py", line 159, in __call__</div><div>(nova.api.openstack): TRACE:     return resp(environ, start_response)</div>
<div>(nova.api.openstack): TRACE:   File "/usr/lib/pymodules/python2.7/routes/middleware.py", line 131, in __call__</div><div>(nova.api.openstack): TRACE:     response = self.app(environ, start_response)</div><div>
(nova.api.openstack): TRACE:   File "/usr/lib/pymodules/python2.7/webob/dec.py", line 159, in __call__</div><div>(nova.api.openstack): TRACE:     return resp(environ, start_response)</div><div>(nova.api.openstack): TRACE:   File "/usr/lib/pymodules/python2.7/webob/dec.py", line 159, in __call__</div>
<div>(nova.api.openstack): TRACE:     return resp(environ, start_response)</div><div>(nova.api.openstack): TRACE:   File "/usr/lib/pymodules/python2.7/webob/dec.py", line 147, in __call__</div><div>(nova.api.openstack): TRACE:     resp = self.call_func(req, *args, **self.kwargs)</div>
<div>(nova.api.openstack): TRACE:   File "/usr/lib/pymodules/python2.7/webob/dec.py", line 208, in call_func</div><div>(nova.api.openstack): TRACE:     return self.func(req, *args, **kwargs)</div><div>(nova.api.openstack): TRACE:   File "/usr/lib/pymodules/python2.7/nova/api/openstack/faults.py", line 55, in __call__</div>
<div>(nova.api.openstack): TRACE:     'message': self.wrapped_exc.explanation}}</div><div>(nova.api.openstack): TRACE: AttributeError: 'Fault' object has no attribute 'explanation'</div></div><div>
<br></div><div>I'm not sure how helpful the trace actually is, since we cannot see the contents of the POST or the associated response.  Without going through the code in depth, I am not sure how to simulate the request to nova-api myself in order to provide more detail.</div>
<div><br></div><div><br></div><div><br></div><div><div><div><div class="gmail_quote">On Mon, Sep 19, 2011 at 10:03 AM, 董志斌 <span dir="ltr"><<a href="mailto:atkisc@gmail.com">atkisc@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div>
      <h2>Error</h2>
      <p>Unable to launch instance: 'Fault' object has no attribute 'explanation'</p><p><br></p><p>DEBUG:django_openstack.api:extras_api connection created using token "atkisc" and url "<a href="http://127.0.0.1:8774/v1.1/cloud" target="_blank">http://127.0.0.1:8774/v1.1/cloud</a>"<br>

ERROR:django_openstack.dash.views.images:ApiException while creating instances of image "1"<br>Traceback (most recent call last):<br>  File "/opt/openstack-dashboard/django-openstack/django_openstack/dash/views/images.py", line 102, in handle<br>

    data.get('security_groups'))<br>  File "/opt/openstack-dashboard/django-openstack/django_openstack/api.py", line 503, in server_create<br>    security_groups=security_groups), request)<br>  File "/opt/openstack-dashboard/openstack-dashboard/.dashboard-venv/src/openstackx/openstackx/extras/servers.py", line 115, in create<br>

    return self._create("/extras/servers", body, "server")<br>  File "/opt/openstack-dashboard/openstack-dashboard/.dashboard-venv/src/openstackx/openstackx/api/base.py", line 40, in _create<br>

    resp, body = self.api.connection.post(url, body=body)<br>  File "/opt/openstack-dashboard/openstack-dashboard/.dashboard-venv/src/openstackx/openstackx/api/connection.py", line 81, in post<br>    return self._cs_request(url, 'POST', **kwargs)<br>

  File "/opt/openstack-dashboard/openstack-dashboard/.dashboard-venv/src/openstackx/openstackx/api/connection.py", line 63, in _cs_request<br>    **kwargs)<br>  File "/opt/openstack-dashboard/openstack-dashboard/.dashboard-venv/src/openstackx/openstackx/api/connection.py", line 48, in request<br>

    raise exceptions.from_response(resp, body)<br>ApiException: 'Fault' object has no attribute 'explanation' (HTTP 500)<br>DEBUG:django_openstack.api:auth_api connection created using url "<a href="http://localhost:5000/v2.0/" target="_blank">http://localhost:5000/v2.0/</a>"<br>

[20/Sep/2011 01:03:05] "POST /dash/cloud/images/1/launch HTTP/1.1" 200 5518<br><br></p>
    </div>
<br>_______________________________________________<br>
Mailing list: <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>
Post to     : <a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a><br>
Unsubscribe : <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>
More help   : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/ListHelp</a><br></blockquote></div>
</div></div></div>