From 6a7a735ec1cae214b317254d1c4cb04cad230c82 Mon Sep 17 00:00:00 2001 From: Zane Bitter Date: Thu, 13 Jun 2013 20:03:28 +0200 Subject: [PATCH] Cache snippets in StackUpdate Change-Id: I1720a7c14edaf1d70b0894c2a4655f101d1c38eb --- heat/engine/update.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/heat/engine/update.py b/heat/engine/update.py index a9a39890..daa3e134 100644 --- a/heat/engine/update.py +++ b/heat/engine/update.py @@ -31,6 +31,9 @@ class StackUpdate(object): self.existing_stack = existing_stack self.new_stack = new_stack + self.existing_snippets = dict((r.name, r.parsed_template()) + for r in self.existing_stack) + def __str__(self): return '%s Update' % str(self.existing_stack) @@ -84,14 +87,13 @@ class StackUpdate(object): def _update_resource(self, new_res): res_name = new_res.name - if res_name not in self.existing_stack: + if res_name not in self.existing_snippets: return # Compare resolved pre/post update resource snippets, # note the new resource snippet is resolved in the context # of the existing stack (which is the stack being updated) - existing_snippet = self.existing_stack[res_name].\ - parsed_template(cached=True) + existing_snippet = self.existing_snippets[res_name] new_snippet = self.existing_stack.resolve_runtime_data(new_res.t) if new_snippet != existing_snippet: -- 2.45.2