Fix exception during service update
The function objects.Service.get_by_args raises HostBinaryNotFound exception, but in service update function, it catches ServiceNotFound exception by mistake. This patch is to remove HostBinaryNotFound and use ServiceNotFound to make things simple and consistent. Change-Id: Ic2ef79ca03393f3b1eb5bb89d4ffcf92d76460c6 Closes-bug: #1551101
This commit is contained in:
parent
687ea8dd30
commit
802c5633e0
@ -450,7 +450,7 @@ class ServiceCommands(object):
|
||||
try:
|
||||
svc = objects.Service.get_by_args(ctxt, host_name, binary)
|
||||
svc.destroy()
|
||||
except exception.HostBinaryNotFound as e:
|
||||
except exception.ServiceNotFound as e:
|
||||
print(_("Host not found. Failed to remove %(service)s"
|
||||
" on %(host)s.") %
|
||||
{'service': binary, 'host': host_name})
|
||||
|
@ -426,7 +426,8 @@ def service_get_by_host_and_topic(context, host, topic):
|
||||
filter_by(topic=topic).\
|
||||
first()
|
||||
if not result:
|
||||
raise exception.ServiceNotFound(service_id=None)
|
||||
raise exception.ServiceNotFound(service_id=topic,
|
||||
host=host)
|
||||
return result
|
||||
|
||||
|
||||
@ -441,7 +442,8 @@ def service_get_by_args(context, host, binary):
|
||||
if host == result['host']:
|
||||
return result
|
||||
|
||||
raise exception.HostBinaryNotFound(host=host, binary=binary)
|
||||
raise exception.ServiceNotFound(service_id=binary,
|
||||
host=host)
|
||||
|
||||
|
||||
@require_admin_context
|
||||
|
@ -362,7 +362,14 @@ class ImageNotFound(NotFound):
|
||||
|
||||
|
||||
class ServiceNotFound(NotFound):
|
||||
message = _("Service %(service_id)s could not be found.")
|
||||
|
||||
def __init__(self, message=None, **kwargs):
|
||||
if kwargs.get('host', None):
|
||||
self.message = _("Service %(service_id)s could not be "
|
||||
"found on host %(host)s.")
|
||||
else:
|
||||
self.message = _("Service %(service_id)s could not be found.")
|
||||
super(ServiceNotFound, self).__init__(None, **kwargs)
|
||||
|
||||
|
||||
class ServiceTooOld(Invalid):
|
||||
@ -381,10 +388,6 @@ class SchedulerHostWeigherNotFound(NotFound):
|
||||
message = _("Scheduler Host Weigher %(weigher_name)s could not be found.")
|
||||
|
||||
|
||||
class HostBinaryNotFound(NotFound):
|
||||
message = _("Could not find binary %(binary)s on host %(host)s.")
|
||||
|
||||
|
||||
class InvalidReservationExpiration(Invalid):
|
||||
message = _("Invalid reservation expiration %(expire)s.")
|
||||
|
||||
|
@ -240,7 +240,7 @@ class DBAPIServiceTestCase(BaseTest):
|
||||
self._assertEqualObjects(services[1], service2)
|
||||
|
||||
def test_service_get_by_args_not_found_exception(self):
|
||||
self.assertRaises(exception.HostBinaryNotFound,
|
||||
self.assertRaises(exception.ServiceNotFound,
|
||||
db.service_get_by_args,
|
||||
self.ctxt, 'non-exists-host', 'a')
|
||||
|
||||
@ -282,7 +282,7 @@ class DBAPIServiceTestCase(BaseTest):
|
||||
service2 = db.service_get_by_args(self.ctxt, 'HOST', 'a')
|
||||
self._assertEqualObjects(services[1], service2)
|
||||
|
||||
self.assertRaises(exception.HostBinaryNotFound,
|
||||
self.assertRaises(exception.ServiceNotFound,
|
||||
db.service_get_by_args,
|
||||
self.ctxt, 'Host', 'a')
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user