Why can't neutron get a keystone token
Hi
I'm following the OpenStack install guide and I hit the first snag I can't work out. I've gone back and traced each step and everything looks right. I'm trying to configure neturon on the controller node and am running the verification steps. When trying to run
neutron ext-list
I get "Unauthorized (HTTP 401)".
Keystone and nova command run fine (so the variables set by the admin-openrc.sh file is obv working). If I run the command with --debug I get the trace below. Any help greatly appreciated.
blackspy21@controller:~$ neutron ext-list --debug DEBUG: keystoneclient.session REQ: curl -i -X GET http://controller:35357/v2.0 -H "Accept: application/json" -H "User-Agent: python-keystoneclient" DEBUG: keystoneclient.session RESP: [200] {'date': 'Wed, 29 Jul 2015 15:14:19 GMT', 'vary': 'X-Auth-Token', 'content-length': '421', 'content-type': 'application/json', 'x-distribution': 'Ubuntu'} RESP BODY: {"version": {"status": "stable", "updated": "2014-04-17T00:00:00Z", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v2.0+json"}, {"base": "application/xml", "type": "application/vnd.openstack.identity-v2.0+xml"}], "id": "v2.0", "links": [{"href": "http://controller:35357/v2.0/", "rel": "self"}, {"href": "http://docs.openstack.org/", "type": "text/html", "rel": "describedby"}]}} DEBUG: stevedore.extension found extension EntryPoint.parse('table = cliff.formatters.table:TableFormatter') DEBUG: stevedore.extension found extension EntryPoint.parse('csv = cliff.formatters.commaseparated:CSVLister') DEBUG: neutronclient.neutron.v2_0.extension.ListExt get_data(Namespace(columns=[], fields=[], formatter='table', max_width=0, quote_mode='nonnumeric', request_format='json', show_details=False)) DEBUG: keystoneclient.auth.identity.v2 Making authentication request to http://controller:35357/v2.0/tokens DEBUG: keystoneclient.session REQ: curl -i -X GET http://controller:9696/v2.0/extensions.json -H "User-Agent: python-neutronclient" -H "Accept: application/json" -H "X-Auth-Token: 808fcc3f9efc4e39bc50011e801437a1" DEBUG: keystoneclient.session RESP: DEBUG: keystoneclient.auth.identity.v2 Making authentication request to http://controller:35357/v2.0/tokens DEBUG: keystoneclient.session RESP: DEBUG: keystoneclient.session Request returned failure status: 401 ERROR: neutronclient.shell Unauthorized (HTTP 401) (Request-ID: req-33cdd9ee-1838-42e3-b2c8-f2bf2e24400e) Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 691, in run_subcommand return run_command(cmd, cmd_parser, sub_argv) File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 90, in run_command return cmd.run(known_args) File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 29, in run return super(OpenStackCommand, self).run(parsed_args) File "/usr/lib/python2.7/dist-packages/cliff/display.py", line 91, in run column_names, data = self.take_action(parsed_args) File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 35, in take_action return self.get_data(parsed_args) File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 669, in get_data data = self.retrieve_list(parsed_args) File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 638, in retrieve_list data = self.call_server(neutron_client, search_opts, parsed_args) File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 610, in call_server data = obj_lister(**search_opts) File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 99, in with_params ret = self.function(instance, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line ...