← Back to team overview

openstack team mailing list archive

Re: Malformed Requests

 

After spending two hours wading through the Python code, I figured it
out. Configuration error.

This is what happens when
    auth_strategy = keystone
is missing from /etc/nova/nova.conf, even if Keystone is otherwise
fully configured.



On Thu, Jul 25, 2013 at 12:34 PM, Justin Brown
<justin.brown@xxxxxxxxxxxx> wrote:
> Oops, a rather poor attempt at obfuscation in my email. The domain
> name is correct in Openstack.
>
> It actually looks like a bug in Openstack. I traced the problem to
> line 911 in nova/api/openstack/wsgi.py:
>
>         if (context and project_id and (project_id != context.project_id)):
>             msg = _("Malformed request url")
>             return Fault(webob.exc.HTTPBadRequest(explanation=msg))
>
> The problem is that project_id is a tenant id
> (4383a5bab4214d299eabf46e7c863a7b in my case), but context.project_id
> is the auth-token, which is 3,688 characters long, and the two clearly
> do not equate.
>
> I don't know anything about nova.context.RequestContext objects, but
> this looks like a rather severe problem.
>
> (Pdb) print(context.__dict__)
> {'project_name': None, 'user_id':
> 'MIIKygYJKoZIhvcNAQcCoIIKuzCCCrcCAQExCTAHBgUrDgMCGjCCCaMGCSqGSIb3DQEHAaCCCZQEggmQeyJhY2Nlc3MiOiB7InRva2VuIjogeyJpc3N1ZWRfYXQiOiAiMjAxMy0wNy0yNVQxNzoyNDoyMS43NzcyMDgiLCAiZXhwaXJlcyI6ICIyMDEzLTA3LTI2VDE3OjI0OjIxWiIsICJpZCI6ICJwbGFjZWhvbGRlciIsICJ0ZW5hbnQiOiB7ImRlc2NyaXB0aW9uIjogbnVsbCwgImVuYWJsZWQiOiB0cnVlLCAiaWQiOiAiNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAibmFtZSI6ICJhZG1pbiJ9fSwgInNlcnZpY2VDYXRhbG9nIjogW3siZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojg3NzQvdjIvNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAicmVnaW9uIjogIktlcnJ5R3JvdXAiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojg3NzQvdjIvNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAiaWQiOiAiMDAzNjRlODUyYmNkNDQxOTg0Mzg0YmU1OTJiOGU0NTYiLCAicHVibGljVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo4Nzc0L3YyLzQzODNhNWJhYjQyMTRkMjk5ZWFiZjQ2ZTdjODYzYTdiIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImNvbXB1dGUiLCAibmFtZSI6ICJub3ZhIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojk2OTYvIiwgInJlZ2lvbiI6ICJLZXJyeUdyb3VwIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo5Njk2LyIsICJpZCI6ICIxNjMyMjJiYjhiZDM0NTllYmJmZmEzNjRmYTZkODE3ZiIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojk2OTYvIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogIm5ldHdvcmsiLCAibmFtZSI6ICJxdWFudHVtIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5OjkyOTIiLCAicmVnaW9uIjogIktlcnJ5R3JvdXAiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5OjkyOTIiLCAiaWQiOiAiMTNmZDFjZjI1ZDA4NDM2NmFlYzViM2JlY2I4MTRiYmQiLCAicHVibGljVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo5MjkyIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImltYWdlIiwgIm5hbWUiOiAiZ2xhbmNlIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojg3NzYvdjEvNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAicmVnaW9uIjogIktlcnJ5R3JvdXAiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojg3NzYvdjEvNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAiaWQiOiAiNzVhZGNlM2VmNTRhNDkzNDllZDFiOTY5MTFhNzhhZTQiLCAicHVibGljVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo4Nzc2L3YxLzQzODNhNWJhYjQyMTRkMjk5ZWFiZjQ2ZTdjODYzYTdiIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogInZvbHVtZSIsICJuYW1lIjogImNpbmRlciJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo4NzczL3NlcnZpY2VzL0FkbWluIiwgInJlZ2lvbiI6ICJLZXJyeUdyb3VwIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo4NzczL3NlcnZpY2VzL0Nsb3VkIiwgImlkIjogIjFlMmE5ZjAyMDk3OTRmYWFhZDdiMTJmODlmMDZlNWFlIiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTkyLjE2OC4yNS4xMDk6ODc3My9zZXJ2aWNlcy9DbG91ZCJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJlYzIiLCAibmFtZSI6ICJlYzIifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTkyLjE2OC4yNS4xMDk6MzUzNTcvdjIuMCIsICJyZWdpb24iOiAiS2VycnlHcm91cCIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTkyLjE2OC4yNS4xMDk6NTAwMC92Mi4wIiwgImlkIjogIjIzYWJhNWVjYTc2ZTQ5ODdiMGNmODQ5YTZhYjNjYjI2IiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTkyLjE2OC4yNS4xMDk6NTAwMC92Mi4wIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImlkZW50aXR5IiwgIm5hbWUiOiAia2V5c3RvbmUifV0sICJ1c2VyIjogeyJ1c2VybmFtZSI6ICJqdXN0aW4iLCAicm9sZXNfbGlua3MiOiBbXSwgImlkIjogImNhOTkxMDY2NTI4MzRkYzM4YjExNGJjZDQxOTU1MGJkIiwgInJvbGVzIjogW3sibmFtZSI6ICJhZG1pbiJ9LCB7Im5hbWUiOiAiX21lbWJlcl8ifV0sICJuYW1lIjogImp1c3RpbiJ9LCAibWV0YWRhdGEiOiB7ImlzX2FkbWluIjogMCwgInJvbGVzIjogWyI5NDc1YWI1OTBkYTM0NzdiYmU0Njc4ODEwYWYxYzQyZCIsICI5ZmUyZmY5ZWU0Mzg0YjE4OTRhOTA4NzhkM2U5MmJhYiJdfX19MYH-MIH8AgEBMFwwVzELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVVuc2V0MQ4wDAYDVQQHEwVVbnNldDEOMAwGA1UEChMFVW5zZXQxGDAWBgNVBAMTD3d3dy5leGFtcGxlLmNvbQIBATAHBgUrDgMCGjANBgkqhkiG9w0BAQEFAASBgH3y2popwnQEvE-Ev6RQeTN4k97YRGr4ljmFpMF0mWNZfU6-QBM5qab2PMzalZ919Pl4pprFvm4flhZCWlPph8GbvaMDKjanNYJb5utTN1biNKu0e+zYjmUWI+OFl8bqjzjMWz0E3vAPdJ0WuGoi1RsF4g16OgMKem1lUZYgm0j3',
> 'roles': [], '_read_deleted': 'no', 'timestamp':
> datetime.datetime(2013, 7, 25, 17, 24, 21, 832341), 'auth_token':
> None, 'remote_address': '127.0.0.1', 'quota_class': None, 'is_admin':
> True, 'service_catalog': [], 'request_id':
> 'req-7debf4c3-1974-4531-8a79-c65b1990d1c5', 'instance_lock_checked':
> False, 'project_id':
> 'MIIKygYJKoZIhvcNAQcCoIIKuzCCCrcCAQExCTAHBgUrDgMCGjCCCaMGCSqGSIb3DQEHAaCCCZQEggmQeyJhY2Nlc3MiOiB7InRva2VuIjogeyJpc3N1ZWRfYXQiOiAiMjAxMy0wNy0yNVQxNzoyNDoyMS43NzcyMDgiLCAiZXhwaXJlcyI6ICIyMDEzLTA3LTI2VDE3OjI0OjIxWiIsICJpZCI6ICJwbGFjZWhvbGRlciIsICJ0ZW5hbnQiOiB7ImRlc2NyaXB0aW9uIjogbnVsbCwgImVuYWJsZWQiOiB0cnVlLCAiaWQiOiAiNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAibmFtZSI6ICJhZG1pbiJ9fSwgInNlcnZpY2VDYXRhbG9nIjogW3siZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojg3NzQvdjIvNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAicmVnaW9uIjogIktlcnJ5R3JvdXAiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojg3NzQvdjIvNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAiaWQiOiAiMDAzNjRlODUyYmNkNDQxOTg0Mzg0YmU1OTJiOGU0NTYiLCAicHVibGljVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo4Nzc0L3YyLzQzODNhNWJhYjQyMTRkMjk5ZWFiZjQ2ZTdjODYzYTdiIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImNvbXB1dGUiLCAibmFtZSI6ICJub3ZhIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojk2OTYvIiwgInJlZ2lvbiI6ICJLZXJyeUdyb3VwIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo5Njk2LyIsICJpZCI6ICIxNjMyMjJiYjhiZDM0NTllYmJmZmEzNjRmYTZkODE3ZiIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojk2OTYvIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogIm5ldHdvcmsiLCAibmFtZSI6ICJxdWFudHVtIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5OjkyOTIiLCAicmVnaW9uIjogIktlcnJ5R3JvdXAiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5OjkyOTIiLCAiaWQiOiAiMTNmZDFjZjI1ZDA4NDM2NmFlYzViM2JlY2I4MTRiYmQiLCAicHVibGljVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo5MjkyIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImltYWdlIiwgIm5hbWUiOiAiZ2xhbmNlIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojg3NzYvdjEvNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAicmVnaW9uIjogIktlcnJ5R3JvdXAiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojg3NzYvdjEvNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAiaWQiOiAiNzVhZGNlM2VmNTRhNDkzNDllZDFiOTY5MTFhNzhhZTQiLCAicHVibGljVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo4Nzc2L3YxLzQzODNhNWJhYjQyMTRkMjk5ZWFiZjQ2ZTdjODYzYTdiIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogInZvbHVtZSIsICJuYW1lIjogImNpbmRlciJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo4NzczL3NlcnZpY2VzL0FkbWluIiwgInJlZ2lvbiI6ICJLZXJyeUdyb3VwIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo4NzczL3NlcnZpY2VzL0Nsb3VkIiwgImlkIjogIjFlMmE5ZjAyMDk3OTRmYWFhZDdiMTJmODlmMDZlNWFlIiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTkyLjE2OC4yNS4xMDk6ODc3My9zZXJ2aWNlcy9DbG91ZCJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJlYzIiLCAibmFtZSI6ICJlYzIifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTkyLjE2OC4yNS4xMDk6MzUzNTcvdjIuMCIsICJyZWdpb24iOiAiS2VycnlHcm91cCIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTkyLjE2OC4yNS4xMDk6NTAwMC92Mi4wIiwgImlkIjogIjIzYWJhNWVjYTc2ZTQ5ODdiMGNmODQ5YTZhYjNjYjI2IiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTkyLjE2OC4yNS4xMDk6NTAwMC92Mi4wIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImlkZW50aXR5IiwgIm5hbWUiOiAia2V5c3RvbmUifV0sICJ1c2VyIjogeyJ1c2VybmFtZSI6ICJqdXN0aW4iLCAicm9sZXNfbGlua3MiOiBbXSwgImlkIjogImNhOTkxMDY2NTI4MzRkYzM4YjExNGJjZDQxOTU1MGJkIiwgInJvbGVzIjogW3sibmFtZSI6ICJhZG1pbiJ9LCB7Im5hbWUiOiAiX21lbWJlcl8ifV0sICJuYW1lIjogImp1c3RpbiJ9LCAibWV0YWRhdGEiOiB7ImlzX2FkbWluIjogMCwgInJvbGVzIjogWyI5NDc1YWI1OTBkYTM0NzdiYmU0Njc4ODEwYWYxYzQyZCIsICI5ZmUyZmY5ZWU0Mzg0YjE4OTRhOTA4NzhkM2U5MmJhYiJdfX19MYH-MIH8AgEBMFwwVzELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVVuc2V0MQ4wDAYDVQQHEwVVbnNldDEOMAwGA1UEChMFVW5zZXQxGDAWBgNVBAMTD3d3dy5leGFtcGxlLmNvbQIBATAHBgUrDgMCGjANBgkqhkiG9w0BAQEFAASBgH3y2popwnQEvE-Ev6RQeTN4k97YRGr4ljmFpMF0mWNZfU6-QBM5qab2PMzalZ919Pl4pprFvm4flhZCWlPph8GbvaMDKjanNYJb5utTN1biNKu0e+zYjmUWI+OFl8bqjzjMWz0E3vAPdJ0WuGoi1RsF4g16OgMKem1lUZYgm0j3',
> 'user_name': None}
>
> I'm not sure why the project_id is being set to the my auth-token.
>
> I'm still trying to figure out what is happening.
>
> Thanks,
> Justin
>
> On Thu, Jul 25, 2013 at 3:21 AM, Unmesh Gurjar <unmesh.gurjar@xxxxxxxxx> wrote:
>> Hi Justin,
>>
>> Looking at the endpoints in the auth response (v2.0/tokens), probably the
>> URL should be
>> http://openstack.cloud.fandingo.org:8776/v1/4457698fa26d4ce59f1811e91521f6c4/volumes/detail
>> instead of
>> http://openstack.cloud.kerrygroup.net:8776/v1/4457698fa26d4ce59f1811e91521f6c4/volumes/detail
>> .
>>
>> Hope it helps!
>>
>>
>> On Thu, Jul 25, 2013 at 12:15 AM, Justin Brown <justin.brown@xxxxxxxxxxxx>
>> wrote:
>>>
>>> Hello,
>>>
>>> I'm having some trouble getting Nova and Cinder to communicate with
>>> the API and Horizon in Grizzly.
>>>
>>> Any request that I make against those services always returns HTTP
>>> 400, malformed request url. Requests to Keystone and Glance work fine.
>>>
>>> I've only found a couple other people with this issue, and it seemed
>>> to always be related to typos in their service endpoint URLs. I don't
>>> think that is my problem.
>>>
>>> Here are my endpoints for Cinder and Nova, respectively
>>>     http://openstack.cloud.fandingo.org:8776/v1/$(tenant_id)s
>>>     http://openstack.cloud.fandingo.org:8774/v2/$(tenant_id)s
>>>
>>> Now, if I try something simple like `cinder --debug list`, I get the
>>> following output. Note that the CMS auth-token is quite long, so I
>>> have omitted it.
>>>
>>> REQ: curl -i http://localhost:35357/v2.0/tokens -X POST -H
>>> "Content-Type: application/json" -H "Accept: application/json" -H
>>> "User-Agent: python-cinderclient" -d '{"auth": {"tenantName": "admin",
>>> "passwordCredentials": {"username": "justi
>>> n", "password": "secret"}}}'
>>>
>>> RESP: [200] {'date': 'Wed, 24 Jul 2013 18:10:30 GMT', 'content-type':
>>> 'application/json', 'content-length': '7281', 'vary': 'X-Auth-Token'}
>>> RESP BODY: {"access": {"token": {"issued_at":
>>> "2013-07-24T18:10:30.957542", "expires": "2013-07-25T18:10:30Z", "id":
>>> "<<AUTH-TOKEN...>>", "tenant": {"description": null, "enabled": true,
>>> "id": "4457698fa26d4ce59f1811e91521f6c4", "name": "admin"}},
>>> "serviceCatalog": [{"endpoints": [{"adminURL":
>>>
>>> "http://openstack.cloud.fandingo.org:8774/v2/4457698fa26d4ce59f1811e91521f6c4";,
>>> "region": "Fandingo", "internalURL":
>>>
>>> "http://openstack.cloud.fandingo.org:8774/v2/4457698fa26d4ce59f1811e91521f6c4";,
>>> "id": "0494bbe29b014d6da63e519eafa734da", "publicURL":
>>>
>>> "http://openstack.cloud.fandingo.org:8774/v2/4457698fa26d4ce59f1811e91521f6c4"}],
>>> "endpoints_links": [], "type": "compute", "name": "nova"},
>>> {"endpoints": [{"adminURL":
>>> "http://openstack.cloud.fandingo.org:9696/";, "region": "Fandingo",
>>> "internalURL": "http://openstack.cloudfandingo.org:9696/";, "id":
>>> "ad160008203d4de0b96ed7def7ed1269", "publicURL":
>>> "http://openstack.cloud.fandingo.org:9696/"}], "endpoints_links": [],
>>> "type": "network", "name": "quantum"}, {"endpoints": [{"adminURL":
>>> "http://openstack.cloud.fandingo.org:9292";, "region": "Fandingo",
>>> "internalURL": "http://openstack.cloud.fandingo.org:9292";, "id":
>>> "0d8f052422ea42eabcfb53212d5a563a", "publicURL":
>>> "http://openstack.cloud.fandingo.org:9292"}], "endpoints_links": [],
>>> "type": "image", "name": "glance"}, {"endpoints": [{"adminURL":
>>>
>>> "http://openstack.cloud.fandingo.org:8776/v1/4457698fa26d4ce59f1811e91521f6c4";,
>>> "region": "Fandingo", "internalURL":
>>>
>>> "http://openstack.cloud.fandingo.org:8776/v1/4457698fa26d4ce59f1811e91521f6c4";,
>>> "id": "17090aacab934d13b6ce735e78e317c9", "publicURL":
>>>
>>> "http://openstack.cloud.fandingo.org:8776/v1/4457698fa26d4ce59f1811e91521f6c4"}],
>>> "endpoints_links": [], "type": "volume", "name": "cinder"},
>>> {"endpoints": [{"adminURL":
>>> "http://openstack.cloud.fandingo.org:8773/services/Admin";, "region":
>>> "Fandingo", "internalURL":
>>> "http://openstack.cloud.fandingo.org:8773/services/Cloud";, "id":
>>> "42556805f93d41ef87c9657b9d0cc52a", "publicURL":
>>> "http://openstack.cloud.fandingo.org:8773/services/Cloud"}],
>>> "endpoints_links": [], "type": "ec2", "name": "ec2"}, {"endpoints":
>>> [{"adminURL": "http://openstack.cloud.fandingo.org:35357/v2.0";,
>>> "region": "Fandingo", "internalURL":
>>> "http://openstack.cloud.fandingo.org:5000/v2.0";, "id":
>>> "1af520b8fced4335aaeb5fa13515aaa5", "publicURL":
>>> "http://openstack.cloud.fandingo.org:5000/v2.0"}], "endpoints_links":
>>> [], "type": "identity", "name": "keystone"}], "user": {"username":
>>> "justin", "roles_links": [], "id": "84888243a24940d78cf190bcc5166d75",
>>> "roles": [{"name": "_member_"}, {"name": "admin"}], "name": "justin"},
>>> "metadata": {"is_admin": 0, "roles":
>>> ["9fe2ff9ee4384b1894a90878d3e92bab",
>>> "3c8337f7a64a4bd8967d971f1debeea8"]}}}
>>>
>>> That looks fine. The error happens on the second curl command:
>>> REQ: curl -i
>>> http://openstack.cloud.kerrygroup.net:8776/v1/4457698fa26d4ce59f1811e91521f6c4/volumes/detail
>>> -X GET -H "X-Auth-Project-Id: admin" -H "User-Agent:
>>> python-cinderclient" -H "Accept: application/json" -H "X-Auth-Token:
>>> <<AUTH_TOKEN...>>"
>>>
>>> RESP: [400] {'date': 'Wed, 24 Jul 2013 18:10:31 GMT',
>>> 'content-length': '65', 'content-type': 'application/json;
>>> charset=UTF-8', 'x-compute-request-id':
>>> 'req-54484df2-dfdf-447a-a47b-73fbae8da9f1'}
>>> RESP BODY: {"badRequest": {"message": "Malformed request url", "code":
>>> 400}}
>>>
>>> That causes a Python exception
>>> BadRequest: Malformed request url (HTTP 400) (Request-ID:
>>> req-54484df2-dfdf-447a-a47b-73fbae8da9f1)
>>> ERROR: Malformed request url
>>>
>>> The only message in the Cinder api.log (verbose = True) is the GET
>>> rquest, but nothing about the error:
>>>
>>> 2013-07-24 13:40:18     INFO [cinder.api.openstack.wsgi] GET
>>>
>>> http://openstack.cloud.kerrygroup.net:8776/v1/4457698fa26d4ce59f1811e91521f6c4/volumes/detail
>>>
>>> Could someone help me troubleshoot this problem?
>>>
>>> Thanks,
>>> Justin
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~openstack
>>> Post to     : openstack@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~openstack
>>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>>
>>


References