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.br...@fandingo.org> 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': > 'MIIKygYJKoZIhvcNAQcCoIIKuzCCCrcCAQExCTAHBgUrDgMCGjCCCaMGCSqGSIb3DQEHAaCCCZQEggmQeyJhY2Nlc3MiOiB7InRva2VuIjogeyJpc3N1ZWRfYXQiOiAiMjAxMy0wNy0yNVQxNzoyNDoyMS43NzcyMDgiLCAiZXhwaXJlcyI6ICIyMDEzLTA3LTI2VDE3OjI0OjIxWiIsICJpZCI6ICJwbGFjZWhvbGRlciIsICJ0ZW5hbnQiOiB7ImRlc2NyaXB0aW9uIjogbnVsbCwgImVuYWJsZWQiOiB0cnVlLCAiaWQiOiAiNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAibmFtZSI6ICJhZG1pbiJ9fSwgInNlcnZpY2VDYXRhbG9nIjogW3siZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojg3NzQvdjIvNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAicmVnaW9uIjogIktlcnJ5R3JvdXAiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojg3NzQvdjIvNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAiaWQiOiAiMDAzNjRlODUyYmNkNDQxOTg0Mzg0YmU1OTJiOGU0NTYiLCAicHVibGljVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo4Nzc0L3YyLzQzODNhNWJhYjQyMTRkMjk5ZWFiZjQ2ZTdjODYzYTdiIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImNvbXB1dGUiLCAibmFtZSI6ICJub3ZhIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojk2OTY vIiwgInJlZ2lvbiI6ICJLZXJyeUdyb3VwIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo5Njk2LyIsICJpZCI6ICIxNjMyMjJiYjhiZDM0NTllYmJmZmEzNjRmYTZkODE3ZiIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojk2OTYvIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogIm5ldHdvcmsiLCAibmFtZSI6ICJxdWFudHVtIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5OjkyOTIiLCAicmVnaW9uIjogIktlcnJ5R3JvdXAiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5OjkyOTIiLCAiaWQiOiAiMTNmZDFjZjI1ZDA4NDM2NmFlYzViM2JlY2I4MTRiYmQiLCAicHVibGljVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo5MjkyIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImltYWdlIiwgIm5hbWUiOiAiZ2xhbmNlIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojg3NzYvdjEvNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAicmVnaW9uIjogIktlcnJ5R3JvdXAiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojg3NzYvdjEvNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAiaWQiOiAiNzVhZGNlM2VmNTRhNDkzNDllZDFiOTY5MTFhNzhhZTQiLCAicHVibGljVVJM IjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo4Nzc2L3YxLzQzODNhNWJhYjQyMTRkMjk5ZWFiZjQ2ZTdjODYzYTdiIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogInZvbHVtZSIsICJuYW1lIjogImNpbmRlciJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo4NzczL3NlcnZpY2VzL0FkbWluIiwgInJlZ2lvbiI6ICJLZXJyeUdyb3VwIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo4NzczL3NlcnZpY2VzL0Nsb3VkIiwgImlkIjogIjFlMmE5ZjAyMDk3OTRmYWFhZDdiMTJmODlmMDZlNWFlIiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTkyLjE2OC4yNS4xMDk6ODc3My9zZXJ2aWNlcy9DbG91ZCJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJlYzIiLCAibmFtZSI6ICJlYzIifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTkyLjE2OC4yNS4xMDk6MzUzNTcvdjIuMCIsICJyZWdpb24iOiAiS2VycnlHcm91cCIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTkyLjE2OC4yNS4xMDk6NTAwMC92Mi4wIiwgImlkIjogIjIzYWJhNWVjYTc2ZTQ5ODdiMGNmODQ5YTZhYjNjYjI2IiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTkyLjE2OC4yNS4xMDk6NTAwMC92Mi4wIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImlkZW50aXR5IiwgIm5hbWUiOiAia2V5c3RvbmUifV0sICJ1c2VyIjoge yJ1c2VybmFtZSI6ICJqdXN0aW4iLCAicm9sZXNfbGlua3MiOiBbXSwgImlkIjogImNhOTkxMDY2NTI4MzRkYzM4YjExNGJjZDQxOTU1MGJkIiwgInJvbGVzIjogW3sibmFtZSI6ICJhZG1pbiJ9LCB7Im5hbWUiOiAiX21lbWJlcl8ifV0sICJuYW1lIjogImp1c3RpbiJ9LCAibWV0YWRhdGEiOiB7ImlzX2FkbWluIjogMCwgInJvbGVzIjogWyI5NDc1YWI1OTBkYTM0NzdiYmU0Njc4ODEwYWYxYzQyZCIsICI5ZmUyZmY5ZWU0Mzg0YjE4OTRhOTA4NzhkM2U5MmJhYiJdfX19MYH-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': > 'MIIKygYJKoZIhvcNAQcCoIIKuzCCCrcCAQExCTAHBgUrDgMCGjCCCaMGCSqGSIb3DQEHAaCCCZQEggmQeyJhY2Nlc3MiOiB7InRva2VuIjogeyJpc3N1ZWRfYXQiOiAiMjAxMy0wNy0yNVQxNzoyNDoyMS43NzcyMDgiLCAiZXhwaXJlcyI6ICIyMDEzLTA3LTI2VDE3OjI0OjIxWiIsICJpZCI6ICJwbGFjZWhvbGRlciIsICJ0ZW5hbnQiOiB7ImRlc2NyaXB0aW9uIjogbnVsbCwgImVuYWJsZWQiOiB0cnVlLCAiaWQiOiAiNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAibmFtZSI6ICJhZG1pbiJ9fSwgInNlcnZpY2VDYXRhbG9nIjogW3siZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojg3NzQvdjIvNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAicmVnaW9uIjogIktlcnJ5R3JvdXAiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojg3NzQvdjIvNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAiaWQiOiAiMDAzNjRlODUyYmNkNDQxOTg0Mzg0YmU1OTJiOGU0NTYiLCAicHVibGljVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo4Nzc0L3YyLzQzODNhNWJhYjQyMTRkMjk5ZWFiZjQ2ZTdjODYzYTdiIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImNvbXB1dGUiLCAibmFtZSI6ICJub3ZhIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojk2OTY vIiwgInJlZ2lvbiI6ICJLZXJyeUdyb3VwIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo5Njk2LyIsICJpZCI6ICIxNjMyMjJiYjhiZDM0NTllYmJmZmEzNjRmYTZkODE3ZiIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojk2OTYvIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogIm5ldHdvcmsiLCAibmFtZSI6ICJxdWFudHVtIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5OjkyOTIiLCAicmVnaW9uIjogIktlcnJ5R3JvdXAiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5OjkyOTIiLCAiaWQiOiAiMTNmZDFjZjI1ZDA4NDM2NmFlYzViM2JlY2I4MTRiYmQiLCAicHVibGljVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo5MjkyIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImltYWdlIiwgIm5hbWUiOiAiZ2xhbmNlIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojg3NzYvdjEvNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAicmVnaW9uIjogIktlcnJ5R3JvdXAiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMjUuMTA5Ojg3NzYvdjEvNDM4M2E1YmFiNDIxNGQyOTllYWJmNDZlN2M4NjNhN2IiLCAiaWQiOiAiNzVhZGNlM2VmNTRhNDkzNDllZDFiOTY5MTFhNzhhZTQiLCAicHVibGljVVJM IjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo4Nzc2L3YxLzQzODNhNWJhYjQyMTRkMjk5ZWFiZjQ2ZTdjODYzYTdiIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogInZvbHVtZSIsICJuYW1lIjogImNpbmRlciJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo4NzczL3NlcnZpY2VzL0FkbWluIiwgInJlZ2lvbiI6ICJLZXJyeUdyb3VwIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xOTIuMTY4LjI1LjEwOTo4NzczL3NlcnZpY2VzL0Nsb3VkIiwgImlkIjogIjFlMmE5ZjAyMDk3OTRmYWFhZDdiMTJmODlmMDZlNWFlIiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTkyLjE2OC4yNS4xMDk6ODc3My9zZXJ2aWNlcy9DbG91ZCJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJlYzIiLCAibmFtZSI6ICJlYzIifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTkyLjE2OC4yNS4xMDk6MzUzNTcvdjIuMCIsICJyZWdpb24iOiAiS2VycnlHcm91cCIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTkyLjE2OC4yNS4xMDk6NTAwMC92Mi4wIiwgImlkIjogIjIzYWJhNWVjYTc2ZTQ5ODdiMGNmODQ5YTZhYjNjYjI2IiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTkyLjE2OC4yNS4xMDk6NTAwMC92Mi4wIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImlkZW50aXR5IiwgIm5hbWUiOiAia2V5c3RvbmUifV0sICJ1c2VyIjoge yJ1c2VybmFtZSI6ICJqdXN0aW4iLCAicm9sZXNfbGlua3MiOiBbXSwgImlkIjogImNhOTkxMDY2NTI4MzRkYzM4YjExNGJjZDQxOTU1MGJkIiwgInJvbGVzIjogW3sibmFtZSI6ICJhZG1pbiJ9LCB7Im5hbWUiOiAiX21lbWJlcl8ifV0sICJuYW1lIjogImp1c3RpbiJ9LCAibWV0YWRhdGEiOiB7ImlzX2FkbWluIjogMCwgInJvbGVzIjogWyI5NDc1YWI1OTBkYTM0NzdiYmU0Njc4ODEwYWYxYzQyZCIsICI5ZmUyZmY5ZWU0Mzg0YjE4OTRhOTA4NzhkM2U5MmJhYiJdfX19MYH-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.gur...@gmail.com> > 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.br...@fandingo.org> >> 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@lists.launchpad.net >>> Unsubscribe : https://launchpad.net/~openstack >>> More help : https://help.launchpad.net/ListHelp >> >> >> >> _______________________________________________ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp