Report status when engine start

After heat engine starts, it won't report its status, so
updated_at is None by then. If heat engine die before its first
status report, its record will not remove from service-list.

Change-Id: I55801ceb12ec8e4a3746799d3d43c6e9c01c6cd8
Closes-Bug: #1459997
This commit is contained in:
Ethan Lynn 2015-05-31 18:45:46 +08:00
parent b764ee801b
commit 4b9c2caf3b
2 changed files with 11 additions and 2 deletions

View File

@ -1611,6 +1611,10 @@ class EngineService(service.Service):
report_interval=cfg.CONF.periodic_interval)
)
self.service_id = service_ref['id']
service_objects.Service.update_by_id(
cnxt,
self.service_id,
dict(deleted_at=None))
LOG.info(_LI('Service %s is started'), self.service_id)
def service_manage_cleanup(self):

View File

@ -3197,11 +3197,13 @@ class StackServiceTest(common.HeatTestCase):
self.assertTrue(mock_get_all.called)
mock_format_service.assert_called_once_with(mock.ANY)
@mock.patch.object(service_objects.Service, 'update_by_id')
@mock.patch.object(service_objects.Service, 'create')
@mock.patch.object(context, 'get_admin_context')
def test_service_manage_report_start(self,
mock_admin_context,
mock_service_create):
mock_service_create,
mock_service_update):
self.eng.service_id = None
mock_admin_context.return_value = self.ctx
srv = dict(id='mock_id')
@ -3216,8 +3218,11 @@ class StackServiceTest(common.HeatTestCase):
engine_id=self.eng.engine_id,
topic=self.eng.topic,
report_interval=cfg.CONF.periodic_interval))
self.assertEqual(self.eng.service_id, srv['id'])
mock_service_update.assert_called_once_with(
self.ctx,
self.eng.service_id,
dict(deleted_at=None))
@mock.patch.object(service_objects.Service, 'get_all_by_args')
@mock.patch.object(service_objects.Service, 'delete')