<body>
Hello to all. I integrated openstack with succesfully, but it only works 100% using CLI. Using horizon a lot of errors appear in the dashboard. One of the problems is when I try to add users to a project.<br><br>In the CLI that's the output:<br><br>keystone --debug user-role-add --tenant-id 5743642aebb341309761c6ae963dc3ef --user b8e26630750841dd92c7538a62305d60 --role c93d4846da2d4f21824606b5d3747ed9<br>WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).<br>REQ: curl -i http://192.168.0.201:35357/v2.0/users/b8e26630750841dd92c7538a62305d60 -X GET -H "User-Agent: python-keystoneclient" -H "X-Auth-Token: password"<br>RESP: [200] {'date': 'Wed, 08 May 2013 19:20:48 GMT', 'content-type': 'application/json', 'content-length': '96', 'vary': 'X-Auth-Token'}<br>RESP BODY: {"user": {"id": "b8e26630750841dd92c7538a62305d60", "name": "nova", "email": "nova@domain.com"}}<br><br>REQ: curl -i http://192.168.0.201:35357/v2.0/OS-KSADM/roles/c93d4846da2d4f21824606b5d3747ed9 -X GET -H "User-Agent: python-keystoneclient" -H "X-Auth-Token: password"<br>RESP: [200] {'date': 'Wed, 08 May 2013 19:20:48 GMT', 'content-type': 'application/json', 'content-length': '69', 'vary': 'X-Auth-Token'}<br>RESP BODY: {"role": {"id": "c93d4846da2d4f21824606b5d3747ed9", "name": "admin"}}<br><br>REQ: curl -i http://192.168.0.201:35357/v2.0/tenants/5743642aebb341309761c6ae963dc3ef -X GET -H "User-Agent: python-keystoneclient" -H "X-Auth-Token: password"<br>RESP: [200] {'date': 'Wed, 08 May 2013 19:20:48 GMT', 'content-type': 'application/json', 'content-length': '95', 'vary': 'X-Auth-Token'}<br>RESP BODY: {"tenant": {"description": "teste", "id": "5743642aebb341309761c6ae963dc3ef", "name": "teste"}}<br><br>REQ: curl -i http://192.168.0.201:35357/v2.0/tenants/5743642aebb341309761c6ae963dc3ef/users/b8e26630750841dd92c7538a62305d60/roles/OS-KSADM/c93d4846da2d4f21824606b5d3747ed9 PUT -H "User-Agent: python-keystoneclient" -H "X-Auth-Token: password"<br>RESP: [200] {'date': 'Wed, 08 May 2013 19:20:48 GMT', 'content-type': 'application/json', 'content-length': '69', 'vary': 'X-Auth-Token'}<br>RESP BODY: {"role": {"id": "c93d4846da2d4f21824606b5d3747ed9", "name": "admin"}}<br><br>I check in the horizon and the user is listed under the project, with the designed role.<br><br>If I try to make the same thing using horizon, an error "<strong>Error: </strong>
      There was an error submitting the form. Please try again." appears on console. Checking the log of apache, there's the following error:<br>[Wed May 08 19:26:23 2013] [error] DEBUG:urllib3.connectionpool:"POST /v2.0/tenants/5743642aebb341309761c6ae963dc3ef HTTP/1.1" 200 16<br>[Wed May 08 19:26:23 2013] [error] ERROR:django.request:Internal Server Error: /horizon/admin/projects/5743642aebb341309761c6ae963dc3ef/update/<br>[Wed May 08 19:26:23 2013] [error] Traceback (most recent call last):<br>[Wed May 08 19:26:23 2013] [error]   File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 111, in get_response<br>[Wed May 08 19:26:23 2013] [error]     response = callback(request, *callback_args, **callback_kwargs)<br>[Wed May 08 19:26:23 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/decorators.py", line 38, in dec<br>[Wed May 08 19:26:23 2013] [error]     return view_func(request, *args, **kwargs)<br>[Wed May 08 19:26:23 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/decorators.py", line 86, in dec<br>[Wed May 08 19:26:23 2013] [error]     return view_func(request, *args, **kwargs)<br>[Wed May 08 19:26:23 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/decorators.py", line 54, in dec<br>[Wed May 08 19:26:23 2013] [error]     return view_func(request, *args, **kwargs)<br>[Wed May 08 19:26:23 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/decorators.py", line 38, in dec<br>[Wed May 08 19:26:23 2013] [error]     return view_func(request, *args, **kwargs)<br>[Wed May 08 19:26:23 2013] [error]   File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py", line 48, in view<br>[Wed May 08 19:26:23 2013] [error]     return self.dispatch(request, *args, **kwargs)<br>[Wed May 08 19:26:23 2013] [error]   File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py", line 69, in dispatch<br>[Wed May 08 19:26:23 2013] [error]     return handler(request, *args, **kwargs)<br>[Wed May 08 19:26:23 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/workflows/views.py", line 139, in post<br>[Wed May 08 19:26:23 2013] [error]     exceptions.handle(request)<br>[Wed May 08 19:26:23 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/workflows/views.py", line 136, in post<br>[Wed May 08 19:26:23 2013] [error]     success = workflow.finalize()<br>[Wed May 08 19:26:23 2013] [error]   File "/usr/lib/python2.7/dist-packages/horizon/workflows/base.py", line 779, in finalize<br>[Wed May 08 19:26:23 2013] [error]     if not self.handle(self.request, self.context):<br>[Wed May 08 19:26:23 2013] [error]   File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/dashboards/admin/projects/workflows.py", line 312, in handle<br>[Wed May 08 19:26:23 2013] [error]     exceptions.handle(request, ignore=True)<br>[Wed May 08 19:26:23 2013] [error]   File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/dashboards/admin/projects/workflows.py", line 310, in handle<br>[Wed May 08 19:26:23 2013] [error]     enabled=data['enabled'])<br>[Wed May 08 19:26:23 2013] [error]   File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/api/keystone.py", line 157, in tenant_update<br>[Wed May 08 19:26:23 2013] [error]     enabled)<br>[Wed May 08 19:26:23 2013] [error]   File "/usr/lib/python2.7/dist-packages/keystoneclient/v2_0/tenants.py", line 134, in update<br>[Wed May 08 19:26:23 2013] [error]     return self._create("/tenants/%s" % tenant_id, body, "tenant")<br>[Wed May 08 19:26:23 2013] [error]   File "/usr/lib/python2.7/dist-packages/keystoneclient/base.py", line 91, in _create<br>[Wed May 08 19:26:23 2013] [error]     return self.resource_class(self, body[response_key])<br>[Wed May 08 19:26:23 2013] [error]   File "/usr/lib/python2.7/dist-packages/keystoneclient/base.py", line 279, in __init__<br>[Wed May 08 19:26:23 2013] [error]     self._add_details(info)<br>[Wed May 08 19:26:23 2013] [error]   File "/usr/lib/python2.7/dist-packages/keystoneclient/base.py", line 283, in _add_details<br>[Wed May 08 19:26:23 2013] [error]     for (k, v) in info.iteritems():<br>[Wed May 08 19:26:23 2013] [error] AttributeError: 'NoneType' object has no attribute 'iteritems'<br><br>In the keystone log:<br>2013-05-08 19:26:23    DEBUG [keystone.common.wsgi] ******************** RESPONSE HEADERS ********************<br>2013-05-08 19:26:23    DEBUG [keystone.common.wsgi] Vary = X-Auth-Token<br>2013-05-08 19:26:23    DEBUG [keystone.common.wsgi] Content-Type = application/json<br>2013-05-08 19:26:23    DEBUG [keystone.common.wsgi] Content-Length = 16<br>2013-05-08 19:26:23    DEBUG [keystone.common.wsgi] <br>2013-05-08 19:26:23    DEBUG [keystone.common.wsgi] ******************** RESPONSE BODY ********************<br>2013-05-08 19:26:23    DEBUG [keystone.common.wsgi] {"tenant": null}<br>2013-05-08 19:26:23     INFO [access] 192.168.0.201 - - [08/May/2013:19:26:23 +0000] "POST http://192.168.0.201:35357/v2.0/tenants/5743642aebb341309761c6ae963dc3ef HTTP/1.0" 200 16<br>2013-05-08 19:26:23    DEBUG [eventlet.wsgi.server] 192.168.0.201 - - [08/May/2013 19:26:23] "POST /v2.0/tenants/5743642aebb341309761c6ae963dc3ef HTTP/1.1" 200 144 0.019474<br><br>Maybe it's related to the bug #1006316 (https://bugs.launchpad.net/keystone/+bug/1006316)?<br><br>Any help will be appreciated =)<br><br>Thanks,<br>Marcelo M. Miziara
<br>Serviço Federal de Processamento de Dados - SERPRO
<br>CDEBW/CDTEC/SUPCD 
<br>+55 (41) 3593 8277
<br>marcelo.miziara@serpro.gov.br

<DIV>
-<BR>
<BR>
<BR>
"Esta mensagem do SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO), empresa pública federal regida pelo disposto na Lei Federal nº 5.615, é enviada exclusivamente a seu destinatário e pode conter informações confidenciais, protegidas por sigilo profissional. Sua utilização desautorizada é ilegal e sujeita o infrator às penas da lei. Se você a recebeu indevidamente, queira, por gentileza, reenviá-la ao emitente, esclarecendo o equívoco."<BR>
<BR>
"This message from SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO) -- a government company established under Brazilian law (5.615/70) -- is directed exclusively to its addressee and may contain confidential data, protected under professional secrecy rules. Its unauthorized use is illegal and may subject the transgressor to the law's penalties. If you're not the addressee, please send it back, elucidating the failure."<BR>
</DIV></body>