← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1440185] [NEW] Identity provider create fails if remote_id is not set

 

Public bug reported:

When support for multiple remote_ids was added
(https://review.openstack.org/#/c/152156/), a prolem was introduced
where Keystone will return a 400 response when an identity provider is
created without a remote_id.  The remote_id is supposed to be optional.
Here is what the problem looks like using python-openstackclient:

[root@rdo ~]# openstack --os-auth-url http://rdo.rdodom.test:5000/v3 --os-user-domain-name default \
    --os-username admin --os-password password --os-project-domain-name default --os-project-name admin \
    --os-identity-api-version 3 identity provider create --enable test
ERROR: openstack 'NoneType' object is not iterable (HTTP 400) (Request-ID: req-172efcf5-6e1b-4059-99f1-44acb069067a)

The problem is that the dict that is passed into
IdentityProviderModel.from_dict() looks like this:

  {u'enabled': True, u'description': None, u'remote_ids': None}

We pop the 'remote_ids' item from the dict to create remote_ids_list,
but this results in the list being None.  We then try to iterate the
list, which triggers an exception that leads to the 400 error.  We need
to fix the way we initialize the list.

** Affects: keystone
     Importance: Undecided
     Assignee: Nathan Kinder (nkinder)
         Status: In Progress

** Changed in: keystone
     Assignee: (unassigned) => Nathan Kinder (nkinder)

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to Keystone.
https://bugs.launchpad.net/bugs/1440185

Title:
  Identity provider create fails if remote_id is not set

Status in OpenStack Identity (Keystone):
  In Progress

Bug description:
  When support for multiple remote_ids was added
  (https://review.openstack.org/#/c/152156/), a prolem was introduced
  where Keystone will return a 400 response when an identity provider is
  created without a remote_id.  The remote_id is supposed to be
  optional.  Here is what the problem looks like using python-
  openstackclient:

  [root@rdo ~]# openstack --os-auth-url http://rdo.rdodom.test:5000/v3 --os-user-domain-name default \
      --os-username admin --os-password password --os-project-domain-name default --os-project-name admin \
      --os-identity-api-version 3 identity provider create --enable test
  ERROR: openstack 'NoneType' object is not iterable (HTTP 400) (Request-ID: req-172efcf5-6e1b-4059-99f1-44acb069067a)

  The problem is that the dict that is passed into
  IdentityProviderModel.from_dict() looks like this:

    {u'enabled': True, u'description': None, u'remote_ids': None}

  We pop the 'remote_ids' item from the dict to create remote_ids_list,
  but this results in the list being None.  We then try to iterate the
  list, which triggers an exception that leads to the 400 error.  We
  need to fix the way we initialize the list.

To manage notifications about this bug go to:
https://bugs.launchpad.net/keystone/+bug/1440185/+subscriptions


Follow ups

References