yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #05167
[Bug 1231772] Re: Cannot create a user with LDAP backend
** Changed in: keystone
Status: Fix Committed => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to Keystone.
https://bugs.launchpad.net/bugs/1231772
Title:
Cannot create a user with LDAP backend
Status in OpenStack Identity (Keystone):
Fix Released
Bug description:
When running Keystone with the LDAP identity backend, creating a user
fails with 400 and "must be string, not None"
Set up devstack to use LDAP.
While devstack is running commands fail, like this:
keystone user-create --name=nova --pass=mypwd --tenant_id
948d57ba2523423e96ca2f98c29973a8 --email=nova@xxxxxxxxxxx
Here's the error in the Keystone log:
(keystone.common.ldap.core): 2013-09-26 21:10:35,701 DEBUG core add_s
LDAP add:
dn=cn=591959d3f2cd42d09230789af9504e12,ou=Users,dc=openstack,dc=org,
attrs=[('objectClass', ['person', 'inetOrgPerson']), ('sn', ['nova']),
('userPassword', ['****']), (None,
['948d57ba2523423e96ca2f98c29973a8'])]
(keystone.common.wsgi): 2013-09-26 21:10:35,702 ERROR wsgi __call__ must be string, not None
Traceback (most recent call last):
File "/opt/stack/keystone/keystone/common/wsgi.py", line 238, in __call__
result = method(context, **params)
File "/opt/stack/keystone/keystone/identity/controllers.py", line 214, in create_user
self.identity_api.create_user(user_id, user_ref))
File "/opt/stack/keystone/keystone/notifications.py", line 44, in wrapper
result = f(*args, **kwargs)
File "/opt/stack/keystone/keystone/identity/core.py", line 177, in wrapper
return f(self, *args, **kwargs)
File "/opt/stack/keystone/keystone/identity/core.py", line 322, in create_user
ref = driver.create_user(user_id, user)
File "/opt/stack/keystone/keystone/identity/backends/ldap.py", line 95, in create_user
user_ref = self.user.create(user)
File "/opt/stack/keystone/keystone/identity/backends/ldap.py", line 229, in create
values = super(UserApi, self).create(values)
File "/opt/stack/keystone/keystone/common/ldap/core.py", line 730, in create
return super(EnabledEmuMixIn, self).create(values)
File "/opt/stack/keystone/keystone/common/ldap/core.py", line 328, in create
conn.add_s(self._id_to_dn(values['id']), attrs)
File "/opt/stack/keystone/keystone/common/ldap/core.py", line 551, in add_s
return self.conn.add_s(dn, ldap_attrs)
File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 193, in add_s
msgid = self.add(dn,modlist)
File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 190, in add
return self.add_ext(dn,modlist,None,None)
File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 176, in add_ext
return self._ldap_call(self._l.add_ext,dn,modlist,EncodeControlTuples(serverctrls),EncodeControlTuples(clientctrls))
File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 96, in _ldap_call
result = func(*args,**kwargs)
TypeError: must be string, not None
Also, the error should be 500 Internal Server Error and not 400 Bad Request.
To manage notifications about this bug go to:
https://bugs.launchpad.net/keystone/+bug/1231772/+subscriptions