diff options
-rw-r--r-- | nova/compute/manager.py | 11 | ||||
-rw-r--r-- | nova/compute/rpcapi.py | 5 | ||||
-rw-r--r-- | nova/tests/compute/test_rpcapi.py | 4 |
3 files changed, 13 insertions, 7 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py index 1ad74ee4a..377f498c2 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -50,6 +50,7 @@ from nova import compute from nova.compute import aggregate_states from nova.compute import instance_types from nova.compute import power_state +from nova.compute import rpcapi as compute_rpcapi from nova.compute import task_states from nova.compute import utils as compute_utils from nova.compute import vm_states @@ -248,6 +249,7 @@ class ComputeManager(manager.SchedulerDependentManager): self._last_bw_usage_poll = 0 self._last_info_cache_heal = 0 self.compute_api = compute.API() + self.compute_rpcapi = compute_rpcapi.ComputeAPI() super(ComputeManager, self).__init__(service_name="compute", *args, **kwargs) @@ -1262,13 +1264,8 @@ class ComputeManager(manager.SchedulerDependentManager): network_info = self._get_instance_nw_info(context, instance_ref) self.driver.destroy(instance_ref, self._legacy_nw_info(network_info)) - topic = rpc.queue_get_for(context, FLAGS.compute_topic, - migration_ref['source_compute']) - rpc.cast(context, topic, - {'method': 'finish_revert_resize', - 'args': {'instance_uuid': instance_ref['uuid'], - 'migration_id': migration_ref['id']}, - }) + self.compute_rpcapi.finish_revert_resize(context, instance_ref, + migration_ref['id'], migration_ref['source_compute']) @exception.wrap_exception(notifier=notifier, publisher_id=publisher_id()) @checks_instance_lock diff --git a/nova/compute/rpcapi.py b/nova/compute/rpcapi.py index 443a2ece6..78ccb8cea 100644 --- a/nova/compute/rpcapi.py +++ b/nova/compute/rpcapi.py @@ -96,6 +96,11 @@ class ComputeAPI(nova.rpc.proxy.RpcProxy): instance_uuid=instance['uuid'], volume_id=volume_id), topic=self._compute_topic(ctxt, None, instance)) + def finish_revert_resize(self, ctxt, instance, migration_id, host): + self.cast(ctxt, self.make_msg('finish_revert_resize', + instance_uuid=instance['uuid'], migration_id=migration_id), + topic=self._compute_topic(ctxt, host, None)) + def get_console_output(self, ctxt, instance, tail_length): return self.call(ctxt, self.make_msg('get_console_output', instance_uuid=instance['uuid'], tail_length=tail_length), diff --git a/nova/tests/compute/test_rpcapi.py b/nova/tests/compute/test_rpcapi.py index de9d337f9..47c986c71 100644 --- a/nova/tests/compute/test_rpcapi.py +++ b/nova/tests/compute/test_rpcapi.py @@ -104,6 +104,10 @@ class ComputeRpcAPITestCase(test.TestCase): self._test_compute_api('detach_volume', 'cast', instance=self.fake_instance, volume_id='id') + def test_finish_revert_resize(self): + self._test_compute_api('finish_revert_resize', 'cast', + instance=self.fake_instance, migration_id='id', host='host') + def test_get_console_output(self): self._test_compute_api('get_console_output', 'call', instance=self.fake_instance, tail_length='tl') |