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 0x36eeed0="" 200="" at="" 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 0x37fdd90="" at="" object=""> 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 0x37fdd90="" at="" object="">) 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 '<stderr="" file="">', 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 ...