** Changed in: nova
Status: Triaged => Invalid
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1441922
Title:
Keystone V3 authentication return BadRequest: Malformed request url
Status in Cinder:
Invalid
Status in OpenStack Compute (Nova):
Invalid
Bug description:
When using keystone V3 authentication for cinder and nova (see comment #3), I
got error "BadRequest: Malformed request url (HTTP 400)".
I am testing on Juno release, my keystone v3 env is like this,
export OS_USERNAME="admin"
export OS_PASSWORD="password"
export OS_DOMAIN_NAME=default
export OS_AUTH_URL="http://$MY_HOST:35357/v3"
export OS_IDENTITY_API_VERSION=3
My endpoint of cinder public URL is like
http://**.**.**.**:8776/v1/cbe4b1d87fbb4318be379a79a570b7ec (I hided the real
IP)
When run command "openstack --debug volume list" or "openstack --debug volume
create --size 1 jin", I got this BadRequest error. From debug info, this error
comes from cinder server. I added log in cinder/api/openstack/wsgi.py function
_process_stack(), found the context.project_id is None while project_id has a
value, here return the error.
if (context and project_id and (project_id != context.project_id)):
msg = _("Malformed request url")
return Fault(webob.exc.HTTPBadRequest(explanation=msg))
I compared with another keystone V2 authentication server, the
context.project_id is same as project_id. Maybe this is difference, in v2
server the REQ has one more Project-id like "curl -i -H "X-Auth-Project-Id:
admin".
I found the cinder.context maybe come from cinder/api/middleware/auth.py, the
project_id in cinder.context may not be assigned a value in keystone v3
authentication scenario.
ERROR log is as below:
REQ: curl -i
http://**.**.**.**:8776/v1/cbe4b1d87fbb4318be379a79a570b7ec/volumes/detail
-X GET -H "User-Agent: python-cinderclient" -H "Accept:
application/json" -H "X-Auth-Token: e883e05a887144d4ae70151c976ce666"
INFO: requests.packages.urllib3.connectionpool Starting new HTTP connection
(1): **.**.**.**
DEBUG: requests.packages.urllib3.connectionpool "GET
/v1/cbe4b1d87fbb4318be379a79a570b7ec/volumes/detail HTTP/1.1" 400 65
DEBUG: cinderclient.client RESP: [400] {'date': 'Thu, 09 Apr 2015 00:35:30
GMT', 'content-length': '65', 'content-type': 'application/json;
charset=UTF-8', 'x-compute-request-id':
'req-39a96150-b9ab-4753-8b02-d5730492b288', 'x-openstack-request-id':
'req-39a96150-b9ab-4753-8b02-d5730492b288'}
RESP BODY: {"badRequest": {"message": "Malformed request url", "code": 400}}
ERROR: openstack Malformed request url (HTTP 400) (Request-ID:
req-39a96150-b9ab-4753-8b02-d5730492b288)
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/cliff/app.py", line 280, in
run_subcommand
result = cmd.run(parsed_args)
File "/usr/lib/python2.7/site-packages/cliff/display.py", line 91, in run
column_names, data = self.take_action(parsed_args)
File
"/usr/lib/python2.7/site-packages/openstackclient/volume/v1/volume.py", line
255, in take_action
data = volume_client.volumes.list(search_opts=search_opts)
File "/usr/lib/python2.7/site-packages/cinderclient/v1/volumes.py", line
220, in list
"volumes")
File "/usr/lib/python2.7/site-packages/cinderclient/base.py", line 70, in
_list
resp, body = self.api.client.get(url)
File "/usr/lib/python2.7/site-packages/cinderclient/client.py", line 302,
in get
return self._cs_request(url, 'GET', **kwargs)
File "/usr/lib/python2.7/site-packages/cinderclient/client.py", line 269,
in _cs_request
**kwargs)
File "/usr/lib/python2.7/site-packages/cinderclient/client.py", line 252,
in request
raise exceptions.from_response(resp, body)
BadRequest: Malformed request url (HTTP 400) (Request-ID:
req-39a96150-b9ab-4753-8b02-d5730492b288)
To manage notifications about this bug go to:
https://bugs.launchpad.net/cinder/+bug/1441922/+subscriptions
--
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help : https://help.launchpad.net/ListHelp