Add post_live_migration_at_destination() to compute rpcapi.

Part of bug 1006467.

This patch adds the "post_live_migration_at_destination method to the
compute rpcapi.  It is used by the compute manager.

Change-Id: I964d3b149e10c927657d0b239835335eb240b6e4
This commit is contained in:
Russell Bryant
2012-05-29 21:11:21 -04:00
parent 093bdd6edf
commit f9986b8be0
4 changed files with 18 additions and 7 deletions
+2 -5
View File
@@ -2105,11 +2105,8 @@ class ComputeManager(manager.SchedulerDependentManager):
# Define domain at destination host, without doing it,
# pause/suspend/terminate do not work.
rpc.call(ctxt,
rpc.queue_get_for(ctxt, FLAGS.compute_topic, dest),
{"method": "post_live_migration_at_destination",
"args": {'instance_id': instance_ref['id'],
'block_migration': block_migration}})
self.compute_rpcapi.post_live_migration_at_destination(ctxt,
instance_ref, block_migration, dest)
# No instance booting at source host, but instance dir
# must be deleted for preparing next block migration
+7
View File
@@ -161,6 +161,13 @@ class ComputeAPI(nova.rpc.proxy.RpcProxy):
instance_uuid=instance['uuid']),
topic=self._compute_topic(ctxt, None, instance))
def post_live_migration_at_destination(self, ctxt, instance,
block_migration, host):
return self.call(ctxt,
self.make_msg('post_live_migration_at_destination',
instance_id=instance['id'], block_migration=block_migration),
self._compute_topic(ctxt, host, None))
def pause_instance(self, ctxt, instance):
self.cast(ctxt, self.make_msg('pause_instance',
instance_uuid=instance['uuid']),
+2 -1
View File
@@ -1528,7 +1528,8 @@ class ComputeTestCase(BaseTestCase):
self.mox.StubOutWithMock(rpc, 'call')
rpc.call(c, rpc.queue_get_for(c, FLAGS.compute_topic, dest),
{"method": "post_live_migration_at_destination",
"args": {'instance_id': i_ref['id'], 'block_migration': False}})
"args": {'instance_id': i_ref['id'], 'block_migration': False},
"version": compute_rpcapi.ComputeAPI.RPC_API_VERSION}, None)
self.mox.StubOutWithMock(self.compute.driver, 'unplug_vifs')
self.compute.driver.unplug_vifs(i_ref, [])
rpc.call(c, 'network', {'method': 'setup_networks_on_host',
+7 -1
View File
@@ -58,7 +58,8 @@ class ComputeRpcAPITestCase(test.TestCase):
instance = expected_msg['args']['instance']
del expected_msg['args']['instance']
if method in ['rollback_live_migration_at_destination',
'pre_live_migration']:
'pre_live_migration',
'post_live_migration_at_destination']:
expected_msg['args']['instance_id'] = instance['id']
else:
expected_msg['args']['instance_uuid'] = instance['uuid']
@@ -161,6 +162,11 @@ class ComputeRpcAPITestCase(test.TestCase):
self._test_compute_api('lock_instance', 'cast',
instance=self.fake_instance)
def test_post_live_migration_at_destination(self):
self._test_compute_api('post_live_migration_at_destination', 'call',
instance=self.fake_instance, block_migration='block_migration',
host='host')
def test_pause_instance(self):
self._test_compute_api('pause_instance', 'cast',
instance=self.fake_instance)