diff options
Diffstat (limited to 'heat/engine')
20 files changed, 40 insertions, 0 deletions
diff --git a/heat/engine/resources/openstack/barbican/container.py b/heat/engine/resources/openstack/barbican/container.py index 94777a983..91d205e14 100644 --- a/heat/engine/resources/openstack/barbican/container.py +++ b/heat/engine/resources/openstack/barbican/container.py @@ -143,6 +143,8 @@ class GenericContainer(resource.Resource): return container.status == 'ACTIVE' def _resolve_attribute(self, name): + if self.resource_id is None: + return container = self.client().containers.get(self.resource_id) return getattr(container, name, None) diff --git a/heat/engine/resources/openstack/barbican/order.py b/heat/engine/resources/openstack/barbican/order.py index c2a068316..814473745 100644 --- a/heat/engine/resources/openstack/barbican/order.py +++ b/heat/engine/resources/openstack/barbican/order.py @@ -255,6 +255,8 @@ class Order(resource.Resource): return order.status == 'ACTIVE' def _resolve_attribute(self, name): + if self.resource_id is None: + return client = self.client() order = client.orders.get(self.resource_id) if name in ( diff --git a/heat/engine/resources/openstack/barbican/secret.py b/heat/engine/resources/openstack/barbican/secret.py index c7dabfd8f..3503cdad7 100644 --- a/heat/engine/resources/openstack/barbican/secret.py +++ b/heat/engine/resources/openstack/barbican/secret.py @@ -179,6 +179,8 @@ class Secret(resource.Resource): value='application/octet-stream') def _resolve_attribute(self, name): + if self.resource_id is None: + return secret = self.client().secrets.get(self.resource_id) if name == self.DECRYPTED_PAYLOAD: diff --git a/heat/engine/resources/openstack/cinder/volume.py b/heat/engine/resources/openstack/cinder/volume.py index 1940fc518..c3684ed1c 100644 --- a/heat/engine/resources/openstack/cinder/volume.py +++ b/heat/engine/resources/openstack/cinder/volume.py @@ -281,6 +281,8 @@ class CinderVolume(vb.BaseVolume, sh.SchedulerHintsMixin): return arguments def _resolve_attribute(self, name): + if self.resource_id is None: + return cinder = self.client() vol = cinder.volumes.get(self.resource_id) if name == self.METADATA_ATTR: diff --git a/heat/engine/resources/openstack/designate/domain.py b/heat/engine/resources/openstack/designate/domain.py index 128cf32e7..c9f5502ad 100644 --- a/heat/engine/resources/openstack/designate/domain.py +++ b/heat/engine/resources/openstack/designate/domain.py @@ -109,6 +109,8 @@ class DesignateDomain(resource.Resource): self.client_plugin().domain_update(**args) def _resolve_attribute(self, name): + if self.resource_id is None: + return if name == self.SERIAL: domain = self.client().domains.get(self.resource_id) return domain.serial diff --git a/heat/engine/resources/openstack/heat/remote_stack.py b/heat/engine/resources/openstack/heat/remote_stack.py index fc807a636..f67e19063 100644 --- a/heat/engine/resources/openstack/heat/remote_stack.py +++ b/heat/engine/resources/openstack/heat/remote_stack.py @@ -289,6 +289,8 @@ class RemoteStack(resource.Resource): return self._check_action_complete(action=self.CHECK) def _resolve_attribute(self, name): + if self.resource_id is None: + return stack = self.heat().stacks.get(stack_id=self.resource_id) if name == self.NAME_ATTR: value = getattr(stack, name, None) diff --git a/heat/engine/resources/openstack/manila/share.py b/heat/engine/resources/openstack/manila/share.py index 84fb5544a..433da56ce 100644 --- a/heat/engine/resources/openstack/manila/share.py +++ b/heat/engine/resources/openstack/manila/share.py @@ -195,6 +195,8 @@ class ManilaShare(resource.Resource): return self.client().shares.get(self.resource_id) def _resolve_attribute(self, name): + if self.resource_id is None: + return share = self._request_share() return six.text_type(getattr(share, name)) diff --git a/heat/engine/resources/openstack/manila/share_network.py b/heat/engine/resources/openstack/manila/share_network.py index 1c047ba98..6dbe399dd 100644 --- a/heat/engine/resources/openstack/manila/share_network.py +++ b/heat/engine/resources/openstack/manila/share_network.py @@ -113,6 +113,8 @@ class ManilaShareNetwork(resource.Resource): return self.client().share_networks.get(self.resource_id) def _resolve_attribute(self, name): + if self.resource_id is None: + return network = self._request_network() return getattr(network, name, None) diff --git a/heat/engine/resources/openstack/mistral/cron_trigger.py b/heat/engine/resources/openstack/mistral/cron_trigger.py index 73ca60f39..67bcb387c 100644 --- a/heat/engine/resources/openstack/mistral/cron_trigger.py +++ b/heat/engine/resources/openstack/mistral/cron_trigger.py @@ -135,6 +135,8 @@ class CronTrigger(resource.Resource): self.resource_id_set(cron_trigger.name) def _resolve_attribute(self, name): + if self.resource_id is None: + return trigger = self.client().cron_triggers.get(self.resource_id) if name == self.NEXT_EXECUTION_TIME: return trigger.next_execution_time diff --git a/heat/engine/resources/openstack/neutron/neutron.py b/heat/engine/resources/openstack/neutron/neutron.py index 556295793..c54a35fe4 100644 --- a/heat/engine/resources/openstack/neutron/neutron.py +++ b/heat/engine/resources/openstack/neutron/neutron.py @@ -95,6 +95,8 @@ class NeutronResource(resource.Resource): result=_('Resource is not built')) def _resolve_attribute(self, name): + if self.resource_id is None: + return attributes = self._show_resource() return attributes[name] diff --git a/heat/engine/resources/openstack/neutron/port.py b/heat/engine/resources/openstack/neutron/port.py index 2728a14d8..24107facd 100644 --- a/heat/engine/resources/openstack/neutron/port.py +++ b/heat/engine/resources/openstack/neutron/port.py @@ -485,6 +485,8 @@ class Port(neutron.NeutronResource): return True def _resolve_attribute(self, name): + if self.resource_id is None: + return if name == self.SUBNETS_ATTR: subnets = [] try: diff --git a/heat/engine/resources/openstack/nova/flavor.py b/heat/engine/resources/openstack/nova/flavor.py index c162459bf..4b0d6a7d8 100644 --- a/heat/engine/resources/openstack/nova/flavor.py +++ b/heat/engine/resources/openstack/nova/flavor.py @@ -155,6 +155,8 @@ class NovaFlavor(resource.Resource): flavor.set_keys(new_keys) def _resolve_attribute(self, name): + if self.resource_id is None: + return flavor = self.client().flavors.get(self.resource_id) if name == self.IS_PUBLIC_ATTR: return getattr(flavor, name) diff --git a/heat/engine/resources/openstack/nova/floatingip.py b/heat/engine/resources/openstack/nova/floatingip.py index 5481b995c..7684ac5e4 100644 --- a/heat/engine/resources/openstack/nova/floatingip.py +++ b/heat/engine/resources/openstack/nova/floatingip.py @@ -98,6 +98,8 @@ class NovaFloatingIp(resource.Resource): self._floating_ip = floating_ip def _resolve_attribute(self, key): + if self.resource_id is None: + return floating_ip = self._get_resource() attributes = { self.POOL_ATTR: getattr(floating_ip, self.POOL_ATTR, None), diff --git a/heat/engine/resources/openstack/nova/server.py b/heat/engine/resources/openstack/nova/server.py index 0d06bef14..61313bb81 100644 --- a/heat/engine/resources/openstack/nova/server.py +++ b/heat/engine/resources/openstack/nova/server.py @@ -1117,6 +1117,8 @@ class Server(stack_user.StackUser, sh.SchedulerHintsMixin, return nets def _resolve_attribute(self, name): + if self.resource_id is None: + return if name == self.FIRST_ADDRESS: return self.client_plugin().server_to_ipaddress( self.resource_id) or '' diff --git a/heat/engine/resources/openstack/sahara/cluster.py b/heat/engine/resources/openstack/sahara/cluster.py index def1c928f..1852cf28b 100644 --- a/heat/engine/resources/openstack/sahara/cluster.py +++ b/heat/engine/resources/openstack/sahara/cluster.py @@ -279,6 +279,8 @@ class SaharaCluster(resource.Resource): return False def _resolve_attribute(self, name): + if self.resource_id is None: + return cluster = self.client().clusters.get(self.resource_id) return getattr(cluster, name, None) diff --git a/heat/engine/resources/openstack/senlin/cluster.py b/heat/engine/resources/openstack/senlin/cluster.py index 79265283d..df9932845 100644 --- a/heat/engine/resources/openstack/senlin/cluster.py +++ b/heat/engine/resources/openstack/senlin/cluster.py @@ -254,6 +254,8 @@ class Cluster(resource.Resource): raise exception.StackValidationFailed(message=msg) def _resolve_attribute(self, name): + if self.resource_id is None: + return cluster = self.client().get_cluster(self.resource_id) return getattr(cluster, name, None) diff --git a/heat/engine/resources/openstack/senlin/node.py b/heat/engine/resources/openstack/senlin/node.py index 2ca7d53e8..2b5156a06 100644 --- a/heat/engine/resources/openstack/senlin/node.py +++ b/heat/engine/resources/openstack/senlin/node.py @@ -136,6 +136,8 @@ class Node(resource.Resource): return self.client_plugin().check_action_status(action_id) def _resolve_attribute(self, name): + if self.resource_id is None: + return node = self.client().get_node(self.resource_id, details=True) return getattr(node, name, None) diff --git a/heat/engine/resources/openstack/senlin/receiver.py b/heat/engine/resources/openstack/senlin/receiver.py index b383d14fa..ff903e0da 100644 --- a/heat/engine/resources/openstack/senlin/receiver.py +++ b/heat/engine/resources/openstack/senlin/receiver.py @@ -121,6 +121,8 @@ class Receiver(resource.Resource): return recv.to_dict() def _resolve_attribute(self, name): + if self.resource_id is None: + return recv = self.client().get_receiver(self.resource_id) return getattr(recv, name, None) diff --git a/heat/engine/resources/openstack/trove/cluster.py b/heat/engine/resources/openstack/trove/cluster.py index ec6c542f7..64372d66c 100644 --- a/heat/engine/resources/openstack/trove/cluster.py +++ b/heat/engine/resources/openstack/trove/cluster.py @@ -237,6 +237,8 @@ class TroveCluster(resource.Resource): self.DATASTORE_TYPE, self.DATASTORE_VERSION) def _resolve_attribute(self, name): + if self.resource_id is None: + return if name == self.INSTANCES_ATTR: instances = [] cluster = self.client().clusters.get(self.resource_id) diff --git a/heat/engine/resources/openstack/trove/os_database.py b/heat/engine/resources/openstack/trove/os_database.py index 833b0f31a..b0f94a8f1 100644 --- a/heat/engine/resources/openstack/trove/os_database.py +++ b/heat/engine/resources/openstack/trove/os_database.py @@ -674,6 +674,8 @@ class OSDBInstance(resource.Resource): return self._href def _resolve_attribute(self, name): + if self.resource_id is None: + return if name == self.HOSTNAME: return self.dbinstance.hostname elif name == self.HREF: |