dcf2463f1f
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. Change-Id: I917b4c7d4ab2cde46148197a3a232d5dc70f63d7 Related-Bug: #1472515