From ca1282ad7c577398b8a4c47481fa0c94b62893b4 Mon Sep 17 00:00:00 2001 From: Jian Wen Date: Tue, 13 Nov 2012 17:02:36 +0800 Subject: [PATCH] Fixes usage of migrate_instance_start Because migrate_instance_start is used to remove floating ips on the source compute node, we need send the RPC to the source compute node instead of the dest compute node. Fixes bug 1078207 Change-Id: Ie993548944268e1ab3af0b89e74e1b54d8137802 --- nova/network/api.py | 2 +- nova/tests/network/test_api.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/nova/network/api.py b/nova/network/api.py index e4fd38b133e2..4b803482a987 100644 --- a/nova/network/api.py +++ b/nova/network/api.py @@ -351,7 +351,7 @@ class API(base.Base): if self._is_multi_host(context, instance): args['floating_addresses'] = \ self._get_floating_ip_addresses(context, instance) - args['host'] = migration['dest_compute'] + args['host'] = migration['source_compute'] self.network_rpcapi.migrate_instance_start(context, **args) diff --git a/nova/tests/network/test_api.py b/nova/tests/network/test_api.py index bfc9dc878fc1..15ead5337dc9 100644 --- a/nova/tests/network/test_api.py +++ b/nova/tests/network/test_api.py @@ -117,7 +117,6 @@ class ApiTestCase(test.TestCase): 'project_id': 'fake_project_id', 'floating_addresses': None} if multi_host: - expected['host'] = 'fake_compute_dest' expected['floating_addresses'] = ['fake_float1', 'fake_float2'] return fake_instance, fake_migration, expected @@ -125,6 +124,7 @@ class ApiTestCase(test.TestCase): info = {'kwargs': {}} arg1, arg2, expected = self._stub_migrate_instance_calls( 'migrate_instance_start', True, info) + expected['host'] = 'fake_compute_source' self.network_api.migrate_instance_start(self.context, arg1, arg2) self.assertEqual(info['kwargs'], expected) @@ -139,6 +139,7 @@ class ApiTestCase(test.TestCase): info = {'kwargs': {}} arg1, arg2, expected = self._stub_migrate_instance_calls( 'migrate_instance_finish', True, info) + expected['host'] = 'fake_compute_dest' self.network_api.migrate_instance_finish(self.context, arg1, arg2) self.assertEqual(info['kwargs'], expected)