Add show resource function to Keystone
Now it isn't possible to use base _show_resource() method since client() method of keystone clientplugin doesn't return clean keystoneclient object. Change-Id: I78b57d44b37c34cebadc2b72cf55b4f9405447a3
This commit is contained in:
@@ -27,6 +27,8 @@ class KeystoneEndpoint(resource.Resource):
|
||||
|
||||
default_client_name = 'keystone'
|
||||
|
||||
entity = 'endpoints'
|
||||
|
||||
PROPERTIES = (
|
||||
NAME, REGION, SERVICE, INTERFACE, SERVICE_URL
|
||||
) = (
|
||||
@@ -68,13 +70,16 @@ class KeystoneEndpoint(resource.Resource):
|
||||
)
|
||||
}
|
||||
|
||||
def client(self):
|
||||
return super(KeystoneEndpoint, self).client().client
|
||||
|
||||
def _create_endpoint(self,
|
||||
service,
|
||||
interface,
|
||||
url,
|
||||
region=None,
|
||||
name=None):
|
||||
return self.client().client.endpoints.create(
|
||||
return self.client().endpoints.create(
|
||||
region=region,
|
||||
service=service,
|
||||
interface=interface,
|
||||
@@ -82,7 +87,7 @@ class KeystoneEndpoint(resource.Resource):
|
||||
name=name)
|
||||
|
||||
def _delete_endpoint(self, endpoint_id):
|
||||
return self.client().client.endpoints.delete(endpoint_id)
|
||||
return self.client().endpoints.delete(endpoint_id)
|
||||
|
||||
def _update_endpoint(self,
|
||||
endpoint_id,
|
||||
@@ -91,7 +96,7 @@ class KeystoneEndpoint(resource.Resource):
|
||||
new_interface=None,
|
||||
new_url=None,
|
||||
new_name=None):
|
||||
return self.client().client.endpoints.update(
|
||||
return self.client().endpoints.update(
|
||||
endpoint=endpoint_id,
|
||||
region=new_region,
|
||||
service=new_service,
|
||||
|
||||
@@ -29,6 +29,8 @@ class KeystoneGroup(resource.Resource,
|
||||
|
||||
default_client_name = 'keystone'
|
||||
|
||||
entity = 'groups'
|
||||
|
||||
PROPERTIES = (
|
||||
NAME, DOMAIN, DESCRIPTION
|
||||
) = (
|
||||
@@ -63,19 +65,22 @@ class KeystoneGroup(resource.Resource,
|
||||
super(KeystoneGroup, self).validate()
|
||||
self.validate_assignment_properties()
|
||||
|
||||
def client(self):
|
||||
return super(KeystoneGroup, self).client().client
|
||||
|
||||
def _create_group(self,
|
||||
group_name,
|
||||
description,
|
||||
domain):
|
||||
domain = self.client_plugin().get_domain_id(domain)
|
||||
|
||||
return self.client().client.groups.create(
|
||||
return self.client().groups.create(
|
||||
name=group_name,
|
||||
domain=domain,
|
||||
description=description)
|
||||
|
||||
def _delete_group(self, group_id):
|
||||
return self.client().client.groups.delete(group_id)
|
||||
return self.client().groups.delete(group_id)
|
||||
|
||||
def _update_group(self,
|
||||
group_id,
|
||||
@@ -92,7 +97,7 @@ class KeystoneGroup(resource.Resource,
|
||||
values['group'] = group_id
|
||||
domain = self.client_plugin().get_domain_id(domain)
|
||||
values['domain_id'] = domain
|
||||
return self.client().client.groups.update(**values)
|
||||
return self.client().groups.update(**values)
|
||||
|
||||
def handle_create(self):
|
||||
group_name = (self.properties.get(self.NAME) or
|
||||
|
||||
@@ -27,6 +27,8 @@ class KeystoneProject(resource.Resource):
|
||||
|
||||
default_client_name = 'keystone'
|
||||
|
||||
entity = 'projects'
|
||||
|
||||
PROPERTIES = (
|
||||
NAME, DOMAIN, DESCRIPTION, ENABLED
|
||||
) = (
|
||||
@@ -60,6 +62,9 @@ class KeystoneProject(resource.Resource):
|
||||
)
|
||||
}
|
||||
|
||||
def client(self):
|
||||
return super(KeystoneProject, self).client().client
|
||||
|
||||
def _create_project(self,
|
||||
project_name,
|
||||
description,
|
||||
@@ -67,14 +72,14 @@ class KeystoneProject(resource.Resource):
|
||||
enabled):
|
||||
domain = self.client_plugin().get_domain_id(domain)
|
||||
|
||||
return self.client().client.projects.create(
|
||||
return self.client().projects.create(
|
||||
name=project_name,
|
||||
domain=domain,
|
||||
description=description,
|
||||
enabled=enabled)
|
||||
|
||||
def _delete_project(self, project_id):
|
||||
return self.client().client.projects.delete(project_id)
|
||||
return self.client().projects.delete(project_id)
|
||||
|
||||
def _update_project(self,
|
||||
project_id,
|
||||
@@ -96,7 +101,7 @@ class KeystoneProject(resource.Resource):
|
||||
|
||||
values['domain'] = domain
|
||||
|
||||
return self.client().client.projects.update(**values)
|
||||
return self.client().projects.update(**values)
|
||||
|
||||
def handle_create(self):
|
||||
project_name = (self.properties.get(self.NAME) or
|
||||
|
||||
@@ -26,6 +26,8 @@ class KeystoneRole(resource.Resource):
|
||||
|
||||
default_client_name = 'keystone'
|
||||
|
||||
entity = 'roles'
|
||||
|
||||
PROPERTIES = (
|
||||
NAME
|
||||
) = (
|
||||
@@ -40,14 +42,17 @@ class KeystoneRole(resource.Resource):
|
||||
)
|
||||
}
|
||||
|
||||
def client(self):
|
||||
return super(KeystoneRole, self).client().client
|
||||
|
||||
def _create_role(self, role_name):
|
||||
return self.client().client.roles.create(name=role_name)
|
||||
return self.client().roles.create(name=role_name)
|
||||
|
||||
def _delete_role(self, role_id):
|
||||
return self.client().client.roles.delete(role_id)
|
||||
return self.client().roles.delete(role_id)
|
||||
|
||||
def _update_role(self, role_id, new_name):
|
||||
return self.client().client.roles.update(
|
||||
return self.client().roles.update(
|
||||
role=role_id,
|
||||
name=new_name
|
||||
)
|
||||
|
||||
@@ -26,6 +26,8 @@ class KeystoneService(resource.Resource):
|
||||
|
||||
default_client_name = 'keystone'
|
||||
|
||||
entity = 'services'
|
||||
|
||||
PROPERTIES = (
|
||||
NAME, DESCRIPTION, TYPE
|
||||
) = (
|
||||
@@ -51,24 +53,27 @@ class KeystoneService(resource.Resource):
|
||||
)
|
||||
}
|
||||
|
||||
def client(self):
|
||||
return super(KeystoneService, self).client().client
|
||||
|
||||
def _create_service(self,
|
||||
name,
|
||||
type,
|
||||
description=None):
|
||||
return self.client().client.services.create(
|
||||
return self.client().services.create(
|
||||
name=name,
|
||||
description=description,
|
||||
type=type)
|
||||
|
||||
def _delete_service(self, service_id):
|
||||
return self.client().client.services.delete(service_id)
|
||||
return self.client().services.delete(service_id)
|
||||
|
||||
def _update_service(self,
|
||||
service_id,
|
||||
new_name=None,
|
||||
new_description=None,
|
||||
new_type=None):
|
||||
return self.client().client.services.update(
|
||||
return self.client().services.update(
|
||||
service=service_id,
|
||||
name=new_name,
|
||||
description=new_description,
|
||||
|
||||
@@ -29,6 +29,8 @@ class KeystoneUser(resource.Resource,
|
||||
|
||||
default_client_name = 'keystone'
|
||||
|
||||
entity = 'users'
|
||||
|
||||
PROPERTIES = (
|
||||
NAME, DOMAIN, DESCRIPTION, ENABLED, EMAIL, PASSWORD,
|
||||
DEFAULT_PROJECT, GROUPS
|
||||
@@ -97,6 +99,9 @@ class KeystoneUser(resource.Resource,
|
||||
super(KeystoneUser, self).validate()
|
||||
self.validate_assignment_properties()
|
||||
|
||||
def client(self):
|
||||
return super(KeystoneUser, self).client().client
|
||||
|
||||
def _create_user(self,
|
||||
user_name,
|
||||
description,
|
||||
@@ -110,7 +115,7 @@ class KeystoneUser(resource.Resource,
|
||||
default_project = (self.client_plugin().
|
||||
get_project_id(default_project))
|
||||
|
||||
return self.client().client.users.create(
|
||||
return self.client().users.create(
|
||||
name=user_name,
|
||||
domain=domain,
|
||||
description=description,
|
||||
@@ -120,7 +125,7 @@ class KeystoneUser(resource.Resource,
|
||||
default_project=default_project)
|
||||
|
||||
def _delete_user(self, user_id):
|
||||
return self.client().client.users.delete(user_id)
|
||||
return self.client().users.delete(user_id)
|
||||
|
||||
def _update_user(self,
|
||||
user_id,
|
||||
@@ -151,7 +156,7 @@ class KeystoneUser(resource.Resource,
|
||||
|
||||
values['domain'] = domain
|
||||
|
||||
return self.client().client.users.update(**values)
|
||||
return self.client().users.update(**values)
|
||||
|
||||
def _add_user_to_groups(self, user_id, groups):
|
||||
if groups is not None:
|
||||
@@ -159,8 +164,8 @@ class KeystoneUser(resource.Resource,
|
||||
for group in groups]
|
||||
|
||||
for group_id in group_ids:
|
||||
self.client().client.users.add_to_group(user_id,
|
||||
group_id)
|
||||
self.client().users.add_to_group(user_id,
|
||||
group_id)
|
||||
|
||||
def _remove_user_from_groups(self, user_id, groups):
|
||||
if groups is not None:
|
||||
@@ -168,8 +173,8 @@ class KeystoneUser(resource.Resource,
|
||||
for group in groups]
|
||||
|
||||
for group_id in group_ids:
|
||||
self.client().client.users.remove_from_group(user_id,
|
||||
group_id)
|
||||
self.client().users.remove_from_group(user_id,
|
||||
group_id)
|
||||
|
||||
def _find_diff(self, updated_prps, stored_prps):
|
||||
new_group_ids = [self.client_plugin().get_group_id(group)
|
||||
|
||||
@@ -57,7 +57,7 @@ class KeystoneEndpointTest(common.HeatTestCase):
|
||||
self.keystoneclient = mock.MagicMock()
|
||||
self.test_endpoint.client = mock.MagicMock()
|
||||
self.test_endpoint.client.return_value = self.keystoneclient
|
||||
self.endpoints = self.keystoneclient.client.endpoints
|
||||
self.endpoints = self.keystoneclient.endpoints
|
||||
|
||||
# Mock client plugin
|
||||
keystone_client_plugin = mock.MagicMock()
|
||||
@@ -316,3 +316,10 @@ class KeystoneEndpointTest(common.HeatTestCase):
|
||||
schema.description,
|
||||
'description for property %s is modified' %
|
||||
endpoint.KeystoneEndpoint.NAME)
|
||||
|
||||
def test_show_resource(self):
|
||||
endpoint = mock.Mock()
|
||||
endpoint.to_dict.return_value = {'attr': 'val'}
|
||||
self.endpoints.get.return_value = endpoint
|
||||
res = self.test_endpoint._show_resource()
|
||||
self.assertEqual({'attr': 'val'}, res)
|
||||
|
||||
@@ -55,7 +55,7 @@ class KeystoneGroupTest(common.HeatTestCase):
|
||||
self.keystoneclient = mock.MagicMock()
|
||||
self.test_group.client = mock.MagicMock()
|
||||
self.test_group.client.return_value = self.keystoneclient
|
||||
self.groups = self.keystoneclient.client.groups
|
||||
self.groups = self.keystoneclient.groups
|
||||
|
||||
# Mock client plugin
|
||||
def _side_effect(value):
|
||||
@@ -301,3 +301,10 @@ class KeystoneGroupTest(common.HeatTestCase):
|
||||
self.groups.delete.side_effect = exc
|
||||
|
||||
self.assertIsNone(self.test_group.handle_delete())
|
||||
|
||||
def test_show_resource(self):
|
||||
group = mock.Mock()
|
||||
group.to_dict.return_value = {'attr': 'val'}
|
||||
self.groups.get.return_value = group
|
||||
res = self.test_group._show_resource()
|
||||
self.assertEqual({'attr': 'val'}, res)
|
||||
|
||||
@@ -56,7 +56,7 @@ class KeystoneProjectTest(common.HeatTestCase):
|
||||
self.keystoneclient = mock.MagicMock()
|
||||
self.test_project.client = mock.MagicMock()
|
||||
self.test_project.client.return_value = self.keystoneclient
|
||||
self.projects = self.keystoneclient.client.projects
|
||||
self.projects = self.keystoneclient.projects
|
||||
|
||||
# Mock client plugin
|
||||
def _domain_side_effect(value):
|
||||
@@ -342,3 +342,10 @@ class KeystoneProjectTest(common.HeatTestCase):
|
||||
self.projects.delete.side_effect = exc
|
||||
|
||||
self.assertIsNone(self.test_project.handle_delete())
|
||||
|
||||
def test_show_resource(self):
|
||||
project = mock.Mock()
|
||||
project.to_dict.return_value = {'attr': 'val'}
|
||||
self.projects.get.return_value = project
|
||||
res = self.test_project._show_resource()
|
||||
self.assertEqual({'attr': 'val'}, res)
|
||||
|
||||
@@ -50,7 +50,7 @@ class KeystoneRoleTest(common.HeatTestCase):
|
||||
self.keystoneclient = mock.MagicMock()
|
||||
self.test_role.client = mock.MagicMock()
|
||||
self.test_role.client.return_value = self.keystoneclient
|
||||
self.roles = self.keystoneclient.client.roles
|
||||
self.roles = self.keystoneclient.roles
|
||||
|
||||
def _get_mock_role(self):
|
||||
value = mock.MagicMock()
|
||||
@@ -128,3 +128,10 @@ class KeystoneRoleTest(common.HeatTestCase):
|
||||
self.roles.delete.side_effect = exc
|
||||
|
||||
self.assertIsNone(self.test_role.handle_delete())
|
||||
|
||||
def test_show_resource(self):
|
||||
role = mock.Mock()
|
||||
role.to_dict.return_value = {'attr': 'val'}
|
||||
self.roles.get.return_value = role
|
||||
res = self.test_role._show_resource()
|
||||
self.assertEqual({'attr': 'val'}, res)
|
||||
|
||||
@@ -54,7 +54,7 @@ class KeystoneServiceTest(common.HeatTestCase):
|
||||
self.keystoneclient = mock.MagicMock()
|
||||
self.test_service.client = mock.MagicMock()
|
||||
self.test_service.client.return_value = self.keystoneclient
|
||||
self.services = self.keystoneclient.client.services
|
||||
self.services = self.keystoneclient.services
|
||||
|
||||
# Mock client plugin
|
||||
keystone_client_plugin = mock.MagicMock()
|
||||
@@ -266,3 +266,10 @@ class KeystoneServiceTest(common.HeatTestCase):
|
||||
schema.description,
|
||||
'description for property %s is modified' %
|
||||
service.KeystoneService.TYPE)
|
||||
|
||||
def test_show_resource(self):
|
||||
service = mock.Mock()
|
||||
service.to_dict.return_value = {'attr': 'val'}
|
||||
self.services.get.return_value = service
|
||||
res = self.test_service._show_resource()
|
||||
self.assertEqual({'attr': 'val'}, res)
|
||||
|
||||
@@ -59,7 +59,7 @@ class KeystoneUserTest(common.HeatTestCase):
|
||||
self.keystoneclient = mock.MagicMock()
|
||||
self.test_user.client = mock.MagicMock()
|
||||
self.test_user.client.return_value = self.keystoneclient
|
||||
self.users = self.keystoneclient.client.users
|
||||
self.users = self.keystoneclient.users
|
||||
|
||||
# Mock client plugin
|
||||
def _side_effect(value):
|
||||
@@ -263,3 +263,10 @@ class KeystoneUserTest(common.HeatTestCase):
|
||||
self.users.delete.side_effect = exc
|
||||
|
||||
self.assertIsNone(self.test_user.handle_delete())
|
||||
|
||||
def test_show_resource(self):
|
||||
user = mock.Mock()
|
||||
user.to_dict.return_value = {'attr': 'val'}
|
||||
self.users.get.return_value = user
|
||||
res = self.test_user._show_resource()
|
||||
self.assertEqual({'attr': 'val'}, res)
|
||||
|
||||
Reference in New Issue
Block a user