diff --git a/heat/engine/service.py b/heat/engine/service.py index 31b6874da..ed7ee65c6 100644 --- a/heat/engine/service.py +++ b/heat/engine/service.py @@ -1872,12 +1872,13 @@ class EngineService(service.ServiceBase): if callable(rsrc.signal): rsrc._signal_check_action() rsrc._signal_check_hook(details) - if sync_call: + if sync_call or not callable(getattr(rsrc, 'handle_signal', None)): _resource_signal(stack, rsrc, details, False) - return rsrc.metadata_get() else: self.thread_group_mgr.start(stack.id, _resource_signal, stack, rsrc, details, False) + if sync_call: + return rsrc.metadata_get() @context.request_context def resource_mark_unhealthy(self, cnxt, stack_identity, resource_name, diff --git a/heat_integrationtests/api/gabbits/resources.yaml b/heat_integrationtests/api/gabbits/resources.yaml index 164f4cb3e..41da4448d 100644 --- a/heat_integrationtests/api/gabbits/resources.yaml +++ b/heat_integrationtests/api/gabbits/resources.yaml @@ -82,7 +82,7 @@ tests: - name: signal resource POST: $LAST_URL/signal - status: 200 + status: 400 - name: delete stack with resources DELETE: /stacks/$ENVIRON['PREFIX']-rsrcstack