Merge "Catch exceptions in service status report"
This commit is contained in:
commit
9f7f0e470e
|
@ -1603,14 +1603,7 @@ class EngineService(service.Service):
|
||||||
def service_manage_report(self):
|
def service_manage_report(self):
|
||||||
cnxt = context.get_admin_context()
|
cnxt = context.get_admin_context()
|
||||||
|
|
||||||
if self.service_id is not None:
|
if self.service_id is None:
|
||||||
# Service is already running
|
|
||||||
service_objects.Service.update_by_id(
|
|
||||||
cnxt,
|
|
||||||
self.service_id,
|
|
||||||
dict(deleted_at=None))
|
|
||||||
LOG.info(_LI('Service %s is updated'), self.service_id)
|
|
||||||
else:
|
|
||||||
service_ref = service_objects.Service.create(
|
service_ref = service_objects.Service.create(
|
||||||
cnxt,
|
cnxt,
|
||||||
dict(host=self.host,
|
dict(host=self.host,
|
||||||
|
@ -1621,11 +1614,18 @@ class EngineService(service.Service):
|
||||||
report_interval=cfg.CONF.periodic_interval)
|
report_interval=cfg.CONF.periodic_interval)
|
||||||
)
|
)
|
||||||
self.service_id = service_ref['id']
|
self.service_id = service_ref['id']
|
||||||
|
LOG.info(_LI('Service %s is started'), self.service_id)
|
||||||
|
|
||||||
|
try:
|
||||||
service_objects.Service.update_by_id(
|
service_objects.Service.update_by_id(
|
||||||
cnxt,
|
cnxt,
|
||||||
self.service_id,
|
self.service_id,
|
||||||
dict(deleted_at=None))
|
dict(deleted_at=None))
|
||||||
LOG.info(_LI('Service %s is started'), self.service_id)
|
LOG.info(_LI('Service %s is updated'), self.service_id)
|
||||||
|
except Exception as ex:
|
||||||
|
LOG.error(_LE('Service %(service_id)s update '
|
||||||
|
'failed: %(error)s'),
|
||||||
|
{'service_id': self.service_id, 'error': ex})
|
||||||
|
|
||||||
def service_manage_cleanup(self):
|
def service_manage_cleanup(self):
|
||||||
cnxt = context.get_admin_context()
|
cnxt = context.get_admin_context()
|
||||||
|
|
|
@ -116,6 +116,17 @@ class ServiceEngineTest(common.HeatTestCase):
|
||||||
'mock_id',
|
'mock_id',
|
||||||
dict(deleted_at=None))
|
dict(deleted_at=None))
|
||||||
|
|
||||||
|
@mock.patch.object(service_objects.Service, 'update_by_id')
|
||||||
|
@mock.patch.object(context, 'get_admin_context')
|
||||||
|
def test_service_manage_report_update_fail(self, mock_admin_context,
|
||||||
|
mock_service_update):
|
||||||
|
self.eng.service_id = 'mock_id'
|
||||||
|
mock_admin_context.return_value = self.ctx
|
||||||
|
mock_service_update.side_effect = Exception()
|
||||||
|
self.eng.service_manage_report()
|
||||||
|
msg = 'Service %s update failed' % self.eng.service_id
|
||||||
|
self.assertIn(msg, self.LOG.output)
|
||||||
|
|
||||||
def test_stop_rpc_server(self):
|
def test_stop_rpc_server(self):
|
||||||
with mock.patch.object(self.eng,
|
with mock.patch.object(self.eng,
|
||||||
'_rpc_server') as mock_rpc_server:
|
'_rpc_server') as mock_rpc_server:
|
||||||
|
|
Loading…
Reference in New Issue