Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Dashboard showing tenant_usage in debug window

I have testing keystone and other setup and it all looks fine. The enpoint-list look clean but keystone catalog i can not get to output. I am using CentOS 6.4 with RDO repo to install Grizzly.

Here is the log out put from apache that point to a funny line where it addes a /v2/v2.0 i think it should be only /2.0/tenant_id

[Wed Aug 14 16:11:15 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Wed Aug 14 16:11:15 2013] [notice] Digest: generating secret for digest authentication ...
[Wed Aug 14 16:11:15 2013] [notice] Digest: done
[Wed Aug 14 16:11:15 2013] [notice] Apache/2.2.15 (Unix) DAV/2 mod_wsgi/3.2 Python/2.6.6 configured -- resuming normal operations
[Wed Aug 14 23:12:35 2013] [error] DeprecationWarning: The ADMIN_MEDIA_PREFIX setting has been removed; use STATIC_URL instead.DeprecationWarning: The SECRET_KEY setting must not be empty.DeprecationWarning: Translations in the project directory aren't supported anymore. Use the LOCALE_PATHS setting instead.DeprecationWarning: The syntax for the url template tag is changing. Load the `url` tag from the `future` tag library to start using the new behavior.DeprecationWarning: Authentication backends without a `supports_inactive_user` attribute are deprecated. Please define it in <class 'openstack_auth.backend.KeystoneBackend'>.DEBUG:openstack_auth.backend:Beginning user authentication for user "admin".
[Wed Aug 14 23:12:35 2013] [error] INFO:urllib3.connectionpool:Starting new HTTP connection (1): 10.35.41.30
[Wed Aug 14 23:12:35 2013] [error] DEBUG:urllib3.connectionpool:"POST /v2.0/tokens HTTP/1.1" 200 1133
[Wed Aug 14 23:12:35 2013] [error] INFO:urllib3.connectionpool:Starting new HTTP connection (1): 10.35.41.30
[Wed Aug 14 23:12:35 2013] [error] DEBUG:urllib3.connectionpool:"GET /v2.0/tenants HTTP/1.1" 200 144
[Wed Aug 14 23:12:35 2013] [error] INFO:urllib3.connectionpool:Starting new HTTP connection (1): 10.35.41.30
[Wed Aug 14 23:12:36 2013] [error] DEBUG:urllib3.connectionpool:"POST /v2.0/tokens HTTP/1.1" 200 5179
[Wed Aug 14 23:12:36 2013] [error] INFO:urllib3.connectionpool:Starting new HTTP connection (1): 10.35.41.30
[Wed Aug 14 23:12:36 2013] [error] DEBUG:urllib3.connectionpool:"POST /v2.0/tokens HTTP/1.1" 200 5179
[Wed Aug 14 23:12:36 2013] [error] DEBUG:openstack_auth.backend:Authentication completed for user "admin".
[Wed Aug 14 23:12:36 2013] [error]
[Wed Aug 14 23:12:36 2013] [error] REQ: curl -i http://10.35.41.31:8774/v2.0/bfdd3d0edda44a4aada8614464f5385e/os-simple-tenant-usage?start=2013-08-01T00:00:00&end=2013-08-14T23:12:36.165985&detailed=1 -X GET -H "X-Auth-Project-Id: 7eff471610fd4f67908a7c1b4741a63a" -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token: fe1a5f98c2300dc615df8916348e4699"
[Wed Aug 14 23:12:36 2013] [error]
[Wed Aug 14 23:12:36 2013] [error] INFO:urllib3.connectionpool:Starting new HTTP connection (1): 10.35.41.31
[Wed Aug 14 23:12:36 2013] [error] DEBUG:urllib3.connectionpool:"GET /v2.0/bfdd3d0edda44a4aada8614464f5385e/os-simple-tenant-usage?start=2013-08-01T00:00:00&end=2013-08-14T23:12:36.165985&detailed=1 HTTP/1.1" 300 372
[Wed Aug 14 23:12:36 2013] [error] RESP: [300] {'date': 'Wed, 14 Aug 2013 23:12:36 GMT', 'content-length': '372', 'content-type': 'application/json'}
[Wed Aug 14 23:12:36 2013] [error] RESP BODY: {"choices": [{"status": "CURRENT", "media-types": [{"base": "application/xml", "type": "application/vnd.openstack.compute+xml;version=2"}, {"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2"}], "id": "v2.0", "links": [{"href": "http://10.35.41.31:8774/v2/v2.0/bfdd3d0edda44a4aada8614464f5385e/os-simple-tenant-usage", "rel": "self"}]}]}
[Wed Aug 14 23:12:36 2013] [error]
[Wed Aug 14 23:12:36 2013] [error] ERROR:django.request:Internal Server Error: /dashboard/admin/
[Wed Aug 14 23:12:36 2013] [error] Traceback (most recent call last):
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py", line 111, in get_response
[Wed Aug 14 23:12:36 2013] [error]     response = callback(request, *callback_args, **callback_kwargs)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/horizon/decorators.py", line 38, in dec
[Wed Aug 14 23:12:36 2013] [error]     return view_func(request, *args, **kwargs)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/horizon/decorators.py", line 86, in dec
[Wed Aug 14 23:12:36 2013] [error]     return view_func(request, *args, **kwargs)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/horizon/decorators.py", line 54, in dec
[Wed Aug 14 23:12:36 2013] [error]     return view_func(request, *args, **kwargs)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/horizon/decorators.py", line 38, in dec
[Wed Aug 14 23:12:36 2013] [error]     return view_func(request, *args, **kwargs)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/horizon/decorators.py", line 86, in dec
[Wed Aug 14 23:12:36 2013] [error]     return view_func(request, *args, **kwargs)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/django/views/generic/base.py", line 48, in view
[Wed Aug 14 23:12:36 2013] [error]     return self.dispatch(request, *args, **kwargs)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/django/views/generic/base.py", line 69, in dispatch
[Wed Aug 14 23:12:36 2013] [error]     return handler(request, *args, **kwargs)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/horizon/tables/views.py", line 155, in get
[Wed Aug 14 23:12:36 2013] [error]     handled = self.construct_tables()
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/horizon/tables/views.py", line 146, in construct_tables
[Wed Aug 14 23:12:36 2013] [error]     handled = self.handle_table(table)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/horizon/tables/views.py", line 118, in handle_table
[Wed Aug 14 23:12:36 2013] [error]     data = self._get_data_dict()
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/horizon/tables/views.py", line 182, in _get_data_dict
[Wed Aug 14 23:12:36 2013] [error]     self._data = {self.table_class._meta.name: self.get_data()}
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/dashboards/admin/overview/views.py", line 41, in get_data
[Wed Aug 14 23:12:36 2013] [error]     data = super(GlobalOverview, self).get_data()
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/usage/views.py", line 33, in get_data
[Wed Aug 14 23:12:36 2013] [error]     self.usage.summarize(*self.usage.get_date_range())
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/usage/base.py", line 98, in summarize
[Wed Aug 14 23:12:36 2013] [error]     _('Unable to retrieve usage information.'))
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/usage/base.py", line 95, in summarize
[Wed Aug 14 23:12:36 2013] [error]     self.usage_list = self.get_usage_list(start, end)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/usage/base.py", line 130, in get_usage_list
[Wed Aug 14 23:12:36 2013] [error]     return api.nova.usage_list(self.request, start, end)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/api/nova.py", line 474, in usage_list
[Wed Aug 14 23:12:36 2013] [error]     novaclient(request).usage.list(start, end, True)]
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/novaclient/v1_1/usage.py", line 35, in list
[Wed Aug 14 23:12:36 2013] [error]     "tenant_usages")
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/novaclient/base.py", line 67, in _list
[Wed Aug 14 23:12:36 2013] [error]     data = body[response_key]
[Wed Aug 14 23:12:36 2013] [error] KeyError: 'tenant_usages'

this is the local_setting form the dashboard /etc/openstack-dashboard/local_settings

import os

from django.utils.translation import ugettext_lazy as _

from openstack_dashboard import exceptions

DEBUG = True
TEMPLATE_DEBUG = DEBUG

# Set SSL proxy settings:
# For Django 1.4+ pass this header from the proxy after terminating the SSL,
# and don't forget to strip it from the client's request.
# For more information see:
# https://docs.djangoproject.com/en/1.4/ref/settings/#secure-proxy-ssl-header
# SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https')

# If Horizon is being served through SSL, then uncomment the following two
# settings to better secure the cookies from security exploits
#CSRF_COOKIE_SECURE = True
#SESSION_COOKIE_SECURE = True

# Default OpenStack Dashboard configuration.
HORIZON_CONFIG = {
    'dashboards': ('project', 'admin', 'settings',),
    'default_dashboard': 'project',
    'user_home': 'openstack_dashboard.views.get_user_home',
    'ajax_queue_limit': 10,
    'auto_fade_alerts': {
        'delay': 3000,
        'fade_duration': 1500,
        'types': ['alert-success', 'alert-info']
    },
    'help_url': "http://docs.openstack.org",
    'exceptions': {'recoverable': exceptions.RECOVERABLE,
                   'not_found': exceptions.NOT_FOUND,
                   'unauthorized': exceptions.UNAUTHORIZED},
}

# Specify a regular expression to validate user passwords.
# HORIZON_CONFIG["password_validator"] = {
#     "regex": '.*',
#     "help_text": _("Your password does not meet the requirements.")
# }

# Disable simplified floating IP address management for deployments with
# multiple floating IP pools or complex network requirements.
# HORIZON_CONFIG["simple_ip_management"] = False

# Turn off browser autocompletion for the login form if so desired.
# HORIZON_CONFIG["password_autocomplete"] = "off"

LOCAL_PATH = os.path.dirname(os.path.abspath(__file__))

# Set custom secret key:
# You can either set it to a specific value or you can let horizion generate a
# default secret key that is unique on this machine, e.i. regardless of the
# amount of Python WSGI workers (if used behind Apache+mod_wsgi): However, there
# may be situations where you would want to set this explicitly, e.g. when
# multiple dashboard instances are distributed on different machines (usually
# behind a load-balancer). Either you have to make sure that a session gets all
# requests routed to the same dashboard instance or you set the same SECRET_KEY
# for all of them.
# from horizon.utils import secret_key
# SECRET_KEY = secret_key.generate_or_read_from_file(os.path.join(LOCAL_PATH, '.secret_key_store'))

# We recommend you use memcached for development; otherwise after every reload
# of the django development server, you will have to login again. To use
# memcached set CACHES to something like
CACHES = {
    'default': {
        'BACKEND' : 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION' : '10.35.41.29:11211',
    }
}

#CACHES = {
#    'default': {
#        'BACKEND' : 'django.core.cache.backends.locmem.LocMemCache'
#    }
#}

# Send email to the console by default
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
# Or send them to /dev/null
#EMAIL_BACKEND = 'django.core.mail.backends.dummy.EmailBackend'

# Configure these for your outgoing email host
# EMAIL_HOST = 'smtp.my-company.com'
# EMAIL_PORT = 25
# EMAIL_HOST_USER = 'djangomail'
# EMAIL_HOST_PASSWORD = 'top-secret!'

# For multiple regions uncomment this configuration, and add (endpoint, title).
# AVAILABLE_REGIONS = [
#     ('http://cluster1.example.com:5000/v2.0', 'cluster1'),
#     ('http://cluster2.example.com:5000/v2.0', 'cluster2'),
# ]

OPENSTACK_HOST = "10.35.41.30"
OPENSTACK_KEYSTONE_URL = "http://10.35.41.30:5000/v2.0"
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "member"

# Disable SSL certificate checks (useful for self-signed certificates):
# OPENSTACK_SSL_NO_VERIFY = True

# The OPENSTACK_KEYSTONE_BACKEND settings can be used to identify the
# capabilities of the auth backend for Keystone.
# If Keystone has been configured to use LDAP as the auth backend then set
# can_edit_user to False and name to 'ldap'.
#
# TODO(tres): Remove these once Keystone has an API to identify auth backend.
OPENSTACK_KEYSTONE_BACKEND = {
    'name': 'native',
    'can_edit_user': True,
    'can_edit_project': True
}

OPENSTACK_HYPERVISOR_FEATURES = {
    'can_set_mount_point': False,

    # NOTE: as of Grizzly this is not yet supported in Nova so enabling this
    # setting will not do anything useful
    'can_encrypt_volumes': False
}

# The OPENSTACK_QUANTUM_NETWORK settings can be used to enable optional
# services provided by quantum.  Currently only the load balancer service
# is available.
OPENSTACK_QUANTUM_NETWORK = {
    'enable_lb': False
}

# OPENSTACK_ENDPOINT_TYPE specifies the endpoint type to use for the endpoints
# in the Keystone service catalog. Use this setting when Horizon is running
# external to the OpenStack environment. The default is 'internalURL'.
#OPENSTACK_ENDPOINT_TYPE = "publicURL"

# The number of objects (Swift containers/objects or images) to display
# on a single page before providing a paging element (a "more" link)
# to paginate results.
API_RESULT_LIMIT = 1000
API_RESULT_PAGE_SIZE = 20

# The timezone of the server. This should correspond with the timezone
# of your entire OpenStack installation, and hopefully be in UTC.
TIME_ZONE = "UTC"

LOGGING = {
    'version': 1,
    # When set to True this will disable all logging except
    # for loggers specified in this configuration dictionary. Note that
    # if nothing is specified here and disable_existing_loggers is True,
    # django.db.backends will still log unless it is disabled explicitly.
    'disable_existing_loggers': False,
    'handlers': {
        'null': {
            'level': 'DEBUG',
            'class': 'django.utils.log.NullHandler',
        },
        'console': {
            # Set the level to "DEBUG" for verbose output logging.
            'level': 'INFO',
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        # Logging from django.db.backends is VERY verbose, send to null
        # by default.
        'django.db.backends': {
            'handlers': ['null'],
            'propagate': False,
        },
        'requests': {
            'handlers': ['null'],
            'propagate': False,
        },
        'horizon': {
            'handlers': ['console'],
            'propagate': False,
        },
        'openstack_dashboard': {
            'handlers': ['console'],
            'propagate': False,
        },
        'novaclient': {
            'handlers': ['console'],
            'propagate': False,
        },
        'keystoneclient': {
            'handlers': ['console'],
            'propagate': False,
        },
        'glanceclient': {
            'handlers': ['console'],
            'propagate': False,
        },
        'nose.plugins.manager': {
            'handlers': ['console'],
            'propagate': False,
        }
    }
}

This is my out put of endpoint-list

+----------------------------------+-----------+---------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+----------------------------------+
|                id                |   region  |                           publicurl                           |                          internalurl                          |                            adminurl                           |            service_id            |
+----------------------------------+-----------+---------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+----------------------------------+
| 14c79bd08eed4b68a228f6c0851442bf | RegionOne | http://10.35.41.31:8774/v2.0/bfdd3d0edda44a4aada8614464f5385e | http://10.35.41.31:8774/v2.0/bfdd3d0edda44a4aada8614464f5385e | http://10.35.41.31:8774/v2.0/bfdd3d0edda44a4aada8614464f5385e | 1bd690a8b85e4faab008f509bd61fd2f |
| 1595a4f65a734680908a748641cb6ba4 | RegionOne |                  http://10.35.41.30:5000/v2.0                 |                  http://10.35.41.30:5000/v2.0                 |                 http://10.35.41.30:35357/v2.0                 | 2210e54d1245498d8a4f19617aed5d88 |
| 71a758c7627e440abcec9d7aafa54c46 | RegionOne | http://10.35.41.31:8774/v2.0/7eff471610fd4f67908a7c1b4741a63a | http://10.35.41.31:8774/v2.0/7eff471610fd4f67908a7c1b4741a63a | http://10.35.41.31:8774/v2.0/7eff471610fd4f67908a7c1b4741a63a | 1bd690a8b85e4faab008f509bd61fd2f |
| 7304bc18fd834d71a29716ce3d705943 | RegionOne |  http://10.35.41.38:8776/v1/bfdd3d0edda44a4aada8614464f5385e  |  http://10.35.41.38:8776/v1/bfdd3d0edda44a4aada8614464f5385e  |  http://10.35.41.38:8776/v1/bfdd3d0edda44a4aada8614464f5385e  | 8c46107f1f4c48999b0803992a63f09c |
| a8d5e812f3f3475e84438af6d19d752a | RegionOne |                    http://10.35.41.32:9292                    |                    http://10.35.41.32:9292                    |                    http://10.35.41.32:9292                    | d4a1ef17fb2749c39f8743bd66eca707 |
| d66c0aca80d041daaf3472e169423392 | RegionOne |  http://10.35.41.38:8776/v1/7eff471610fd4f67908a7c1b4741a63a  |  http://10.35.41.38:8776/v1/7eff471610fd4f67908a7c1b4741a63a  |  http://10.35.41.38:8776/v1/7eff471610fd4f67908a7c1b4741a63a  | 8c46107f1f4c48999b0803992a63f09c |
| f54838da6537462cb1682632cd46a817 | RegionOne |                    http://10.35.41.37:9696/                   |                    http://10.35.41.37:9696/                   |                    http://10.35.41.37:9696/                   | 269359834d6f4d0db6e556076f9fcc34 |
+----------------------------------+-----------+---------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+----------------------------------+

I have redone the keystone server a couple time and reinstall it. Also the same was down with the dashboard server. I am at my wits end and need help figuring this problem out to meet some time line at my job.

Andy

click to hide/show revision 2
retagged

Dashboard showing tenant_usage in debug window

I have testing keystone and other setup and it all looks fine. The enpoint-list look clean but keystone catalog i can not get to output. I am using CentOS 6.4 with RDO repo to install Grizzly.

Here is the log out put from apache that point to a funny line where it addes a /v2/v2.0 i think it should be only /2.0/tenant_id

[Wed Aug 14 16:11:15 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Wed Aug 14 16:11:15 2013] [notice] Digest: generating secret for digest authentication ...
[Wed Aug 14 16:11:15 2013] [notice] Digest: done
[Wed Aug 14 16:11:15 2013] [notice] Apache/2.2.15 (Unix) DAV/2 mod_wsgi/3.2 Python/2.6.6 configured -- resuming normal operations
[Wed Aug 14 23:12:35 2013] [error] DeprecationWarning: The ADMIN_MEDIA_PREFIX setting has been removed; use STATIC_URL instead.DeprecationWarning: The SECRET_KEY setting must not be empty.DeprecationWarning: Translations in the project directory aren't supported anymore. Use the LOCALE_PATHS setting instead.DeprecationWarning: The syntax for the url template tag is changing. Load the `url` tag from the `future` tag library to start using the new behavior.DeprecationWarning: Authentication backends without a `supports_inactive_user` attribute are deprecated. Please define it in <class 'openstack_auth.backend.KeystoneBackend'>.DEBUG:openstack_auth.backend:Beginning user authentication for user "admin".
[Wed Aug 14 23:12:35 2013] [error] INFO:urllib3.connectionpool:Starting new HTTP connection (1): 10.35.41.30
[Wed Aug 14 23:12:35 2013] [error] DEBUG:urllib3.connectionpool:"POST /v2.0/tokens HTTP/1.1" 200 1133
[Wed Aug 14 23:12:35 2013] [error] INFO:urllib3.connectionpool:Starting new HTTP connection (1): 10.35.41.30
[Wed Aug 14 23:12:35 2013] [error] DEBUG:urllib3.connectionpool:"GET /v2.0/tenants HTTP/1.1" 200 144
[Wed Aug 14 23:12:35 2013] [error] INFO:urllib3.connectionpool:Starting new HTTP connection (1): 10.35.41.30
[Wed Aug 14 23:12:36 2013] [error] DEBUG:urllib3.connectionpool:"POST /v2.0/tokens HTTP/1.1" 200 5179
[Wed Aug 14 23:12:36 2013] [error] INFO:urllib3.connectionpool:Starting new HTTP connection (1): 10.35.41.30
[Wed Aug 14 23:12:36 2013] [error] DEBUG:urllib3.connectionpool:"POST /v2.0/tokens HTTP/1.1" 200 5179
[Wed Aug 14 23:12:36 2013] [error] DEBUG:openstack_auth.backend:Authentication completed for user "admin".
[Wed Aug 14 23:12:36 2013] [error]
[Wed Aug 14 23:12:36 2013] [error] REQ: curl -i http://10.35.41.31:8774/v2.0/bfdd3d0edda44a4aada8614464f5385e/os-simple-tenant-usage?start=2013-08-01T00:00:00&end=2013-08-14T23:12:36.165985&detailed=1 -X GET -H "X-Auth-Project-Id: 7eff471610fd4f67908a7c1b4741a63a" -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token: fe1a5f98c2300dc615df8916348e4699"
[Wed Aug 14 23:12:36 2013] [error]
[Wed Aug 14 23:12:36 2013] [error] INFO:urllib3.connectionpool:Starting new HTTP connection (1): 10.35.41.31
[Wed Aug 14 23:12:36 2013] [error] DEBUG:urllib3.connectionpool:"GET /v2.0/bfdd3d0edda44a4aada8614464f5385e/os-simple-tenant-usage?start=2013-08-01T00:00:00&end=2013-08-14T23:12:36.165985&detailed=1 HTTP/1.1" 300 372
[Wed Aug 14 23:12:36 2013] [error] RESP: [300] {'date': 'Wed, 14 Aug 2013 23:12:36 GMT', 'content-length': '372', 'content-type': 'application/json'}
[Wed Aug 14 23:12:36 2013] [error] RESP BODY: {"choices": [{"status": "CURRENT", "media-types": [{"base": "application/xml", "type": "application/vnd.openstack.compute+xml;version=2"}, {"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2"}], "id": "v2.0", "links": [{"href": "http://10.35.41.31:8774/v2/v2.0/bfdd3d0edda44a4aada8614464f5385e/os-simple-tenant-usage", "rel": "self"}]}]}
[Wed Aug 14 23:12:36 2013] [error]
[Wed Aug 14 23:12:36 2013] [error] ERROR:django.request:Internal Server Error: /dashboard/admin/
[Wed Aug 14 23:12:36 2013] [error] Traceback (most recent call last):
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py", line 111, in get_response
[Wed Aug 14 23:12:36 2013] [error]     response = callback(request, *callback_args, **callback_kwargs)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/horizon/decorators.py", line 38, in dec
[Wed Aug 14 23:12:36 2013] [error]     return view_func(request, *args, **kwargs)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/horizon/decorators.py", line 86, in dec
[Wed Aug 14 23:12:36 2013] [error]     return view_func(request, *args, **kwargs)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/horizon/decorators.py", line 54, in dec
[Wed Aug 14 23:12:36 2013] [error]     return view_func(request, *args, **kwargs)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/horizon/decorators.py", line 38, in dec
[Wed Aug 14 23:12:36 2013] [error]     return view_func(request, *args, **kwargs)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/horizon/decorators.py", line 86, in dec
[Wed Aug 14 23:12:36 2013] [error]     return view_func(request, *args, **kwargs)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/django/views/generic/base.py", line 48, in view
[Wed Aug 14 23:12:36 2013] [error]     return self.dispatch(request, *args, **kwargs)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/django/views/generic/base.py", line 69, in dispatch
[Wed Aug 14 23:12:36 2013] [error]     return handler(request, *args, **kwargs)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/horizon/tables/views.py", line 155, in get
[Wed Aug 14 23:12:36 2013] [error]     handled = self.construct_tables()
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/horizon/tables/views.py", line 146, in construct_tables
[Wed Aug 14 23:12:36 2013] [error]     handled = self.handle_table(table)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/horizon/tables/views.py", line 118, in handle_table
[Wed Aug 14 23:12:36 2013] [error]     data = self._get_data_dict()
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/horizon/tables/views.py", line 182, in _get_data_dict
[Wed Aug 14 23:12:36 2013] [error]     self._data = {self.table_class._meta.name: self.get_data()}
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/dashboards/admin/overview/views.py", line 41, in get_data
[Wed Aug 14 23:12:36 2013] [error]     data = super(GlobalOverview, self).get_data()
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/usage/views.py", line 33, in get_data
[Wed Aug 14 23:12:36 2013] [error]     self.usage.summarize(*self.usage.get_date_range())
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/usage/base.py", line 98, in summarize
[Wed Aug 14 23:12:36 2013] [error]     _('Unable to retrieve usage information.'))
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/usage/base.py", line 95, in summarize
[Wed Aug 14 23:12:36 2013] [error]     self.usage_list = self.get_usage_list(start, end)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/usage/base.py", line 130, in get_usage_list
[Wed Aug 14 23:12:36 2013] [error]     return api.nova.usage_list(self.request, start, end)
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/api/nova.py", line 474, in usage_list
[Wed Aug 14 23:12:36 2013] [error]     novaclient(request).usage.list(start, end, True)]
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/novaclient/v1_1/usage.py", line 35, in list
[Wed Aug 14 23:12:36 2013] [error]     "tenant_usages")
[Wed Aug 14 23:12:36 2013] [error]   File "/usr/lib/python2.6/site-packages/novaclient/base.py", line 67, in _list
[Wed Aug 14 23:12:36 2013] [error]     data = body[response_key]
[Wed Aug 14 23:12:36 2013] [error] KeyError: 'tenant_usages'

this is the local_setting form the dashboard /etc/openstack-dashboard/local_settings

import os

from django.utils.translation import ugettext_lazy as _

from openstack_dashboard import exceptions

DEBUG = True
TEMPLATE_DEBUG = DEBUG

# Set SSL proxy settings:
# For Django 1.4+ pass this header from the proxy after terminating the SSL,
# and don't forget to strip it from the client's request.
# For more information see:
# https://docs.djangoproject.com/en/1.4/ref/settings/#secure-proxy-ssl-header
# SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https')

# If Horizon is being served through SSL, then uncomment the following two
# settings to better secure the cookies from security exploits
#CSRF_COOKIE_SECURE = True
#SESSION_COOKIE_SECURE = True

# Default OpenStack Dashboard configuration.
HORIZON_CONFIG = {
    'dashboards': ('project', 'admin', 'settings',),
    'default_dashboard': 'project',
    'user_home': 'openstack_dashboard.views.get_user_home',
    'ajax_queue_limit': 10,
    'auto_fade_alerts': {
        'delay': 3000,
        'fade_duration': 1500,
        'types': ['alert-success', 'alert-info']
    },
    'help_url': "http://docs.openstack.org",
    'exceptions': {'recoverable': exceptions.RECOVERABLE,
                   'not_found': exceptions.NOT_FOUND,
                   'unauthorized': exceptions.UNAUTHORIZED},
}

# Specify a regular expression to validate user passwords.
# HORIZON_CONFIG["password_validator"] = {
#     "regex": '.*',
#     "help_text": _("Your password does not meet the requirements.")
# }

# Disable simplified floating IP address management for deployments with
# multiple floating IP pools or complex network requirements.
# HORIZON_CONFIG["simple_ip_management"] = False

# Turn off browser autocompletion for the login form if so desired.
# HORIZON_CONFIG["password_autocomplete"] = "off"

LOCAL_PATH = os.path.dirname(os.path.abspath(__file__))

# Set custom secret key:
# You can either set it to a specific value or you can let horizion generate a
# default secret key that is unique on this machine, e.i. regardless of the
# amount of Python WSGI workers (if used behind Apache+mod_wsgi): However, there
# may be situations where you would want to set this explicitly, e.g. when
# multiple dashboard instances are distributed on different machines (usually
# behind a load-balancer). Either you have to make sure that a session gets all
# requests routed to the same dashboard instance or you set the same SECRET_KEY
# for all of them.
# from horizon.utils import secret_key
# SECRET_KEY = secret_key.generate_or_read_from_file(os.path.join(LOCAL_PATH, '.secret_key_store'))

# We recommend you use memcached for development; otherwise after every reload
# of the django development server, you will have to login again. To use
# memcached set CACHES to something like
CACHES = {
    'default': {
        'BACKEND' : 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION' : '10.35.41.29:11211',
    }
}

#CACHES = {
#    'default': {
#        'BACKEND' : 'django.core.cache.backends.locmem.LocMemCache'
#    }
#}

# Send email to the console by default
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
# Or send them to /dev/null
#EMAIL_BACKEND = 'django.core.mail.backends.dummy.EmailBackend'

# Configure these for your outgoing email host
# EMAIL_HOST = 'smtp.my-company.com'
# EMAIL_PORT = 25
# EMAIL_HOST_USER = 'djangomail'
# EMAIL_HOST_PASSWORD = 'top-secret!'

# For multiple regions uncomment this configuration, and add (endpoint, title).
# AVAILABLE_REGIONS = [
#     ('http://cluster1.example.com:5000/v2.0', 'cluster1'),
#     ('http://cluster2.example.com:5000/v2.0', 'cluster2'),
# ]

OPENSTACK_HOST = "10.35.41.30"
OPENSTACK_KEYSTONE_URL = "http://10.35.41.30:5000/v2.0"
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "member"

# Disable SSL certificate checks (useful for self-signed certificates):
# OPENSTACK_SSL_NO_VERIFY = True

# The OPENSTACK_KEYSTONE_BACKEND settings can be used to identify the
# capabilities of the auth backend for Keystone.
# If Keystone has been configured to use LDAP as the auth backend then set
# can_edit_user to False and name to 'ldap'.
#
# TODO(tres): Remove these once Keystone has an API to identify auth backend.
OPENSTACK_KEYSTONE_BACKEND = {
    'name': 'native',
    'can_edit_user': True,
    'can_edit_project': True
}

OPENSTACK_HYPERVISOR_FEATURES = {
    'can_set_mount_point': False,

    # NOTE: as of Grizzly this is not yet supported in Nova so enabling this
    # setting will not do anything useful
    'can_encrypt_volumes': False
}

# The OPENSTACK_QUANTUM_NETWORK settings can be used to enable optional
# services provided by quantum.  Currently only the load balancer service
# is available.
OPENSTACK_QUANTUM_NETWORK = {
    'enable_lb': False
}

# OPENSTACK_ENDPOINT_TYPE specifies the endpoint type to use for the endpoints
# in the Keystone service catalog. Use this setting when Horizon is running
# external to the OpenStack environment. The default is 'internalURL'.
#OPENSTACK_ENDPOINT_TYPE = "publicURL"

# The number of objects (Swift containers/objects or images) to display
# on a single page before providing a paging element (a "more" link)
# to paginate results.
API_RESULT_LIMIT = 1000
API_RESULT_PAGE_SIZE = 20

# The timezone of the server. This should correspond with the timezone
# of your entire OpenStack installation, and hopefully be in UTC.
TIME_ZONE = "UTC"

LOGGING = {
    'version': 1,
    # When set to True this will disable all logging except
    # for loggers specified in this configuration dictionary. Note that
    # if nothing is specified here and disable_existing_loggers is True,
    # django.db.backends will still log unless it is disabled explicitly.
    'disable_existing_loggers': False,
    'handlers': {
        'null': {
            'level': 'DEBUG',
            'class': 'django.utils.log.NullHandler',
        },
        'console': {
            # Set the level to "DEBUG" for verbose output logging.
            'level': 'INFO',
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        # Logging from django.db.backends is VERY verbose, send to null
        # by default.
        'django.db.backends': {
            'handlers': ['null'],
            'propagate': False,
        },
        'requests': {
            'handlers': ['null'],
            'propagate': False,
        },
        'horizon': {
            'handlers': ['console'],
            'propagate': False,
        },
        'openstack_dashboard': {
            'handlers': ['console'],
            'propagate': False,
        },
        'novaclient': {
            'handlers': ['console'],
            'propagate': False,
        },
        'keystoneclient': {
            'handlers': ['console'],
            'propagate': False,
        },
        'glanceclient': {
            'handlers': ['console'],
            'propagate': False,
        },
        'nose.plugins.manager': {
            'handlers': ['console'],
            'propagate': False,
        }
    }
}

This is my out put of endpoint-list

+----------------------------------+-----------+---------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+----------------------------------+
|                id                |   region  |                           publicurl                           |                          internalurl                          |                            adminurl                           |            service_id            |
+----------------------------------+-----------+---------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+----------------------------------+
| 14c79bd08eed4b68a228f6c0851442bf | RegionOne | http://10.35.41.31:8774/v2.0/bfdd3d0edda44a4aada8614464f5385e | http://10.35.41.31:8774/v2.0/bfdd3d0edda44a4aada8614464f5385e | http://10.35.41.31:8774/v2.0/bfdd3d0edda44a4aada8614464f5385e | 1bd690a8b85e4faab008f509bd61fd2f |
| 1595a4f65a734680908a748641cb6ba4 | RegionOne |                  http://10.35.41.30:5000/v2.0                 |                  http://10.35.41.30:5000/v2.0                 |                 http://10.35.41.30:35357/v2.0                 | 2210e54d1245498d8a4f19617aed5d88 |
| 71a758c7627e440abcec9d7aafa54c46 | RegionOne | http://10.35.41.31:8774/v2.0/7eff471610fd4f67908a7c1b4741a63a | http://10.35.41.31:8774/v2.0/7eff471610fd4f67908a7c1b4741a63a | http://10.35.41.31:8774/v2.0/7eff471610fd4f67908a7c1b4741a63a | 1bd690a8b85e4faab008f509bd61fd2f |
| 7304bc18fd834d71a29716ce3d705943 | RegionOne |  http://10.35.41.38:8776/v1/bfdd3d0edda44a4aada8614464f5385e  |  http://10.35.41.38:8776/v1/bfdd3d0edda44a4aada8614464f5385e  |  http://10.35.41.38:8776/v1/bfdd3d0edda44a4aada8614464f5385e  | 8c46107f1f4c48999b0803992a63f09c |
| a8d5e812f3f3475e84438af6d19d752a | RegionOne |                    http://10.35.41.32:9292                    |                    http://10.35.41.32:9292                    |                    http://10.35.41.32:9292                    | d4a1ef17fb2749c39f8743bd66eca707 |
| d66c0aca80d041daaf3472e169423392 | RegionOne |  http://10.35.41.38:8776/v1/7eff471610fd4f67908a7c1b4741a63a  |  http://10.35.41.38:8776/v1/7eff471610fd4f67908a7c1b4741a63a  |  http://10.35.41.38:8776/v1/7eff471610fd4f67908a7c1b4741a63a  | 8c46107f1f4c48999b0803992a63f09c |
| f54838da6537462cb1682632cd46a817 | RegionOne |                    http://10.35.41.37:9696/                   |                    http://10.35.41.37:9696/                   |                    http://10.35.41.37:9696/                   | 269359834d6f4d0db6e556076f9fcc34 |
+----------------------------------+-----------+---------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+----------------------------------+

I have redone the keystone server a couple time and reinstall it. Also the same was down with the dashboard server. I am at my wits end and need help figuring this problem out to meet some time line at my job.

Andy