[Bug 996233] Re: nova and python-novaclient disagree on volumes API URLs
Paul Collins
paul.collins at canonical.com
Thu May 31 21:48:27 UTC 2012
Looking at William's trace, I see some differences with the traces I
get. Not posting a full one in the first place was foolish of me. Here
it is now.
$ nova --debug volume-list
connect: (XXX.XXX.XXX.XXX, 8774)
send: 'GET /v1.1 HTTP/1.1\r\nHost: XXX.XXX.XXX.XXX:8774\r\nx-auth-project-id: pjdc_project\r\naccept-encoding: gzip, deflate\r\nx-auth-user: pjdc\r\nuser-agent: python-novaclient\r\nx-auth-key: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\r\naccept: application/json\r\n\r\n'
reply: 'HTTP/1.1 204 No Content\r\n'
header: Content-Length: 0
header: X-Auth-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
header: X-Server-Management-Url: http://XXX.XXX.XXX.XXX:8774/v1.1/pjdc_project
header: Content-Type: text/plain; charset=UTF-8
header: Date: Thu, 31 May 2012 21:19:01 GMT
send: 'GET /v1.1/pjdc_project/volumes/detail HTTP/1.1\r\nHost: XXX.XXX.XXX.XXX:8774\r\nx-auth-project-id: pjdc_project\r\nx-auth-token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nuser-agent: python-novaclient\r\n\r\n'
reply: 'HTTP/1.1 404 Not Found\r\n'
header: Content-Length: 52
header: Content-Type: text/plain; charset=UTF-8
header: Date: Thu, 31 May 2012 21:19:02 GMT
DEBUG (shell:416) n/a (HTTP 404)
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/novaclient/shell.py", line 413, in main
OpenStackComputeShell().main(sys.argv[1:])
File "/usr/lib/python2.7/dist-packages/novaclient/shell.py", line 364, in main
args.func(self.cs, args)
File "/usr/lib/python2.7/dist-packages/novaclient/v1_1/shell.py", line 858, in do_volume_list
volumes = cs.volumes.list()
File "/usr/lib/python2.7/dist-packages/novaclient/v1_1/volumes.py", line 79, in list
return self._list("/volumes/detail", "volumes")
File "/usr/lib/python2.7/dist-packages/novaclient/base.py", line 71, in _list
resp, body = self.api.client.get(url)
File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 136, in get
return self._cs_request(url, 'GET', **kwargs)
File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 124, in _cs_request
**kwargs)
File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 107, in request
raise exceptions.from_response(resp, body)
NotFound: n/a (HTTP 404)
ERROR: n/a (HTTP 404)
Whereas in William's trace the token is obtained with "POST
/v2.0/tokens" and the list operation is performed with "GET
/v1/5c9e830827e0412b92da25b128f5c63d/volumes/detail".
In the credentials packets we distribute to our Openstack users, we have
a file containing environment variables, which includes:
export NOVA_URL="http://XXX.XXX.XXX.XXX:8774/v1.1/"
export NOVA_VERSION="1.1"
However, when I set things up as follows:
export NOVA_URL="http://XXX.XXX.XXX.XXX:8774/v2.0/"
export NOVA_VERSION="2"
I get:
$ nova --debug volume-list
connect: (XXX.XXX.XXX.XXX, 8774)
send: 'POST /v2.0/tokens HTTP/1.1\r\nHost: XXX.XXX.XXX.XXX:8774\r\nContent-Length: 137\r\ncontent-type: application/json\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nuser-agent: python-novaclient\r\n\r\n{"auth": {"tenantName": "pjdc_project", "passwordCredentials": {"username": "pjdc", "password": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}}}'
reply: 'HTTP/1.1 400 Bad Request\r\n'
header: Content-Length: 141
header: Content-Type: application/json; charset=UTF-8
header: Date: Thu, 31 May 2012 21:26:01 GMT
DEBUG (shell:416) The server could not comply with the request since it is either malformed or otherwise incorrect. (HTTP 400)
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/novaclient/shell.py", line 413, in main
OpenStackComputeShell().main(sys.argv[1:])
File "/usr/lib/python2.7/dist-packages/novaclient/shell.py", line 358, in main
self.cs.authenticate()
File "/usr/lib/python2.7/dist-packages/novaclient/v1_1/client.py", line 106, in authenticate
self.client.authenticate()
File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 229, in authenticate
auth_url = self._v2_auth(auth_url)
File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 284, in _v2_auth
self._authenticate(url, body)
File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 305, in _authenticate
resp, body = self.request(token_url, "POST", body=body)
File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 107, in request
raise exceptions.from_response(resp, body)
BadRequest: The server could not comply with the request since it is either malformed or otherwise incorrect. (HTTP 400)
ERROR: The server could not comply with the request since it is either malformed or otherwise incorrect. (HTTP 400)
Which seems to leave us with
=== the v1.1 issue ===
When using the v1.1 API, novaclient is not able to query Openstack for a
list of volumes. Is this supposed to be supported?
=== the v2 issue ===
The Openstack installation I'm testing against doesn't like the v2 API.
In nova-api.log I find:
2012-05-31 21:26:01 INFO nova.api.openstack.wsgi [-] POST http://XXX.XXX.XXX.XXX:8774/v2.0/tokens
2012-05-31 21:26:01 ERROR nova.api.openstack.wsgi [-] Exception handling resource: multi() got an unexpected keyword argument 'body'
2012-05-31 21:26:01 TRACE nova.api.openstack.wsgi Traceback (most recent call last):
2012-05-31 21:26:01 TRACE nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/nova/api/openstack/wsgi.py", line 851, in _process_stack
2012-05-31 21:26:01 TRACE nova.api.openstack.wsgi action_result = self.dispatch(meth, request, action_args)
2012-05-31 21:26:01 TRACE nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/nova/api/openstack/wsgi.py", line 926, in dispatch
2012-05-31 21:26:01 TRACE nova.api.openstack.wsgi return method(req=request, **action_args)
2012-05-31 21:26:01 TRACE nova.api.openstack.wsgi TypeError: multi() got an unexpected keyword argument 'body'
2012-05-31 21:26:01 TRACE nova.api.openstack.wsgi
2012-05-31 21:26:01 INFO nova.api.openstack.wsgi [-] http://XXX.XXX.XXX.XXX:8774/v2.0/tokens returned with HTTP 400
I'll look into this, but if someone recognizes the symptom or has any
ideas, that would be very helpful.
--
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to nova in Ubuntu.
https://bugs.launchpad.net/bugs/996233
Title:
nova and python-novaclient disagree on volumes API URLs
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/996233/+subscriptions
More information about the Ubuntu-server-bugs
mailing list