List enabled users
We need enabled users to perform sync job for user specific resources such as keypairs. Extended current OpenStack, Keystone drivers to return the users. Added UTs for the same. Modified UTs for listing enabled projects. Change-Id: I0a439d4a95afc0e7960b2255ac1779eb683d041e
This commit is contained in:
parent
e716a7cde6
commit
8277d173ae
|
@ -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')
|
||||
|
|
Loading…
Reference in New Issue