Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- I upgraded from Liberty to Mitaka, but now I cannot login into Dashboard anymore.
- I tried to use configs from a Mitaka devstack but without success.
- Keystone works fine as it can be seen below:
- root@liberty-ctrl:/etc/openstack-dashboard# env | grep OS
- OS_PROJECT_DOMAIN_ID=default
- OS_IMAGE_API_VERSION=2
- OS_USER_DOMAIN_ID=default
- OS_PROJECT_NAME=admin
- OS_IDENTITY_API_VERSION=3
- OS_PASSWORD=test123
- OS_AUTH_URL=http://controller:35357/v3
- OS_USERNAME=admin
- OS_TENANT_NAME=admin
- LESSCLOSE=/usr/bin/lesspipe %s %s
- root@liberty-ctrl:/etc/openstack-dashboard#
- root@liberty-ctrl:/etc/openstack-dashboard#
- root@liberty-ctrl:/etc/openstack-dashboard# openstack endpoint list
- +----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------------------+
- | ID | Region | Service Name | Service Type | Enabled | Interface | URL |
- +----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------------------+
- | 1070cf42dfde4470a82485ad9c383e93 | RegionOne | glance | image | True | public | http://controller:9292 |
- | 1893e2bec52f43bb8686aed342d5fa19 | RegionOne | cinder | volume | True | internal | http://controller:8776/v1/%(tenant_id)s |
- | 2f06e277e2b1427abb83f2e17ce33c9e | RegionOne | neutron | network | True | internal | http://controller:9696 |
- | 305bf0de93fb40b5abf24b70f9b9e072 | RegionOne | swift | object-store | True | internal | http://172.25.4.15:9080/swift/v1 |
- | 3c5c392426b947b3b178df2535da117e | RegionOne | glance | image | True | admin | http://controller:9292 |
- | 5053c877a800438aa8b3df0f6439668d | RegionOne | swift | object-store | True | admin | http://172.25.4.15:9080/swift/v1 |
- | 547f47f2efc849778c095024092fac66 | RegionOne | neutron | network | True | admin | http://controller:9696 |
- | 61e438820b8f4a1fb640acf0a40399df | RegionOne | cinder | volume | True | admin | http://controller:8776/v1/%(tenant_id)s |
- | 67e454c1c0434748b1fbc405f945e203 | RegionOne | glance | image | True | internal | http://controller:9292 |
- | 83c67460cc7b40479a2a1c9d22601e69 | RegionOne | keystone | identity | True | public | http://controller:5000/v3 |
- | 96151225767347beafeae1abd1664dc7 | RegionOne | keystone | identity | True | internal | http://controller:5000/v2.0 |
- | 9c9d20a2f9c542a8b7596b6866e002f4 | RegionOne | cinderv2 | volumev2 | True | public | http://controller:8776/v2/%(tenant_id)s |
- | a400573d1bc345f8a651e767f492cfd2 | RegionOne | keystone | identity | True | public | http://controller:5000/v2.0 |
- | acff875e771941f5827faebf27ac7c26 | RegionOne | cinder | volume | True | public | http://controller:8776/v1/%(tenant_id)s |
- | b106e139e3264353a6740ed38f72101e | RegionOne | neutron | network | True | public | http://controller:9696 |
- | b14889aa23c9439b8a44a49da27bcedc | RegionOne | cinderv2 | volumev2 | True | internal | http://controller:8776/v2/%(tenant_id)s |
- | bc2d981b4c9b4d4183503c347086a768 | RegionOne | nova | compute | True | internal | http://controller:8774/v2/%(tenant_id)s |
- | c90ea7ebce6441c49c3a139d188e85e9 | RegionOne | keystone | identity | True | internal | http://controller:5000/v3 |
- | da0666e181004e2e9159c2a387c7359c | RegionOne | cinderv2 | volumev2 | True | admin | http://controller:8776/v2/%(tenant_id)s |
- | de798459d0dc4a9296593238c9bd1ea8 | RegionOne | swift | object-store | True | public | http://172.25.4.15:9080/swift/v1 |
- | e1ea0000bf2b4550b6134b769d384026 | RegionOne | keystone | identity | True | admin | http://controller:35357/v2.0 |
- | f77498c856b744aa9875199e845241e0 | RegionOne | nova | compute | True | admin | http://controller:8774/v2/%(tenant_id)s |
- | fce091c909d9442295b7913ee2152dd2 | RegionOne | keystone | identity | True | admin | http://controller:35357/v3 |
- | fe859117269a46d8963ea1f705846ee0 | RegionOne | nova | compute | True | public | http://controller:8774/v2/%(tenant_id)s |
- +----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------------------+
- Below you can see the Dashboard config:
- root@liberty-ctrl:/etc/openstack-dashboard# egrep -v "^$|^#" /etc/openstack-dashboard/local_settings.py
- import os
- from django.utils.translation import ugettext_lazy as _
- from horizon.utils import secret_key
- from openstack_dashboard import exceptions
- from openstack_dashboard.settings import HORIZON_CONFIG
- DEBUG = False
- TEMPLATE_DEBUG = DEBUG
- WEBROOT = "/"
- LOCAL_PATH = os.path.dirname(os.path.abspath(__file__))
- SECRET_KEY = secret_key.generate_or_read_from_file('/var/lib/openstack-dashboard/secret_key')
- CACHES = {
- 'default': {
- 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
- #'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
- 'LOCATION': '127.0.0.1:11211',
- },
- }
- EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
- OPENSTACK_KEYSTONE_DEFAULT_ROLE = "_member_"
- OPENSTACK_API_VERSIONS={"identity":3}
- OPENSTACK_HOST="controller"
- OPENSTACK_KEYSTONE_URL = "http://%s:35357/v3" % OPENSTACK_HOST
- OPENSTACK_KEYSTONE_BACKEND = {
- 'name': 'native',
- 'can_edit_user': True,
- 'can_edit_group': True,
- 'can_edit_project': True,
- 'can_edit_domain': True,
- 'can_edit_role': True,
- }
- OPENSTACK_HYPERVISOR_FEATURES = {
- 'can_set_mount_point': False,
- 'can_set_password': False,
- 'requires_keypair': False,
- }
- OPENSTACK_CINDER_FEATURES = {
- 'enable_backup': False,
- }
- OPENSTACK_NEUTRON_NETWORK = {
- 'enable_router': True,
- 'enable_quotas': True,
- 'enable_ipv6': True,
- 'enable_distributed_router': False,
- 'enable_ha_router': False,
- 'enable_lb': True,
- 'enable_firewall': True,
- 'enable_vpn': True,
- 'enable_fip_topology_check': True,
- # Neutron can be configured with a default Subnet Pool to be used for IPv4
- # subnet-allocation. Specify the label you wish to display in the Address
- # pool selector on the create subnet step if you want to use this feature.
- 'default_ipv4_subnet_pool_label': None,
- # Neutron can be configured with a default Subnet Pool to be used for IPv6
- # subnet-allocation. Specify the label you wish to display in the Address
- # pool selector on the create subnet step if you want to use this feature.
- # You must set this to enable IPv6 Prefix Delegation in a PD-capable
- # environment.
- 'default_ipv6_subnet_pool_label': None,
- # The profile_support option is used to detect if an external router can be
- # configured via the dashboard. When using specific plugins the
- # profile_support can be turned on if needed.
- 'profile_support': None,
- #'profile_support': 'cisco',
- # Set which provider network types are supported. Only the network types
- # in this list will be available to choose from when creating a network.
- # Network types include local, flat, vlan, gre, and vxlan.
- 'supported_provider_types': ['*'],
- # Set which VNIC types are supported for port binding. Only the VNIC
- # types in this list will be available to choose from when creating a
- # port.
- # VNIC types include 'normal', 'macvtap' and 'direct'.
- # Set to empty list or None to disable VNIC type selection.
- 'supported_vnic_types': ['*'],
- }
- OPENSTACK_HEAT_STACK = {
- 'enable_user_pass': True,
- }
- IMAGE_CUSTOM_PROPERTY_TITLES = {
- "architecture": _("Architecture"),
- "kernel_id": _("Kernel ID"),
- "ramdisk_id": _("Ramdisk ID"),
- "image_state": _("Euca2ools state"),
- "project_id": _("Project ID"),
- "image_type": _("Image Type"),
- }
- IMAGE_RESERVED_CUSTOM_PROPERTIES = []
- API_RESULT_LIMIT = 1000
- API_RESULT_PAGE_SIZE = 20
- SWIFT_FILE_TRANSFER_CHUNK_SIZE = 512 * 1024
- DROPDOWN_MAX_ITEMS = 30
- 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': 'logging.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'],
- 'level': 'DEBUG',
- 'propagate': False,
- },
- 'openstack_dashboard': {
- 'handlers': ['console'],
- 'level': 'DEBUG',
- 'propagate': False,
- },
- 'novaclient': {
- 'handlers': ['console'],
- 'level': 'DEBUG',
- 'propagate': False,
- },
- 'cinderclient': {
- 'handlers': ['console'],
- 'level': 'DEBUG',
- 'propagate': False,
- },
- 'keystoneclient': {
- 'handlers': ['console'],
- 'level': 'DEBUG',
- 'propagate': False,
- },
- 'glanceclient': {
- 'handlers': ['console'],
- 'level': 'DEBUG',
- 'propagate': False,
- },
- 'neutronclient': {
- 'handlers': ['console'],
- 'level': 'DEBUG',
- 'propagate': False,
- },
- 'heatclient': {
- 'handlers': ['console'],
- 'level': 'DEBUG',
- 'propagate': False,
- },
- 'ceilometerclient': {
- 'handlers': ['console'],
- 'level': 'DEBUG',
- 'propagate': False,
- },
- 'swiftclient': {
- 'handlers': ['console'],
- 'level': 'DEBUG',
- 'propagate': False,
- },
- 'openstack_auth': {
- 'handlers': ['console'],
- 'level': 'DEBUG',
- 'propagate': False,
- },
- 'nose.plugins.manager': {
- 'handlers': ['console'],
- 'level': 'DEBUG',
- 'propagate': False,
- },
- 'django': {
- 'handlers': ['console'],
- 'level': 'DEBUG',
- 'propagate': False,
- },
- 'iso8601': {
- 'handlers': ['null'],
- 'propagate': False,
- },
- 'scss': {
- 'handlers': ['null'],
- 'propagate': False,
- },
- },
- }
- SECURITY_GROUP_RULES = {
- 'all_tcp': {
- 'name': _('All TCP'),
- 'ip_protocol': 'tcp',
- 'from_port': '1',
- 'to_port': '65535',
- },
- 'all_udp': {
- 'name': _('All UDP'),
- 'ip_protocol': 'udp',
- 'from_port': '1',
- 'to_port': '65535',
- },
- 'all_icmp': {
- 'name': _('All ICMP'),
- 'ip_protocol': 'icmp',
- 'from_port': '-1',
- 'to_port': '-1',
- },
- 'ssh': {
- 'name': 'SSH',
- 'ip_protocol': 'tcp',
- 'from_port': '22',
- 'to_port': '22',
- },
- 'smtp': {
- 'name': 'SMTP',
- 'ip_protocol': 'tcp',
- 'from_port': '25',
- 'to_port': '25',
- },
- 'dns': {
- 'name': 'DNS',
- 'ip_protocol': 'tcp',
- 'from_port': '53',
- 'to_port': '53',
- },
- 'http': {
- 'name': 'HTTP',
- 'ip_protocol': 'tcp',
- 'from_port': '80',
- 'to_port': '80',
- },
- 'pop3': {
- 'name': 'POP3',
- 'ip_protocol': 'tcp',
- 'from_port': '110',
- 'to_port': '110',
- },
- 'imap': {
- 'name': 'IMAP',
- 'ip_protocol': 'tcp',
- 'from_port': '143',
- 'to_port': '143',
- },
- 'ldap': {
- 'name': 'LDAP',
- 'ip_protocol': 'tcp',
- 'from_port': '389',
- 'to_port': '389',
- },
- 'https': {
- 'name': 'HTTPS',
- 'ip_protocol': 'tcp',
- 'from_port': '443',
- 'to_port': '443',
- },
- 'smtps': {
- 'name': 'SMTPS',
- 'ip_protocol': 'tcp',
- 'from_port': '465',
- 'to_port': '465',
- },
- 'imaps': {
- 'name': 'IMAPS',
- 'ip_protocol': 'tcp',
- 'from_port': '993',
- 'to_port': '993',
- },
- 'pop3s': {
- 'name': 'POP3S',
- 'ip_protocol': 'tcp',
- 'from_port': '995',
- 'to_port': '995',
- },
- 'ms_sql': {
- 'name': 'MS SQL',
- 'ip_protocol': 'tcp',
- 'from_port': '1433',
- 'to_port': '1433',
- },
- 'mysql': {
- 'name': 'MYSQL',
- 'ip_protocol': 'tcp',
- 'from_port': '3306',
- 'to_port': '3306',
- },
- 'rdp': {
- 'name': 'RDP',
- 'ip_protocol': 'tcp',
- 'from_port': '3389',
- 'to_port': '3389',
- },
- }
- REST_API_REQUIRED_SETTINGS = ['OPENSTACK_HYPERVISOR_FEATURES',
- 'LAUNCH_INSTANCE_DEFAULTS']
- try:
- from ubuntu_theme import *
- except ImportError:
- pass
- WEBROOT='/horizon/'
- ALLOWED_HOSTS = ['*', ]
- COMPRESS_OFFLINE = True
- And the Keystone config (not using fernet tokens):
- root@liberty-ctrl:/etc/openstack-dashboard# egrep -v "^$|^#" /etc/keystone/keystone.conf
- [DEFAULT]
- admin_token = ADMIN
- debug = true
- verbose = true
- log_dir = /var/log/keystone
- [assignment]
- [auth]
- [cache]
- [catalog]
- [cors]
- [cors.subdomain]
- [credential]
- [database]
- connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
- [domain_config]
- [endpoint_filter]
- [endpoint_policy]
- [eventlet_server]
- [eventlet_server_ssl]
- [federation]
- [fernet_tokens]
- [identity]
- [identity_mapping]
- [kvs]
- [ldap]
- [matchmaker_redis]
- [matchmaker_ring]
- [memcache]
- servers = localhost:11211
- [oauth1]
- [os_inherit]
- [oslo_messaging_amqp]
- [oslo_messaging_qpid]
- [oslo_messaging_rabbit]
- [oslo_middleware]
- [oslo_policy]
- [paste_deploy]
- [policy]
- [resource]
- [revoke]
- driver = sql
- [role]
- [saml]
- [signing]
- [ssl]
- [token]
- provider = uuid
- driver = memcache
- [tokenless_auth]
- [trust]
- [extra_headers]
- Distribution = Ubuntu
- If I try to login with wrong credentials, Dashboard throws the "Invalid credentials" message.
- If I try to login with correct credentials, Dashboard throws the "Unable to retrieve authorized projects." message and logs the following in "/var/log/apache2/keystone.log".
- 2017-01-05 08:54:42.926805 2017-01-05 08:54:42.926 736 DEBUG keystone.middleware.auth [req-60c81ee5-e80c-47eb-a3f7-642162075ee4 - - - - -] There is either no auth token in the request or the certificate issuer is not trusted. No auth context will be set. _build_auth_context /usr/lib/python2.7/dist-packages/keystone/middleware/auth.py:71
- 2017-01-05 08:54:42.927918 2017-01-05 08:54:42.927 736 INFO keystone.common.wsgi [req-60c81ee5-e80c-47eb-a3f7-642162075ee4 - - - - -] POST http://controller:35357/v3/auth/tokens
- 2017-01-05 08:54:42.985101 2017-01-05 08:54:42.984 736 DEBUG keystone.common.kvs.core [req-60c81ee5-e80c-47eb-a3f7-642162075ee4 - - - - -] KVS lock acquired for: usertokens-732f237a2d314aa1a30c314c6519240e acquire /usr/lib/python2.7/dist-packages/keystone/common/kvs/core.py:407
- 2017-01-05 08:54:42.987381 2017-01-05 08:54:42.987 736 DEBUG keystone.common.kvs.core [req-60c81ee5-e80c-47eb-a3f7-642162075ee4 - - - - -] KVS lock released for: usertokens-732f237a2d314aa1a30c314c6519240e release /usr/lib/python2.7/dist-packages/keystone/common/kvs/core.py:426
- 2017-01-05 08:54:42.999111 2017-01-05 08:54:42.998 732 DEBUG keystone.common.authorization [req-f49d0142-8910-40fe-a1f2-ea2caf6a34f7 - - - - -] RBAC: Proceeding without project or domain scope token_to_auth_context /usr/lib/python2.7/dist-packages/keystone/common/authorization.py:80
- 2017-01-05 08:54:42.999745 2017-01-05 08:54:42.999 732 DEBUG keystone.middleware.auth [req-f49d0142-8910-40fe-a1f2-ea2caf6a34f7 732f237a2d314aa1a30c314c6519240e - - default -] RBAC: auth_context: {'is_delegated_auth': False, 'user_id': u'732f237a2d314aa1a30c314c6519240e', 'user_domain_id': u'default', 'trustee_id': None, 'trustor_id': None, 'consumer_id': None, 'token': <KeystoneToken (audit_id=A8AHv9GUS96hI7TMjMvv1Q, audit_chain_id=A8AHv9GUS96hI7TMjMvv1Q) at 0x7f6c0a8cc3c8>, 'access_token_id': None, 'trust_id': None} process_request /usr/lib/python2.7/dist-packages/keystone/middleware/auth.py:221
- 2017-01-05 08:54:43.001182 2017-01-05 08:54:43.000 732 INFO keystone.common.wsgi [req-f49d0142-8910-40fe-a1f2-ea2caf6a34f7 732f237a2d314aa1a30c314c6519240e - - default -] POST http://controller:35357/v3/auth/tokens
- 2017-01-05 08:54:43.117938 2017-01-05 08:54:43.117 732 DEBUG keystone.common.kvs.core [req-f49d0142-8910-40fe-a1f2-ea2caf6a34f7 732f237a2d314aa1a30c314c6519240e - - default -] KVS lock acquired for: usertokens-732f237a2d314aa1a30c314c6519240e acquire /usr/lib/python2.7/dist-packages/keystone/common/kvs/core.py:407
- 2017-01-05 08:54:43.120800 2017-01-05 08:54:43.120 732 DEBUG keystone.common.kvs.core [req-f49d0142-8910-40fe-a1f2-ea2caf6a34f7 732f237a2d314aa1a30c314c6519240e - - default -] KVS lock released for: usertokens-732f237a2d314aa1a30c314c6519240e release /usr/lib/python2.7/dist-packages/keystone/common/kvs/core.py:426
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement