← Back to team overview

openstack team mailing list archive

Re: Help with python-novaclient and keystone : expecting AUTH (HTTP 400).

 

Vish is right, your request should have an {"auth": } wrapping the credentials.

There are two ways to fix this:

  1.  Use a newer client that honors the Diablo contract
  2.  Use the latest trunk version of Keystone which by default runs a D5_compat middleware and will respond to requests formatted in D5 (pre-diablo release) format.

Z

From: Vishvananda Ishaya <vishvananda@xxxxxxxxx<mailto:vishvananda@xxxxxxxxx>>
Date: Thu, 15 Dec 2011 14:53:35 -0800
To: Jorge Luiz Correa <correajl@xxxxxxxxx<mailto:correajl@xxxxxxxxx>>
Cc: <openstack@xxxxxxxxxxxxxxxxxxx<mailto:openstack@xxxxxxxxxxxxxxxxxxx>>
Subject: Re: [Openstack] Help with python-novaclient and keystone : expecting AUTH (HTTP 400).

Hmm, looks like you are using an old version of python-novaclient.  You might try grabbing from source.  The packages from launchpad are not supported in any way.  We try to provide relatively current packages, but we don't really have the resources to maintain and support them at this point.

Vish

On Dec 15, 2011, at 10:46 AM, Jorge Luiz Correa wrote:

Hi!

I'm testing a new installation (virtual environment) as following:

(1) I've installed Openstack using the Devstack Script (with some modification to work here), so, all in one installation.
(2) Then, I started to install Openstack from a clean Ubuntu Oneiric instalation, but using packages from launchpad, not the Ubuntu packages. What I'm doing is follow the Devstack Script but trying to install the components separately (one host with nova-network, other with nova-api, dashboard, and so on).

Some months ago I've used the euca2ools command line tools. Now we had to use the nova tool, from python-novaclient and the keystone authentication system. I was getting some problems with my (2) installation when trying to run the nova command (for example, to see my nodes, as we got with euca-describe-availability-zones verbose some time ago. Not working. So, I tried to run the same tool on the Devstack instalation and it didn't work too.

user@ubuntu:~$ nova --debug list
connect: (192.168.122.100, 5000)
send: 'POST /v2.0/tokens HTTP/1.1\r\nHost: 192.168.122.100:5000<http://192.168.122.100:5000/>\r\nContent-Length: 90\r\ncontent-type: application/json\r\naccept-encoding: gzip, deflate\r\nuser-agent: python-novaclient\r\n\r\n{"passwordCredentials": {"username": "admin", "password": "Password", "tenantId": "admin"}}'
reply: 'HTTP/1.1 400 Bad Request\r\n'
header: Content-Type: application/json; charset=UTF-8
header: Content-Length: 60
header: Date: Thu, 15 Dec 2011 18:34:20 GMT
Traceback (most recent call last):
  File "/usr/local/bin/nova", line 9, in <module>
    load_entry_point('python-novaclient==2.6.5', 'console_scripts', 'nova')()
  File "/usr/local/lib/python2.7/dist-packages/python_novaclient-2.6.5-py2.7.egg/novaclient/shell.py", line 225, in main
    OpenStackComputeShell().main(sys.argv[1:])
  File "/usr/local/lib/python2.7/dist-packages/python_novaclient-2.6.5-py2.7.egg/novaclient/shell.py", line 182, in main
    self.cs.authenticate()
  File "/usr/local/lib/python2.7/dist-packages/python_novaclient-2.6.5-py2.7.egg/novaclient/v1_1/client.py", line 64, in authenticate
    self.client.authenticate()
  File "/usr/local/lib/python2.7/dist-packages/python_novaclient-2.6.5-py2.7.egg/novaclient/client.py", line 204, in authenticate
    auth_url = self._v2_auth(auth_url)
  File "/usr/local/lib/python2.7/dist-packages/python_novaclient-2.6.5-py2.7.egg/novaclient/client.py", line 255, in _v2_auth
    resp, body = self.request(token_url, "POST", body=body)
  File "/usr/local/lib/python2.7/dist-packages/python_novaclient-2.6.5-py2.7.egg/novaclient/client.py", line 99, in request
    raise exceptions.from_response(resp, body)
novaclient.exceptions.BadRequest: Expecting auth (HTTP 400)

==>> novaclient.exceptions.BadRequest: Expecting auth (HTTP 400)

I've seen some curl examples that changed some sintax, the way that the URL is composed, or something like that. With the new examples I could test keystone and it is working. But I don't know how the nova command makes the query.

I was basing myself on the Devstack installation but I'm seeing that not all the components really works. Someone could help me?

My versions are those from Devstack (master branch from the most components).

Finally, I've understood that the novaclient is now the way we had to manage our private cloud. On the Devstack installation I can play with all the things using Horizon Dashboard. But, in the (2) installation I can't because it doesn't work yet and neither the nova command.

I appreciate any help!

Thanks a bunch!
:)

--
- MSc. Correa, J.L.

_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to     : openstack@xxxxxxxxxxxxxxxxxxx<mailto:openstack@xxxxxxxxxxxxxxxxxxx>
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

_______________________________________________ Mailing list: https://launchpad.net/~openstack Post to : openstack@xxxxxxxxxxxxxxxxxxx<mailto:openstack@xxxxxxxxxxxxxxxxxxx> Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp

References