diff --git a/nova/api/openstack/compute/contrib/services.py b/nova/api/openstack/compute/contrib/services.py index 76eec7ce4c20..05e7fe45ac5f 100644 --- a/nova/api/openstack/compute/contrib/services.py +++ b/nova/api/openstack/compute/contrib/services.py @@ -166,7 +166,10 @@ class ServiceController(object): 'status': status, }, } - status_detail = {'disabled': disabled} + status_detail = { + 'disabled': disabled, + 'disabled_reason': None, + } if id == "disable-log-reason": reason = body['disabled_reason'] if not self._is_valid_as_reason(reason): diff --git a/nova/tests/api/openstack/compute/contrib/test_services.py b/nova/tests/api/openstack/compute/contrib/test_services.py index c9d0c76e5d03..c53461534e94 100644 --- a/nova/tests/api/openstack/compute/contrib/test_services.py +++ b/nova/tests/api/openstack/compute/contrib/test_services.py @@ -320,10 +320,15 @@ class ServicesTest(test.TestCase): self.assertEqual(res_dict, response) def test_services_enable(self): + def _service_update(context, service_id, values): + self.assertEqual(values['disabled_reason'], None) + + self.stubs.Set(db, "service_update", _service_update) + body = {'host': 'host1', 'binary': 'nova-compute'} req = fakes.HTTPRequest.blank('/v2/fake/os-services/enable') - res_dict = self.controller.update(req, "enable", body) + res_dict = self.controller.update(req, "enable", body) self.assertEqual(res_dict['service']['status'], 'enabled') self.assertFalse('disabled_reason' in res_dict['service'])