diff --git a/heat/engine/resource.py b/heat/engine/resource.py index a9fd6f8f7b..98c59ba73a 100644 --- a/heat/engine/resource.py +++ b/heat/engine/resource.py @@ -423,6 +423,8 @@ class Resource(object): if before is None: before = self.parsed_template() + elif before == after: + return if (self.action, self.status) in ((self.CREATE, self.IN_PROGRESS), (self.UPDATE, self.IN_PROGRESS)): diff --git a/heat/engine/update.py b/heat/engine/update.py index ee62b79b68..fe225b1ae6 100644 --- a/heat/engine/update.py +++ b/heat/engine/update.py @@ -141,16 +141,13 @@ class StackUpdate(object): yield self._create_resource(new_res) - @scheduler.wrappertask def _update_in_place(self, existing_res, new_res): - # Compare resolved pre/post update resource snippets, - # note the new resource snippet is resolved in the context + # Note the new resource snippet is resolved in the context # of the existing stack (which is the stack being updated) existing_snippet = self.existing_snippets[existing_res.name] new_snippet = self.existing_stack.resolve_runtime_data(new_res.t) - if new_snippet != existing_snippet: - yield existing_res.update(new_snippet, existing_snippet) + return existing_res.update(new_snippet, existing_snippet) @scheduler.wrappertask def _process_existing_resource_update(self, existing_res):