From 01580af10a89d93c9005c698e644c1665ab09a03 Mon Sep 17 00:00:00 2001 From: Peter Razumovsky Date: Wed, 1 Feb 2017 14:28:06 +0400 Subject: [PATCH] Fix restore_prev_rsrc assert weakref Currently restore_prev_rsrc is broken in cause of weakref assertion error - it raises during building resources for backup stack. Change-Id: I78f896455f02900389f7c5055264b35f86bb7d18 Closes-bug: #1661259 --- heat/engine/resources/openstack/neutron/port.py | 5 +++-- heat/engine/resources/openstack/nova/server_network_mixin.py | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/heat/engine/resources/openstack/neutron/port.py b/heat/engine/resources/openstack/neutron/port.py index 3103c28752..88523cf091 100644 --- a/heat/engine/resources/openstack/neutron/port.py +++ b/heat/engine/resources/openstack/neutron/port.py @@ -536,8 +536,9 @@ class Port(neutron.NeutronResource): def restore_prev_rsrc(self, convergence=False): # In case of convergence, during rollback, the previous rsrc is # already selected and is being acted upon. - bakup_resources = self.stack._backup_stack().resources - prev_port = self if convergence else bakup_resources.get(self.name) + backup_stack = self.stack._backup_stack() + backup_res = backup_stack.resources.get(self.name) + prev_port = self if convergence else backup_res fixed_ips = prev_port.data().get('port_fip', []) props = {'fixed_ips': []} diff --git a/heat/engine/resources/openstack/nova/server_network_mixin.py b/heat/engine/resources/openstack/nova/server_network_mixin.py index 40349860bd..979e2b9251 100644 --- a/heat/engine/resources/openstack/nova/server_network_mixin.py +++ b/heat/engine/resources/openstack/nova/server_network_mixin.py @@ -477,7 +477,8 @@ class ServerNetworkMixin(object): # In case of convergence, during rollback, the previous rsrc is # already selected and is being acted upon. - backup_res = self.stack._backup_stack().resources.get(self.name) + backup_stack = self.stack._backup_stack() + backup_res = backup_stack.resources.get(self.name) prev_server = self if convergence else backup_res if convergence: