keystone/keystone/identity
Colleen Murphy 6d1c88ce88 Speed up check_user_in_group for LDAP users
Without this patch, the HEAD /v3/groups/{group_id}/users/{user_id} call
uses the list_users_in_group to look up members of a group, which in
addition to getting the IDs of each member also queries LDAP to make
sure those users are really in LDAP. For a group with many users, this
is very slow, and also quite roundabout when we already know the ID of
the user we are looking up. This patch enhances performance by splitting
up check_user_in_group from list_users_in_group (in this test the group
contained about 1000 users):

  http://paste.openstack.org/show/603695/

Notably the performance of this patch when ldappool is enabled is about
the same as when it is not because there are fewer connections being
made.

Since there are no list actions being added this should still be safe
and accurate when list limits or paging is enabled.

Change-Id: I11b0dff1ebba4f5fca67e5329bdd1b5124cd37
2017-03-21 23:14:58 +01:00
..
backends Speed up check_user_in_group for LDAP users 2017-03-21 23:14:58 +01:00
id_generators Replace six iteration methods with standard ones 2016-09-08 18:56:31 +08:00
mapping_backends Merge "Faster id mapping lookup" 2016-11-01 00:08:36 +00:00
shadow_backends Set the domain for federated users 2017-01-25 22:03:52 +00:00
__init__.py Remove exposure of routers at package level 2015-12-03 15:06:56 -03:00
controllers.py Merge "Remove code supporting moving resources between domains" 2017-01-25 01:19:26 +00:00
core.py Minor cleanup from patch 429047 2017-03-03 16:56:08 +00:00
generator.py Replace keystone.common.config with keystone.conf package 2016-06-24 17:02:15 +00:00
routers.py Implement HEAD method for all v3 GET actions 2016-03-22 10:27:53 -07:00
schema.py Implement better validation for resource options 2017-01-29 13:19:44 -08:00