From 82b8fd8c17d94e5c18ca3bdbca94e60978d1952b Mon Sep 17 00:00:00 2001 From: Zane Bitter Date: Thu, 22 Sep 2016 17:16:26 -0400 Subject: [PATCH] Get rid of circular reference in Event class This would have been causing the entire stack to remain in memory until garbage-collected. We only need the identifier, so store that instead. Change-Id: If965b4415d7640b93edd153f2893a7e0c04bc8d6 Partial-Bug: #1626675 --- heat/engine/event.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/heat/engine/event.py b/heat/engine/event.py index 1aedfa5116..35b5f20403 100644 --- a/heat/engine/event.py +++ b/heat/engine/event.py @@ -37,7 +37,7 @@ class Event(object): already in the database. """ self.context = context - self.stack = stack + self._stack_identifier = stack.identifier() self.action = action self.status = status self.reason = reason @@ -57,7 +57,7 @@ class Event(object): ev = { 'resource_name': self.resource_name, 'physical_resource_id': self.physical_resource_id, - 'stack_id': self.stack.id, + 'stack_id': self._stack_identifier.stack_id, 'resource_action': self.action, 'resource_status': self.status, 'resource_status_reason': self.reason, @@ -114,7 +114,7 @@ class Event(object): return None res_id = identifier.ResourceIdentifier( - resource_name=self.resource_name, **self.stack.identifier()) + resource_name=self.resource_name, **self._stack_identifier) return identifier.EventIdentifier(event_id=str(self.uuid), **res_id) @@ -127,7 +127,7 @@ class Event(object): 'payload': { 'resource_name': self.resource_name, 'physical_resource_id': self.physical_resource_id, - 'stack_id': self.stack.id, + 'stack_id': self._stack_identifier.stack_id, 'resource_action': self.action, 'resource_status': self.status, 'resource_status_reason': self.reason,