diff options
author | Jenkins <jenkins@review.openstack.org> | 2016-02-10 15:24:43 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2016-02-10 15:24:44 +0000 |
commit | 86bbbd40b24fb0a33558690f8bed966daa9bb364 (patch) | |
tree | e7963fee0fa45a1793d05a1e6026157791ffac58 | |
parent | 703c9719ef536380e159f565822e2b8a01748996 (diff) | |
parent | 6568ca92d4cc87b71b56526244f33c7f65e2d6ff (diff) | |
download | heat-86bbbd40b24fb0a33558690f8bed966daa9bb364.tar.gz |
Merge "Prevent phantom user hooks" into stable/liberty
-rw-r--r-- | heat/engine/resource.py | 20 |
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 |