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
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})
filter_by(topic=topic).\
first()
if not result:
- raise exception.ServiceNotFound(service_id=None)
+ raise exception.ServiceNotFound(service_id=topic,
+ host=host)
return result
if host == result['host']:
return result
- raise exception.HostBinaryNotFound(host=host, binary=binary)
+ raise exception.ServiceNotFound(service_id=binary,
+ host=host)
@require_admin_context
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):
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.")
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')
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')