summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2018-09-19 16:30:32 +0000
committerGerrit Code Review <review@openstack.org>2018-09-19 16:30:32 +0000
commitfff857bd7babb16fdc52d5d5e83e8191bd178849 (patch)
tree19ca700bd1eaded86e107f34ac22661b661cfddc
parentfe0c1033d900c59d879997a1bba4722ae6d420c6 (diff)
parentf5b8a0a09baa3522f5c6f120d84db738cc236ab1 (diff)
downloadnova-fff857bd7babb16fdc52d5d5e83e8191bd178849.tar.gz
Merge "Return 400 when compute host is not found" into stable/ocata
-rw-r--r--nova/api/openstack/compute/migrate_server.py3
-rw-r--r--nova/tests/unit/api/openstack/compute/test_migrate_server.py21
2 files changed, 22 insertions, 2 deletions
diff --git a/nova/api/openstack/compute/migrate_server.py b/nova/api/openstack/compute/migrate_server.py
index 44bf0a57f7..cb543d7b0e 100644
--- a/nova/api/openstack/compute/migrate_server.py
+++ b/nova/api/openstack/compute/migrate_server.py
@@ -102,7 +102,6 @@ class MigrateServerController(wsgi.Controller):
raise exc.HTTPNotFound(explanation=e.format_message())
except (exception.NoValidHost,
exception.ComputeServiceUnavailable,
- exception.ComputeHostNotFound,
exception.InvalidHypervisorType,
exception.InvalidCPUInfo,
exception.UnableToMigrateToSelf,
@@ -121,6 +120,8 @@ class MigrateServerController(wsgi.Controller):
raise exc.HTTPBadRequest(explanation=ex.format_message())
except exception.InstanceIsLocked as e:
raise exc.HTTPConflict(explanation=e.format_message())
+ except exception.ComputeHostNotFound as e:
+ raise exc.HTTPBadRequest(explanation=e.format_message())
except exception.InstanceInvalidState as state_error:
common.raise_http_conflict_for_instance_invalid_state(state_error,
'os-migrateLive', id)
diff --git a/nova/tests/unit/api/openstack/compute/test_migrate_server.py b/nova/tests/unit/api/openstack/compute/test_migrate_server.py
index 387901533e..57722f170d 100644
--- a/nova/tests/unit/api/openstack/compute/test_migrate_server.py
+++ b/nova/tests/unit/api/openstack/compute/test_migrate_server.py
@@ -421,8 +421,27 @@ class MigrateServerTestsV234(MigrateServerTestsV230):
def test_migrate_live_migration_with_old_nova_not_supported(self):
pass
+ def test_migrate_live_compute_host_not_found(self):
+ exc = exception.ComputeHostNotFound(
+ reason="Compute host %(host)s could not be found.",
+ host='hostname')
+ self.mox.StubOutWithMock(self.compute_api, 'live_migrate')
+ instance = self._stub_instance_get()
+ self.compute_api.live_migrate(self.context, instance, None,
+ self.disk_over_commit, 'hostname',
+ self.force, self.async).AndRaise(exc)
+
+ self.mox.ReplayAll()
+ body = {'os-migrateLive':
+ {'host': 'hostname', 'block_migration': 'auto'}}
+
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller._migrate_live,
+ self.req, instance.uuid, body=body)
+
def test_migrate_live_unexpected_error(self):
- exc = exception.NoValidHost(reason="No valid host found")
+ exc = exception.InvalidHypervisorType(
+ reason="The supplied hypervisor type of is invalid.")
self.mox.StubOutWithMock(self.compute_api, 'live_migrate')
instance = self._stub_instance_get()
self.compute_api.live_migrate(self.context, instance, None,