python-ldap is missing from the keystone containers

Bug #1497669 reported by Kevin Carter
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack-Ansible
Fix Released
High
Kevin Carter
Juno
Fix Released
High
Christopher H. Laco
Kilo
Fix Released
High
Kevin Carter
Trunk
Fix Released
High
Kevin Carter

Bug Description

the pip package python-ldap is missing from the keystone containers which makes running keystone using ldap in impossible. While we can certainly install this package by hand the package should be added to the default pip package list.

Without this package present keystone starts up with the following error:

2015-09-20 03:27:02.064 2184 ERROR keystone.common.wsgi [-] No module named ldap
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi Traceback (most recent call last):
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/keystone/common/wsgi.py", line 238, in __call__
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi result = method(context, **params)
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/keystone/token/controllers.py", line 101, in authenticate
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi context, auth)
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/keystone/token/controllers.py", line 293, in _authenticate_local
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi username, CONF.identity.default_domain_id)
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/keystone/identity/core.py", line 341, in wrapper
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi self.driver, self.resource_api)
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/keystone/identity/core.py", line 242, in setup_domain_drivers
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi resource_api)
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/keystone/identity/core.py", line 172, in _setup_domain_drivers_from_files
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi -len(DOMAIN_CONF_FTAIL)])
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/keystone/identity/core.py", line 136, in _load_config_from_file
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi domain_config['driver'] = self._load_driver(domain_config)
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/keystone/identity/core.py", line 94, in _load_driver
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi domain_config['cfg'].identity.driver, domain_config['cfg'])
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/oslo_utils/importutils.py", line 38, in import_object
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi return import_class(import_str)(*args, **kwargs)
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/oslo_utils/importutils.py", line 27, in import_class
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi __import__(mod_str)
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/keystone/identity/backends/ldap.py", line 17, in <module>
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi import ldap
2015-09-20 03:27:02.064 2184 TRACE keystone.common.wsgi ImportError: No module named ldap

Fix:
pip install python-ldap

Effects:
  * kilo
  * master

Revision history for this message
Kevin Carter (kevin-carter) wrote :
Download full text (6.7 KiB)

To add to this issue, once the package `python-ldap` is installed keystone throws the following error:

==> /openstack/log/aio1_keystone_container-0465f2ad/keystone.log <==
2015-09-20 03:37:01.427 3155 ERROR keystone.common.wsgi [-] {'desc': "Can't contact LDAP server"}
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi Traceback (most recent call last):
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/keystone/common/wsgi.py", line 238, in __call__
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi result = method(context, **params)
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/keystone/token/controllers.py", line 101, in authenticate
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi context, auth)
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/keystone/token/controllers.py", line 293, in _authenticate_local
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi username, CONF.identity.default_domain_id)
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/keystone/identity/core.py", line 342, in wrapper
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi return f(self, *args, **kwargs)
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/keystone/identity/core.py", line 353, in wrapper
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi return f(self, *args, **kwargs)
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/dogpile/cache/region.py", line 1040, in decorate
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi should_cache_fn)
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/dogpile/cache/region.py", line 651, in get_or_create
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi async_creator) as value:
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/dogpile/core/dogpile.py", line 158, in __enter__
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi return self._enter()
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/dogpile/core/dogpile.py", line 98, in _enter
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi generated = self._enter_create(createdtime)
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/dogpile/core/dogpile.py", line 149, in _enter_create
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi created = self.creator()
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/dogpile/cache/region.py", line 619, in gen_value
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi created_value = creator()
2015-09-20 03:37:01.427 3155 TRACE keystone.common.wsgi File "/usr/local/lib/python2.7/dist-packages/dogpile/cache/region.py", line 1036, in creator
2015-09-20 ...

Read more...

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to openstack-ansible (master)

Fix proposed to branch: master
Review: https://review.openstack.org/225469

Changed in openstack-ansible:
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to openstack-ansible (master)

Reviewed: https://review.openstack.org/225469
Committed: https://git.openstack.org/cgit/openstack/openstack-ansible/commit/?id=f32def0216b042aa31f4736e9e863cf2332dfbe7
Submitter: Jenkins
Branch: master

commit f32def0216b042aa31f4736e9e863cf2332dfbe7
Author: Kevin Carter <email address hidden>
Date: Sun Sep 20 00:02:46 2015 -0500

    Fix for keystone LDAP pkg missing

    This change adds the python-ldap package to keystone by default and
    improves the conditional by which the ldap domain specific config
    drivers are loaded.

    Change-Id: Idf85bb109654cbb46755928504d6a19c090a7514
    Closes-bug: 1497669

Changed in openstack-ansible:
status: In Progress → Fix Committed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to openstack-ansible (juno)

Fix proposed to branch: juno
Review: https://review.openstack.org/226750

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to openstack-ansible (juno)

Reviewed: https://review.openstack.org/226750
Committed: https://git.openstack.org/cgit/openstack/openstack-ansible/commit/?id=ecd5491d6b4170703451b5d1c66ee56c5e912b4a
Submitter: Jenkins
Branch: juno

commit ecd5491d6b4170703451b5d1c66ee56c5e912b4a
Author: Kevin Carter <email address hidden>
Date: Sun Sep 20 00:02:46 2015 -0500

    Fix for keystone LDAP pkg missing

    This change adds the python-ldap package to keystone by default and
    improves the conditional by which the ldap domain specific config
    drivers are loaded.

    Conflicts:
      playbooks/roles/os_keystone/defaults/main.yml
      playbooks/roles/os_keystone/templates/keystone.conf.j2

    Change-Id: Idf85bb109654cbb46755928504d6a19c090a7514
    Closes-bug: 1497669
    (cherry picked from commit f32def0216b042aa31f4736e9e863cf2332dfbe7)

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to openstack-ansible (kilo)

Reviewed: https://review.openstack.org/226740
Committed: https://git.openstack.org/cgit/openstack/openstack-ansible/commit/?id=64324c15b65c60fe2338b8c5e9c20b51662c7610
Submitter: Jenkins
Branch: kilo

commit 64324c15b65c60fe2338b8c5e9c20b51662c7610
Author: Kevin Carter <email address hidden>
Date: Sun Sep 20 00:02:46 2015 -0500

    Fix for keystone LDAP pkg missing

    This change adds the python-ldap package to keystone by default and
    improves the conditional by which the ldap domain specific config
    drivers are loaded.

    Change-Id: Idf85bb109654cbb46755928504d6a19c090a7514
    Closes-bug: 1497669
    (cherry picked from commit f32def0216b042aa31f4736e9e863cf2332dfbe7)

Revision history for this message
Davanum Srinivas (DIMS) (dims-v) wrote : Fix included in openstack/openstack-ansible 11.2.14

This issue was fixed in the openstack/openstack-ansible 11.2.14 release.

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.