← Back to team overview

yahoo-eng-team team mailing list archive

[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