summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-02-10 15:24:43 +0000
committerGerrit Code Review <review@openstack.org>2016-02-10 15:24:44 +0000
commit86bbbd40b24fb0a33558690f8bed966daa9bb364 (patch)
treee7963fee0fa45a1793d05a1e6026157791ffac58
parent703c9719ef536380e159f565822e2b8a01748996 (diff)
parent6568ca92d4cc87b71b56526244f33c7f65e2d6ff (diff)
downloadheat-86bbbd40b24fb0a33558690f8bed966daa9bb364.tar.gz
Merge "Prevent phantom user hooks" into stable/liberty
-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