Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

authentication to horizon appears to succeed, but I get "Unable to retrieve authorized projects" in the login window.

After installing keystone, compute, cinder and the controller packages in a single-node installation I'm able to verify that all the services can communicate successfully with keystone. I can provision volumes, start instances and add images from the command line. However, when I install horizon, I provide the admin credentials and get

"Unable to retrieve authorized projects"

in the login window. It looks to me like authentication succeeds in the logs, but then the subsequent request for the tenant list fails:

==> /var/log/keystone/keystone.log <==
2013-09-19 10:34:40    DEBUG [eventlet.wsgi.server] (32457) accepted ('192.168.78.196', 40227)

2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] ******************** REQUEST ENVIRON ********************
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] SCRIPT_NAME = /v2.0
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] webob.adhoc_attrs = {'response': <response at="" 0x36eeed0="" 200="" ok="">}
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] REQUEST_METHOD = POST
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] PATH_INFO = /tokens
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] SERVER_PROTOCOL = HTTP/1.0
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] REMOTE_ADDR = 192.168.78.196
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] CONTENT_LENGTH = 79
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] HTTP_USER_AGENT = python-keystoneclient
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] eventlet.posthooks = []
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] RAW_PATH_INFO = /v2.0/tokens
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] REMOTE_PORT = 40227
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] eventlet.input = <eventlet.wsgi.input object="" at="" 0x37fdd90="">
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] wsgi.url_scheme = http
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] webob._body_file = (<_io.BufferedReader>, <eventlet.wsgi.input object="" at="" 0x37fdd90="">)
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] SERVER_PORT = 35357
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] wsgi.input = <_io.BytesIO object at 0x37e38f0>
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] openstack.context = {'token_id': None, 'is_admin': False}
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] HTTP_HOST = 192.168.78.196:35357
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] wsgi.multithread = True
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] openstack.params = {u'auth': {u'passwordCredentials': {u'username': u'admin', u'password': u'secrete'}}}
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] HTTP_ACCEPT = */*
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] wsgi.version = (1, 0)
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] SERVER_NAME = 192.168.78.196
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] GATEWAY_INTERFACE = CGI/1.1
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] wsgi.run_once = False
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] wsgi.errors = <open file="" '<stderr="">', mode 'w' at 0x7f43f8ce01e0>
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] wsgi.multiprocess = False
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] webob.is_body_seekable = True
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] CONTENT_TYPE = application/json
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] HTTP_ACCEPT_ENCODING = gzip, deflate, compress
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi]
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] ******************** REQUEST BODY ********************
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] {"auth": {"passwordCredentials": {"username": "admin", "password": "secrete"}}}
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi]
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] arg_dict: {}
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] ******************** RESPONSE HEADERS ********************
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] Vary = X-Auth-Token
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] Content-Type = application/json
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] Content-Length = 329
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi]
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] ******************** RESPONSE BODY ********************
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] {"access": {"token": {"issued_at": "2013-09-19T17:34:40.138307", "expires": "2013-09-20T17:34:40Z", "id": "77e88d7f8f51442980f7c75394bff36d"}, "serviceCatalog": [], "user": {"username": "admin", "roles_links": [], "id": "adc31bd6a8c84487a3be4bcfaabaf641", "roles": [], "name": "admin"}, "metadata": {"is_admin": 0, "roles": []}}}
2013-09-19 10:34:40     INFO [access] 192.168.78.196 - - [19/Sep/2013:17:34:40 +0000] "POST http://192.168.78.196:35357/v2.0/tokens HTTP/1.0" 200 329
2013-09-19 10:34:40    DEBUG [eventlet.wsgi.server] 192.168.78.196 - - [19/Sep/2013 10:34:40] "POST /v2.0/tokens HTTP/1.1" 200 458 0.050719

2013-09-19 10:34:40    DEBUG [eventlet.wsgi.server] (32457) accepted ('192.168.78.196', 40228)

2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] ******************** REQUEST ENVIRON ********************
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] SCRIPT_NAME = /v2.0
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] webob.adhoc_attrs = {'response': <response at="" 0x37ed190="" 200="" ok="">}
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] REQUEST_METHOD = GET
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] PATH_INFO = /tenants
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] SERVER_PROTOCOL = HTTP/1.0
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] REMOTE_ADDR = 192.168.78.196
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] HTTP_X_AUTH_TOKEN = 77e88d7f8f51442980f7c75394bff36d
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] HTTP_USER_AGENT = python-keystoneclient
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] eventlet.posthooks = []
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] RAW_PATH_INFO = /v2.0/tenants
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] REMOTE_PORT = 40228
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] eventlet.input = <eventlet.wsgi.input object="" at="" 0x37fde10="">
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] wsgi.url_scheme = http
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] webob._body_file = (<_io.BufferedReader>, <eventlet.wsgi.input object="" at="" 0x37fde10="">)
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] SERVER_PORT = 35357
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] wsgi.input = <_io.BytesIO object at 0x37d1fb0>
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] openstack.context = {'token_id': '77e88d7f8f51442980f7c75394bff36d', 'is_admin': False}
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] HTTP_HOST = 192.168.78.196:35357
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] wsgi.multithread = True
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] HTTP_ACCEPT = */*
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] wsgi.version = (1, 0)
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] SERVER_NAME = 192.168.78.196
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] GATEWAY_INTERFACE = CGI/1.1
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] wsgi.run_once = False
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] wsgi.errors = <open file="" '<stderr="">', mode 'w' at 0x7f43f8ce01e0>
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] wsgi.multiprocess = False
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] CONTENT_TYPE = text/plain
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] HTTP_ACCEPT_ENCODING = gzip, deflate, compress
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi]
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] ******************** REQUEST BODY ********************
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi]
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] arg_dict: {}
2013-09-19 10:34:40    DEBUG [root] Invalid tenant
2013-09-19 10:34:40  WARNING [keystone.common.wsgi] Authorization failed. The request you have made requires authentication. from 192.168.78.196
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] ******************** RESPONSE HEADERS ********************
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] Vary = X-Auth-Token
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] Content-Type = application/json
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] Content-Length = 116
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi]
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] ******************** RESPONSE BODY ********************
2013-09-19 10:34:40    DEBUG [keystone.common.wsgi] {"error": {"message": "The request you have made requires authentication.", "code": 401, "title": "Not Authorized"}}
2013-09-19 10:34:40     INFO [access] 192.168.78.196 - - [19/Sep/2013:17:34:40 +0000] "GET http://192.168.78.196:35357/v2.0/tenants HTTP/1.0" 401 116
2013-09-19 10:34:40    DEBUG [eventlet.wsgi.server] 192.168.78.196 - - [19/Sep/2013 10:34:40] "GET /v2.0/tenants HTTP/1.1" 401 257 0.024903