[identity] cookbook is not compatible with RH-based distros

Bug #1264212 reported by Avishai Weissberg
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack + Chef
Fix Released
Medium
Darren Birkett

Bug Description

TLDR
--------
On Redhat-based distros, the python-keystone yum package installed with the openstack-identity:server recipe, is older than what is assumed by the keystone config file, and thus the Keystone service fails to start.
--------

This bug happens on CentOS 6.4.

The openstack-identity cookbook contains a template called keystone.conf.erb with the following option:

[filter:access_log]
paste.filter_factory = keystone.contrib.access:AccessLogMiddleware.factory

This option trips up keystone-all, because it cannot load the keystone.contrib.access python module.

Looking at the python-keystone yum package (downloaded as a dependency of the openstack-keystone package), indeed it does NOT implement that module.

The error log from starting the keystone service:

$ HOME=/var/lib/keystone keystone-all --debug
Traceback (most recent call last):
  File "/usr/bin/keystone-all", line 104, in <module>
    int(CONF.admin_port)))
  File "/usr/bin/keystone-all", line 34, in create_server
    app = deploy.loadapp('config:%s' % conf, name=name)
  File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 247, in loadapp
    return loadobj(APP, uri, name=name, **kw)
  File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 272, in loadobj
    return context.create()
  File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 710, in create
    return self.object_type.invoke(self)
  File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 144, in invoke
    **context.local_conf)
  File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/util.py", line 56, in fix_call
    val = callable(*args, **kw)
  File "/usr/lib/python2.6/site-packages/paste/urlmap.py", line 25, in urlmap_factory
    app = loader.get_app(app_name, global_conf=global_conf)
  File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 350, in get_app
    name=name, global_conf=global_conf).create()
  File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 362, in app_context
    APP, name=name, global_conf=global_conf)
  File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 450, in get_context
    global_additions=global_additions)
  File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 562, in _pipeline_app_context
    for name in pipeline[:-1]]
  File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 458, in get_context
    section)
  File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 517, in _context_from_explicit
    value = import_string(found_expr)
  File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 22, in import_string
    return pkg_resources.EntryPoint.parse("x=" + s).load(False)
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 1948, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
ImportError: No module named access

Revision history for this message
Avishai Weissberg (ovesh1) wrote :

Removing that filter from the config doesn't help.

almost the entire config file seems to be applicable to an older version of the python-keystone package.

Revision history for this message
Avishai Weissberg (ovesh1) wrote :

ok, it's probably the other way around. The latest yum package for python-keystone is too old.

description: updated
Revision history for this message
Avishai Weissberg (ovesh1) wrote :

Here is the yum repository conf (/etc/yum.repos.d/epel.repo):

[epel]
name=Extra Packages for Enterprise Linux
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-6&arch=$basearch
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
enabled=1

Looking at http://mirrors.fedoraproject.org/mirrorlist?repo=epel-6&arch=x86_64 , and drilling down into any of the repositories, they all serve an old version of the python-keystone package, from 2012: python-keystone-2012.2.4-5.el6.noarch.rpm

summary: - keystone service fails to start after running the openstack-
- identity:server recipe
+ The openstack-identity cookbook is not compatible with RH-based distros
description: updated
tags: added: identity
removed: keystone openstack-identity
summary: - The openstack-identity cookbook is not compatible with RH-based distros
+ [identity] cookbook is not compatible with RH-based distros
Revision history for this message
Justin Shepherd (jshepher) wrote :

We have had recent additions to the common cookbook to lay down RDO repositories for RHEL/Cent platforms.This should have resolved the package version issue.

Closing issue for now, please re-open if you continue to have problems with this.

Revision history for this message
Justin Shepherd (jshepher) wrote :
Changed in openstack-chef:
status: New → Fix Committed
no longer affects: openstack-chef/havana
Changed in openstack-chef:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.