summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 c0c6f080d..c492e88a8 100644
--- a/heat/engine/resource.py
+++ b/heat/engine/resource.py
@@ -370,14 +370,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 occurred 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