summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2018-03-29 03:31:36 +0000
committerGerrit Code Review <review@openstack.org>2018-03-29 03:31:36 +0000
commit9037eb9f61c5237a52c8eebba83d8a6d8b23b688 (patch)
tree2babeed7bf2b852b0872aac5e5ddf4a0b3391f0d
parentaea284349f5efc64c645e4970de7774ff58cc77c (diff)
parentcc3f3adfb8dada83cab381d0ec9536925a43a560 (diff)
downloadnova-9037eb9f61c5237a52c8eebba83d8a6d8b23b688.tar.gz
Merge "Return 400 when compute host is not found" into stable/queens
-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 a3c455256c..a85679ccad 100644
--- a/nova/api/openstack/compute/migrate_server.py
+++ b/nova/api/openstack/compute/migrate_server.py
@@ -108,7 +108,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,
@@ -127,6 +126,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 e09492187b..8423cfc708 100644
--- a/nova/tests/unit/api/openstack/compute/test_migrate_server.py
+++ b/nova/tests/unit/api/openstack/compute/test_migrate_server.py
@@ -433,8 +433,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,