summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-02-10 15:40:30 +0000
committerGerrit Code Review <review@openstack.org>2016-02-10 15:40:30 +0000
commit7609d19468db1cc03bfa1a9950f0d7b369a919a1 (patch)
tree78a249f51cc959fceb82f1df2df106825191bde6
parentf15dbbb70ca7b5c648491c5e2bfd3f56a3b9a662 (diff)
parent6421e63cd42e39a0e9a14c17ffe1d90f9ee10bf4 (diff)
downloadheat-7609d19468db1cc03bfa1a9950f0d7b369a919a1.tar.gz
Merge "Prevent phantom user hooks" into stable/kilo
-rw-r--r--heat/engine/resource.py20
1 files changed, 12 insertions, 8 deletions
diff --git a/heat/engine/resource.py b/heat/engine/resource.py
index 0c01504de..9011246c1 100644
--- a/heat/engine/resource.py
+++ b/heat/engine/resource.py
@@ -293,14 +293,18 @@ class Resource(object):
% {'a': action, 'h': hook})
self.trigger_hook(hook)
LOG.info(_LI('Reached hook on %s'), six.text_type(self))
- while self.has_hook(hook) and self.status != self.FAILED:
- try:
- yield
- except Exception:
- self.clear_hook(hook)
- self._add_event(
- self.action, self.status,
- "Failure occured while waiting.")
+
+ while self.has_hook(hook) and self.status != self.FAILED:
+ try:
+ yield
+ except BaseException as exc:
+ self.clear_hook(hook)
+ self._add_event(
+ self.action, self.status,
+ "Failure occurred while waiting.")
+ if (isinstance(exc, AssertionError) or
+ not isinstance(exc, Exception)):
+ raise
def has_nested(self):
# common resources have not nested, StackResource overrides it