In 37ef66970510972af54ce6835ec234f3e30a0a88 (in Kilo) we made signalling
a resource asynchronous because things like e.g. scaling an autoscaling
group were too slow to do synchronously (bug 1394095).
However, for resources that don't have a handle_signal() method at all,
this means that if a signal other than one handled by Heat (e.g. to
clear a hook) is received then the user won't be notified of the error.
There will instead be an error message in the logs warning of an
unhandled exception in a thread.
(Previously, similar problems occurred if the user was attempting to
clear a hook and some error occurred. This has since been fixed as bug
1472515, in Liberty.)
If there's no handle_signal() method defined, then calling
Resource.signal() is quick (i.e. it's only going to clear a hook, or
raise an error). So handle this case synchronously. This ensures that
any error is reported to the user and not in the log.
Reviewed: https:/ /review. openstack. org/481775 /git.openstack. org/cgit/ openstack/ heat/commit/ ?id=dcf2463f1f2 1ed6b011730eceb 6977d1582c912f
Committed: https:/
Submitter: Jenkins
Branch: master
commit dcf2463f1f21ed6 b011730eceb6977 d1582c912f
Author: Zane Bitter <email address hidden>
Date: Fri Jul 7 18:44:13 2017 -0400
Fix ResourceActionN otSupported errors in log
In 37ef66970510972 af54ce6835ec234 f3e30a0a88 (in Kilo) we made signalling
a resource asynchronous because things like e.g. scaling an autoscaling
group were too slow to do synchronously (bug 1394095).
However, for resources that don't have a handle_signal() method at all,
this means that if a signal other than one handled by Heat (e.g. to
clear a hook) is received then the user won't be notified of the error.
There will instead be an error message in the logs warning of an
unhandled exception in a thread.
(Previously, similar problems occurred if the user was attempting to
clear a hook and some error occurred. This has since been fixed as bug
1472515, in Liberty.)
If there's no handle_signal() method defined, then calling signal( ) is quick (i.e. it's only going to clear a hook, or
Resource.
raise an error). So handle this case synchronously. This ensures that
any error is reported to the user and not in the log.
Change-Id: I917b4c7d4ab2cd e46148197a3a232 d5dc70f63d7
Related-Bug: #1472515