summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorRussell Bryant <rbryant@redhat.com>2012-05-29 17:10:09 -0400
committerRussell Bryant <rbryant@redhat.com>2012-05-31 15:19:31 -0400
commit836ffbd489f28a1d370cb1003bd8d62de4783351 (patch)
tree3d5d1b555fd4265d9d4bb7fe41f152c92bb88177 /nova
parent0db055b9b3e5e74d229b38df06408166b53069b7 (diff)
Add finish_revert_resize() to the compute rpcapi.
Part of bug 1006467. This method is used by the compute manager itself. Add it to the rpcapi and use it from there. Change-Id: I7fcab5b0b498318377a1a108e2eeb4db1ae1e4ea
Diffstat (limited to 'nova')
-rw-r--r--nova/compute/manager.py11
-rw-r--r--nova/compute/rpcapi.py5
-rw-r--r--nova/tests/compute/test_rpcapi.py4
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')