diff options
author | Derek Yarnell <derek@umiacs.umd.edu> | 2012-04-16 15:23:12 -0400 |
---|---|---|
committer | Adam Young <ayoung@redhat.com> | 2012-09-10 14:39:11 -0400 |
commit | 235c4ce3d7d5459974fa1995f6d58f4268ebfc7e (patch) | |
tree | 1caecd17d5a21deea1b02493cc7326cdb8ae5d92 | |
parent | 832ce92545611efee0fe39fd3e063a6379f8ba5b (diff) | |
download | keystone-235c4ce3d7d5459974fa1995f6d58f4268ebfc7e.tar.gz keystone-235c4ce3d7d5459974fa1995f6d58f4268ebfc7e.tar.xz keystone-235c4ce3d7d5459974fa1995f6d58f4268ebfc7e.zip |
Implementation of tenant,user,role list functions for ldap
Bug 983304
Defines functions for the retrival and return of the tenant, user and
role objects in ldap. They will return in whatever order LDAP provides
them.
Additional fix for pep8 whitespace violation.
Additional change to add some minimal unit tests for the new functions
Tests have successfully run against a live LDAP server
Change-Id: I368ae4097bb9bcdaab7bca0ccc2f9204d58f69d8
-rw-r--r-- | keystone/identity/backends/ldap/core.py | 9 | ||||
-rw-r--r-- | tests/test_backend.py | 31 |
2 files changed, 40 insertions, 0 deletions
diff --git a/keystone/identity/backends/ldap/core.py b/keystone/identity/backends/ldap/core.py index c3dd52cb..5b32a679 100644 --- a/keystone/identity/backends/ldap/core.py +++ b/keystone/identity/backends/ldap/core.py @@ -116,6 +116,9 @@ class Identity(identity.Driver): except exception.NotFound: raise exception.TenantNotFound(tenant_id=tenant_id) + def get_tenants(self): + return self.tenant.get_all() + def get_tenant_by_name(self, tenant_name): try: return self.tenant.get_by_name(tenant_name) @@ -131,6 +134,9 @@ class Identity(identity.Driver): def get_user(self, user_id): return _filter_user(self._get_user(user_id)) + def list_users(self): + return self.user.get_all() + def get_user_by_name(self, user_name): try: return _filter_user(self.user.get_by_name(user_name)) @@ -152,6 +158,9 @@ class Identity(identity.Driver): except exception.NotFound: raise exception.RoleNotFound(role_id=role_id) + def list_roles(self): + return self.role.get_all() + # These should probably be part of the high-level API # When this happens, then change TenantAPI.add_user to not ignore # ldap.TYPE_OR_VALUE_EXISTS diff --git a/tests/test_backend.py b/tests/test_backend.py index dd843808..72ed5b57 100644 --- a/tests/test_backend.py +++ b/tests/test_backend.py @@ -16,6 +16,7 @@ import datetime import uuid +import default_fixtures from keystone import exception from keystone.openstack.common import timeutils @@ -608,6 +609,36 @@ class IdentityTests(object): 'fake1', user) + def test_list_users(self): + users = self.identity_api.list_users() + for test_user in default_fixtures.USERS: + user_id = test_user['id'] + found = False + for user in users: + if user['id'] == user_id: + found = True + self.assertTrue('found') + + def test_list_roles(self): + roles = self.identity_api.list_roles() + for test_role in default_fixtures.ROLES: + role_id = test_role['id'] + found = False + for role in roles: + if role['id'] == role_id: + found = True + self.assertTrue('found') + + def test_get_tenants(self): + tenants = self.identity_api.get_tenants() + for test_tenant in default_fixtures.TENANTS: + tenant_id = test_tenant['id'] + found = False + for tenant in tenants: + if tenant['id'] == tenant_id: + found = True + self.assertTrue('found') + class TokenTests(object): def test_token_crud(self): |