Make sure default_client_name declared for required resources
Adds default_client_name attribute to those resource plugin which does not explicitly declare it. implements blueprint keystone-based-resource-availability Change-Id: I727b71496e1ecc4ac4289d94860ba341dcd522d8
This commit is contained in:
parent
41159da614
commit
055915e2f1
|
@ -26,6 +26,8 @@ class Order(resource.Resource):
|
|||
|
||||
support_status = support.SupportStatus(version='2014.2')
|
||||
|
||||
default_client_name = 'barbican'
|
||||
|
||||
PROPERTIES = (
|
||||
NAME, PAYLOAD_CONTENT_TYPE, MODE, EXPIRATION,
|
||||
ALGORITHM, BIT_LENGTH, TYPE, REQUEST_TYPE, SUBJECT_DN,
|
||||
|
@ -144,7 +146,7 @@ class Order(resource.Resource):
|
|||
}
|
||||
|
||||
def barbican(self):
|
||||
return self.client('barbican')
|
||||
return self.client()
|
||||
|
||||
def handle_create(self):
|
||||
info = dict((k, v) for k, v in self.properties.items()
|
||||
|
|
|
@ -25,6 +25,8 @@ class Secret(resource.Resource):
|
|||
|
||||
support_status = support.SupportStatus(version='2014.2')
|
||||
|
||||
default_client_name = 'barbican'
|
||||
|
||||
PROPERTIES = (
|
||||
NAME, PAYLOAD, PAYLOAD_CONTENT_TYPE, PAYLOAD_CONTENT_ENCODING,
|
||||
MODE, EXPIRATION, ALGORITHM, BIT_LENGTH,
|
||||
|
@ -104,7 +106,7 @@ class Secret(resource.Resource):
|
|||
}
|
||||
|
||||
def barbican(self):
|
||||
return self.client('barbican')
|
||||
return self.client()
|
||||
|
||||
def handle_create(self):
|
||||
info = dict(self.properties)
|
||||
|
|
|
@ -43,6 +43,8 @@ class CinderVolumeType(resource.Resource):
|
|||
|
||||
support_status = support.SupportStatus(version='2015.1')
|
||||
|
||||
default_client_name = 'cinder'
|
||||
|
||||
PROPERTIES = (
|
||||
NAME, METADATA, IS_PUBLIC, DESCRIPTION,
|
||||
) = (
|
||||
|
@ -115,7 +117,7 @@ class CinderVolumeType(resource.Resource):
|
|||
try:
|
||||
self.cinder().volume_types.delete(self.resource_id)
|
||||
except Exception as e:
|
||||
self.client_plugin('cinder').ignore_not_found(e)
|
||||
self.client_plugin().ignore_not_found(e)
|
||||
|
||||
|
||||
def resource_mapping():
|
||||
|
|
|
@ -35,6 +35,7 @@ class RemoteStack(resource.Resource):
|
|||
A Resource representing a stack which can be created using specified
|
||||
context.
|
||||
"""
|
||||
default_client_name = 'heat'
|
||||
|
||||
PROPERTIES = (
|
||||
CONTEXT, TEMPLATE, TIMEOUT, PARAMETERS,
|
||||
|
@ -120,11 +121,11 @@ class RemoteStack(resource.Resource):
|
|||
|
||||
def heat(self):
|
||||
# A convenience method overriding Resource.heat()
|
||||
return self._context().clients.client("heat")
|
||||
return self._context().clients.client(self.default_client_name)
|
||||
|
||||
def client_plugin(self):
|
||||
# A convenience method overriding Resource.client_plugin()
|
||||
return self._context().clients.client_plugin('heat')
|
||||
return self._context().clients.client_plugin(self.default_client_name)
|
||||
|
||||
def validate(self):
|
||||
super(RemoteStack, self).validate()
|
||||
|
|
|
@ -25,6 +25,8 @@ class KeystoneEndpoint(resource.Resource):
|
|||
version='2015.2',
|
||||
message=_('Supported versions: keystone v3'))
|
||||
|
||||
default_client_name = 'keystone'
|
||||
|
||||
PROPERTIES = (
|
||||
NAME, REGION, SERVICE, INTERFACE, SERVICE_URL
|
||||
) = (
|
||||
|
@ -142,7 +144,7 @@ class KeystoneEndpoint(resource.Resource):
|
|||
try:
|
||||
self._delete_endpoint(endpoint_id=self.resource_id)
|
||||
except Exception as ex:
|
||||
self.client_plugin('keystone').ignore_not_found(ex)
|
||||
self.client_plugin().ignore_not_found(ex)
|
||||
|
||||
|
||||
def resource_mapping():
|
||||
|
|
|
@ -60,8 +60,7 @@ class KeystoneGroup(role_assignments.KeystoneRoleAssignment):
|
|||
group_name,
|
||||
description,
|
||||
domain):
|
||||
domain = (self.client_plugin('keystone').
|
||||
get_domain_id(domain))
|
||||
domain = self.client_plugin().get_domain_id(domain)
|
||||
|
||||
return self.keystone().client.groups.create(
|
||||
name=group_name,
|
||||
|
@ -84,8 +83,7 @@ class KeystoneGroup(role_assignments.KeystoneRoleAssignment):
|
|||
values['description'] = new_description
|
||||
|
||||
values['group'] = group_id
|
||||
domain = (self.client_plugin('keystone').
|
||||
get_domain_id(domain))
|
||||
domain = self.client_plugin().get_domain_id(domain)
|
||||
values['domain_id'] = domain
|
||||
return self.keystone().client.groups.update(**values)
|
||||
|
||||
|
@ -132,7 +130,7 @@ class KeystoneGroup(role_assignments.KeystoneRoleAssignment):
|
|||
|
||||
self._delete_group(group_id=self.resource_id)
|
||||
except Exception as ex:
|
||||
self.client_plugin('keystone').ignore_not_found(ex)
|
||||
self.client_plugin().ignore_not_found(ex)
|
||||
|
||||
|
||||
def resource_mapping():
|
||||
|
|
|
@ -25,6 +25,8 @@ class KeystoneProject(resource.Resource):
|
|||
version='2015.1',
|
||||
message=_('Supported versions: keystone v3'))
|
||||
|
||||
default_client_name = 'keystone'
|
||||
|
||||
PROPERTIES = (
|
||||
NAME, DOMAIN, DESCRIPTION, ENABLED
|
||||
) = (
|
||||
|
@ -63,8 +65,7 @@ class KeystoneProject(resource.Resource):
|
|||
description,
|
||||
domain,
|
||||
enabled):
|
||||
domain = (self.client_plugin('keystone').
|
||||
get_domain_id(domain))
|
||||
domain = self.client_plugin().get_domain_id(domain)
|
||||
|
||||
return self.keystone().client.projects.create(
|
||||
name=project_name,
|
||||
|
@ -91,8 +92,7 @@ class KeystoneProject(resource.Resource):
|
|||
values['enabled'] = enabled
|
||||
|
||||
values['project'] = project_id
|
||||
domain = (self.client_plugin('keystone').
|
||||
get_domain_id(domain))
|
||||
domain = self.client_plugin().get_domain_id(domain)
|
||||
|
||||
values['domain'] = domain
|
||||
|
||||
|
@ -137,7 +137,7 @@ class KeystoneProject(resource.Resource):
|
|||
try:
|
||||
self._delete_project(project_id=self.resource_id)
|
||||
except Exception as ex:
|
||||
self.client_plugin('keystone').ignore_not_found(ex)
|
||||
self.client_plugin().ignore_not_found(ex)
|
||||
|
||||
|
||||
def resource_mapping():
|
||||
|
|
|
@ -24,6 +24,8 @@ class KeystoneRole(resource.Resource):
|
|||
version='2015.1',
|
||||
message=_('Supported versions: keystone v3'))
|
||||
|
||||
default_client_name = 'keystone'
|
||||
|
||||
PROPERTIES = (
|
||||
NAME
|
||||
) = (
|
||||
|
@ -73,7 +75,7 @@ class KeystoneRole(resource.Resource):
|
|||
try:
|
||||
self._delete_role(role_id=self.resource_id)
|
||||
except Exception as ex:
|
||||
self.client_plugin('keystone').ignore_not_found(ex)
|
||||
self.client_plugin().ignore_not_found(ex)
|
||||
|
||||
|
||||
def resource_mapping():
|
||||
|
|
|
@ -54,6 +54,8 @@ class KeystoneRoleAssignment(resource.Resource):
|
|||
version='2015.1',
|
||||
message=_('Supported versions: keystone v3'))
|
||||
|
||||
default_client_name = 'keystone'
|
||||
|
||||
PROPERTIES = (
|
||||
ROLES
|
||||
) = (
|
||||
|
@ -170,11 +172,10 @@ class KeystoneRoleAssignment(resource.Resource):
|
|||
domain = role_assignment.get(self.DOMAIN)
|
||||
|
||||
role_assignments.append({
|
||||
self.ROLE: (self.client_plugin('keystone').
|
||||
get_role_id(role)),
|
||||
self.PROJECT: (self.client_plugin('keystone').
|
||||
self.ROLE: self.client_plugin().get_role_id(role),
|
||||
self.PROJECT: (self.client_plugin().
|
||||
get_project_id(project)) if project else None,
|
||||
self.DOMAIN: (self.client_plugin('keystone').
|
||||
self.DOMAIN: (self.client_plugin().
|
||||
get_domain_id(domain)) if domain else None
|
||||
})
|
||||
return role_assignments
|
||||
|
|
|
@ -24,6 +24,8 @@ class KeystoneService(resource.Resource):
|
|||
version='2015.2',
|
||||
message=_('Supported versions: keystone v3'))
|
||||
|
||||
default_client_name = 'keystone'
|
||||
|
||||
PROPERTIES = (
|
||||
NAME, DESCRIPTION, TYPE
|
||||
) = (
|
||||
|
@ -109,7 +111,7 @@ class KeystoneService(resource.Resource):
|
|||
try:
|
||||
self._delete_service(service_id=self.resource_id)
|
||||
except Exception as ex:
|
||||
self.client_plugin('keystone').ignore_not_found(ex)
|
||||
self.client_plugin().ignore_not_found(ex)
|
||||
|
||||
|
||||
def resource_mapping():
|
||||
|
|
|
@ -98,10 +98,9 @@ class KeystoneUser(role_assignments.KeystoneRoleAssignment):
|
|||
enabled=None,
|
||||
email=None,
|
||||
password=None):
|
||||
domain = (self.client_plugin('keystone').
|
||||
get_domain_id(domain))
|
||||
domain = (self.client_plugin().get_domain_id(domain))
|
||||
if default_project:
|
||||
default_project = (self.client_plugin('keystone').
|
||||
default_project = (self.client_plugin().
|
||||
get_project_id(default_project))
|
||||
|
||||
return self.keystone().client.users.create(
|
||||
|
@ -141,8 +140,7 @@ class KeystoneUser(role_assignments.KeystoneRoleAssignment):
|
|||
values['enabled'] = enabled
|
||||
|
||||
values['user'] = user_id
|
||||
domain = (self.client_plugin('keystone').
|
||||
get_domain_id(domain))
|
||||
domain = (self.client_plugin().get_domain_id(domain))
|
||||
|
||||
values['domain'] = domain
|
||||
|
||||
|
@ -150,8 +148,7 @@ class KeystoneUser(role_assignments.KeystoneRoleAssignment):
|
|||
|
||||
def _add_user_to_groups(self, user_id, groups):
|
||||
if groups is not None:
|
||||
group_ids = [(self.client_plugin('keystone').
|
||||
get_group_id(group))
|
||||
group_ids = [self.client_plugin().get_group_id(group)
|
||||
for group in groups]
|
||||
|
||||
for group_id in group_ids:
|
||||
|
@ -160,8 +157,7 @@ class KeystoneUser(role_assignments.KeystoneRoleAssignment):
|
|||
|
||||
def _remove_user_from_groups(self, user_id, groups):
|
||||
if groups is not None:
|
||||
group_ids = [(self.client_plugin('keystone').
|
||||
get_group_id(group))
|
||||
group_ids = [self.client_plugin().get_group_id(group)
|
||||
for group in groups]
|
||||
|
||||
for group_id in group_ids:
|
||||
|
@ -169,14 +165,12 @@ class KeystoneUser(role_assignments.KeystoneRoleAssignment):
|
|||
group_id)
|
||||
|
||||
def _find_diff(self, updated_prps, stored_prps):
|
||||
new_group_ids = [(self.client_plugin('keystone').
|
||||
get_group_id(group))
|
||||
new_group_ids = [self.client_plugin().get_group_id(group)
|
||||
for group in
|
||||
(set(updated_prps or []) -
|
||||
set(stored_prps or []))]
|
||||
|
||||
removed_group_ids = [(self.client_plugin('keystone').
|
||||
get_group_id(group))
|
||||
removed_group_ids = [self.client_plugin().get_group_id(group)
|
||||
for group in
|
||||
(set(stored_prps or [])
|
||||
- set(updated_prps or []))]
|
||||
|
@ -257,14 +251,13 @@ class KeystoneUser(role_assignments.KeystoneRoleAssignment):
|
|||
if self._stored_properties_data[self.GROUPS] is not None:
|
||||
self._remove_user_from_groups(
|
||||
self.resource_id,
|
||||
[(self.client_plugin('keystone').
|
||||
get_group_id(group))
|
||||
[self.client_plugin().get_group_id(group)
|
||||
for group in
|
||||
self._stored_properties_data[self.GROUPS]])
|
||||
|
||||
self._delete_user(user_id=self.resource_id)
|
||||
except Exception as ex:
|
||||
self.client_plugin('keystone').ignore_not_found(ex)
|
||||
self.client_plugin().ignore_not_found(ex)
|
||||
|
||||
|
||||
def resource_mapping():
|
||||
|
|
|
@ -130,7 +130,7 @@ def resource_mapping():
|
|||
|
||||
|
||||
def available_resource_mapping():
|
||||
if not clients.has_client('mistral'):
|
||||
if not clients.has_client(CronTrigger.default_client_name):
|
||||
return {}
|
||||
|
||||
return resource_mapping()
|
||||
|
|
|
@ -28,8 +28,11 @@ from heat.engine import support
|
|||
|
||||
class Workflow(signal_responder.SignalResponder,
|
||||
resource.Resource):
|
||||
|
||||
support_status = support.SupportStatus(version='2015.1')
|
||||
|
||||
default_client_name = 'mistral'
|
||||
|
||||
PROPERTIES = (
|
||||
NAME, TYPE, DESCRIPTION, INPUT, OUTPUT, TASKS, PARAMS
|
||||
) = (
|
||||
|
@ -183,7 +186,7 @@ class Workflow(signal_responder.SignalResponder,
|
|||
}
|
||||
|
||||
def mistral(self):
|
||||
return self.client('mistral')
|
||||
return self.client()
|
||||
|
||||
def FnGetRefId(self):
|
||||
return self._workflow_name()
|
||||
|
@ -415,7 +418,7 @@ def resource_mapping():
|
|||
|
||||
|
||||
def available_resource_mapping():
|
||||
if not clients.has_client('mistral'):
|
||||
if not clients.has_client(Workflow.default_client_name):
|
||||
return {}
|
||||
|
||||
return resource_mapping()
|
||||
|
|
|
@ -47,6 +47,8 @@ class NovaFlavor(resource.Resource):
|
|||
|
||||
support_status = support.SupportStatus(version='2014.2')
|
||||
|
||||
default_client_name = 'nova'
|
||||
|
||||
PROPERTIES = (
|
||||
RAM, VCPUS, DISK, SWAP, EPHEMERAL,
|
||||
RXTX_FACTOR, EXTRA_SPECS,
|
||||
|
@ -133,7 +135,7 @@ class NovaFlavor(resource.Resource):
|
|||
try:
|
||||
self.nova().flavors.delete(self.resource_id)
|
||||
except Exception as e:
|
||||
self.client_plugin('nova').ignore_not_found(e)
|
||||
self.client_plugin().ignore_not_found(e)
|
||||
|
||||
|
||||
def resource_mapping():
|
||||
|
|
|
@ -24,6 +24,8 @@ class ServerGroup(resource.Resource):
|
|||
|
||||
support_status = support.SupportStatus(version='2014.2')
|
||||
|
||||
default_client_name = 'nova'
|
||||
|
||||
PROPERTIES = (
|
||||
NAME, POLICIES
|
||||
) = (
|
||||
|
@ -61,7 +63,7 @@ class ServerGroup(resource.Resource):
|
|||
try:
|
||||
self.nova().server_groups.delete(self.resource_id)
|
||||
except Exception as e:
|
||||
self.client_plugin('nova').ignore_not_found(e)
|
||||
self.client_plugin().ignore_not_found(e)
|
||||
|
||||
def physical_resource_name(self):
|
||||
name = self.properties[self.NAME]
|
||||
|
|
Loading…
Reference in New Issue