Merge "List enabled users"
This commit is contained in:
@@ -44,6 +44,14 @@ class KeystoneClient(base.DriverBase):
|
||||
except exceptions.InternalError:
|
||||
raise
|
||||
|
||||
def get_enabled_users(self):
|
||||
try:
|
||||
return [current_user.id for current_user in
|
||||
self.keystone_client.users.list() if
|
||||
current_user.enabled]
|
||||
except exceptions.InternalError:
|
||||
raise
|
||||
|
||||
def is_service_enabled(self, service):
|
||||
try:
|
||||
for current_service in self.services_list:
|
||||
|
||||
@@ -86,6 +86,12 @@ class OpenStackDriver(object):
|
||||
except Exception as exception:
|
||||
LOG.error(_LE('Error Occurred: %s'), exception.message)
|
||||
|
||||
def get_enabled_users(self):
|
||||
try:
|
||||
return self.keystone_client.get_enabled_users()
|
||||
except Exception as exception:
|
||||
LOG.error(_LE('Error Occured : %s'), exception.message)
|
||||
|
||||
def get_resource_usages(self, project_id):
|
||||
try:
|
||||
nova_usages = self.nova_client.get_resource_usages(project_id)
|
||||
|
||||
@@ -29,6 +29,13 @@ class Project(object):
|
||||
self.enabled = enabled
|
||||
|
||||
|
||||
class User(object):
|
||||
def __init__(self, user_name, id, enabled=True):
|
||||
self.user_name = user_name
|
||||
self.id = id
|
||||
self.enabled = enabled
|
||||
|
||||
|
||||
class FakeEndpoint(object):
|
||||
def __init__(self, endpoint_name, region):
|
||||
self.endpoint_name = endpoint_name
|
||||
@@ -61,13 +68,24 @@ class TestKeystoneClient(base.KingbirdTestCase):
|
||||
@mock.patch.object(keystone_v3, 'EndpointCache')
|
||||
def test_get_enabled_projects(self, mock_endpoint_cache):
|
||||
p1 = Project('proj1', '123')
|
||||
p2 = Project('proj2', '456')
|
||||
p2 = Project('proj2', '456', False)
|
||||
key_client = keystone_v3.KeystoneClient()
|
||||
mock_endpoint_cache().keystone_client.projects.list.return_value =\
|
||||
[p1, p2]
|
||||
project_list = key_client.get_enabled_projects()
|
||||
self.assertIn(p1.id, project_list)
|
||||
self.assertIn(p2.id, project_list)
|
||||
self.assertNotIn(p2.id, project_list)
|
||||
|
||||
@mock.patch.object(keystone_v3, 'EndpointCache')
|
||||
def test_get_enabled_users(self, mock_endpoint_cache):
|
||||
u1 = User('user1', '123')
|
||||
u2 = User('user2', '456', False)
|
||||
key_client = keystone_v3.KeystoneClient()
|
||||
mock_endpoint_cache().keystone_client.users.list.return_value =\
|
||||
[u1, u2]
|
||||
users_list = key_client.get_enabled_users()
|
||||
self.assertIn(u1.id, users_list)
|
||||
self.assertNotIn(u2.id, users_list)
|
||||
|
||||
@mock.patch.object(keystone_v3.endpoint_filter, 'EndpointFilterManager')
|
||||
@mock.patch.object(keystone_v3, 'EndpointCache')
|
||||
|
||||
@@ -30,6 +30,13 @@ class FakeService(object):
|
||||
self.name = name
|
||||
|
||||
|
||||
class User(object):
|
||||
def __init__(self, user_name, id, enabled=True):
|
||||
self.user_name = user_name
|
||||
self.id = id
|
||||
self.enabled = enabled
|
||||
|
||||
|
||||
class TestOpenStackDriver(base.KingbirdTestCase):
|
||||
def setUp(self):
|
||||
super(TestOpenStackDriver, self).setUp()
|
||||
@@ -136,6 +143,24 @@ class TestOpenStackDriver(base.KingbirdTestCase):
|
||||
output_project_list = os_driver.get_enabled_projects()
|
||||
self.assertEqual(output_project_list, input_project_list)
|
||||
|
||||
@mock.patch.object(sdk.OpenStackDriver, '_is_token_valid')
|
||||
@mock.patch.object(sdk, 'KeystoneClient')
|
||||
@mock.patch.object(sdk, 'NovaClient')
|
||||
@mock.patch.object(sdk, 'NeutronClient')
|
||||
@mock.patch.object(sdk, 'CinderClient')
|
||||
def test_get_enabled_users(self, mock_cinder_client,
|
||||
mock_network_client, mock_nova_client,
|
||||
mock_keystone_client, mock_is_token_valid):
|
||||
mock_is_token_valid.return_value = True
|
||||
user_1 = User('user1', '123')
|
||||
user_2 = User('user2', '456')
|
||||
input_users_list = [user_1, user_2]
|
||||
os_driver = sdk.OpenStackDriver('fake_region_5')
|
||||
os_driver.keystone_client.get_enabled_users.return_value = \
|
||||
input_users_list
|
||||
output_users_list = os_driver.get_enabled_users()
|
||||
self.assertEqual(output_users_list, input_users_list)
|
||||
|
||||
@mock.patch.object(sdk.OpenStackDriver, '_is_token_valid')
|
||||
@mock.patch.object(sdk, 'KeystoneClient')
|
||||
@mock.patch.object(sdk, 'NovaClient')
|
||||
|
||||
Reference in New Issue
Block a user