diff options
-rw-r--r-- | heat/engine/resource.py | 7 | ||||
-rw-r--r-- | heat/tests/test_signal.py | 18 |
2 files changed, 23 insertions, 2 deletions
diff --git a/heat/engine/resource.py b/heat/engine/resource.py index d65f67dad..2e3532b24 100644 --- a/heat/engine/resource.py +++ b/heat/engine/resource.py @@ -880,6 +880,13 @@ class Resource(object): elif 'state' in details: # this is from watchrule return 'alarm state changed to %(state)s' % details + elif 'deploy_status_code' in details: + # this is for SoftwareDeployment + if details['deploy_status_code'] == 0: + return 'deployment succeeded' + else: + return ('deployment failed ' + '(%(deploy_status_code)s)' % details) return 'Unknown' diff --git a/heat/tests/test_signal.py b/heat/tests/test_signal.py index 090ab4e8b..bc0f5c2c8 100644 --- a/heat/tests/test_signal.py +++ b/heat/tests/test_signal.py @@ -295,6 +295,16 @@ class SignalTest(HeatTestCase): none_details = None none_expected = 'No signal details provided' + # signal from a successful deployment + sds_details = {'deploy_stdout': 'foo', 'deploy_stderr': 'bar', + 'deploy_status_code': 0} + sds_expected = 'deployment succeeded' + + # signal from a failed deployment + sdf_details = {'deploy_stdout': 'foo', 'deploy_stderr': 'bar', + 'deploy_status_code': -1} + sdf_expected = 'deployment failed (-1)' + # to confirm we get a string reason self.m.StubOutWithMock(generic_resource.SignalResource, '_add_event') @@ -306,11 +316,15 @@ class SignalTest(HeatTestCase): 'signal', 'COMPLETE', str_expected).AndReturn(None) generic_resource.SignalResource._add_event( 'signal', 'COMPLETE', none_expected).AndReturn(None) + generic_resource.SignalResource._add_event( + 'signal', 'COMPLETE', sds_expected).AndReturn(None) + generic_resource.SignalResource._add_event( + 'signal', 'COMPLETE', sdf_expected).AndReturn(None) self.m.ReplayAll() - for test_d in (ceilo_details, watch_details, - str_details, none_details): + for test_d in (ceilo_details, watch_details, str_details, + none_details, sds_details, sdf_details): rsrc.signal(details=test_d) self.m.VerifyAll() |