diff options
author | Jenkins <jenkins@review.openstack.org> | 2016-02-10 15:40:30 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2016-02-10 15:40:30 +0000 |
commit | 7609d19468db1cc03bfa1a9950f0d7b369a919a1 (patch) | |
tree | 78a249f51cc959fceb82f1df2df106825191bde6 | |
parent | f15dbbb70ca7b5c648491c5e2bfd3f56a3b9a662 (diff) | |
parent | 6421e63cd42e39a0e9a14c17ffe1d90f9ee10bf4 (diff) | |
download | heat-7609d19468db1cc03bfa1a9950f0d7b369a919a1.tar.gz |
Merge "Prevent phantom user hooks" into stable/kilo
-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 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 |