Fix: nova-manage throws uncaught exception on invalid host/service

Add a test case for this too.

Fix bug 1154089.

Change-Id: I3a60e581a9fac945fddf72c4f037ca5cae0005fc
This commit is contained in:
Hans Lindgren
2013-03-12 14:42:36 +01:00
parent e65bbf40c8
commit 318388dc6e

View File

@@ -675,11 +675,13 @@ class ServiceCommands(object):
def enable(self, host, service):
"""Enable scheduling for a service."""
ctxt = context.get_admin_context()
svc = db.service_get_by_args(ctxt, host, service)
if not svc:
print _("Unable to find service")
return
db.service_update(ctxt, svc['id'], {'disabled': False})
try:
svc = db.service_get_by_args(ctxt, host, service)
db.service_update(ctxt, svc['id'], {'disabled': False})
except exception.NotFound as ex:
print _("error: %s") % ex
sys.exit(2)
print _("Service %(service)s on host %(host)s enabled.") % locals()
@args('--host', dest='host', metavar='<host>', help='Host')
@args('--service', dest='service', metavar='<service>',
@@ -687,11 +689,13 @@ class ServiceCommands(object):
def disable(self, host, service):
"""Disable scheduling for a service."""
ctxt = context.get_admin_context()
svc = db.service_get_by_args(ctxt, host, service)
if not svc:
print _("Unable to find service")
return
db.service_update(ctxt, svc['id'], {'disabled': True})
try:
svc = db.service_get_by_args(ctxt, host, service)
db.service_update(ctxt, svc['id'], {'disabled': True})
except exception.NotFound as ex:
print _("error: %s") % ex
sys.exit(2)
print _("Service %(service)s on host %(host)s disabled.") % locals()
@args('--host', dest='host', metavar='<host>', help='Host')
def describe_resource(self, host):