diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-06-06 20:46:02 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-06-06 20:46:02 +0000 |
| commit | 9c59e515a2f12c64bd9c384659c0d4b5bc3c0601 (patch) | |
| tree | 510ad3c6c3d24749772e655c76ecc3e5e7557b00 | |
| parent | 9121fc6b9d6b1a7a9d945cfdad944fa59b648106 (diff) | |
| parent | dc0751ff4649d4b1ae642222704c244d5995138a (diff) | |
Merge "Add remove_volume_connection to the compute rpcapi."
| -rw-r--r-- | nova/compute/manager.py | 7 | ||||
| -rw-r--r-- | nova/compute/rpcapi.py | 5 | ||||
| -rw-r--r-- | nova/tests/compute/test_compute.py | 8 | ||||
| -rw-r--r-- | nova/tests/compute/test_rpcapi.py | 6 |
4 files changed, 17 insertions, 9 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py index 8c35d286b..a110401bc 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -2202,11 +2202,8 @@ class ComputeManager(manager.SchedulerDependentManager): instance_ref['uuid']): volume_id = bdm['volume_id'] volume = self.volume_api.get(context, volume_id) - rpc.call(context, - rpc.queue_get_for(context, FLAGS.compute_topic, dest), - {"method": "remove_volume_connection", - "args": {'instance_id': instance_ref['id'], - 'volume_id': volume['id']}}) + self.compute_rpcapi.remove_volume_connection(context, instance_ref, + volume['id'], dest) # Block migration needs empty image at destination host # before migration starts, so if any failure occurs, diff --git a/nova/compute/rpcapi.py b/nova/compute/rpcapi.py index 7d7b57151..f078f9d64 100644 --- a/nova/compute/rpcapi.py +++ b/nova/compute/rpcapi.py @@ -243,6 +243,11 @@ class ComputeAPI(nova.rpc.proxy.RpcProxy): instance_uuid=instance['uuid'], address=address), topic=self._compute_topic(ctxt, None, instance)) + def remove_volume_connection(self, ctxt, instance, volume_id, host): + return self.call(ctxt, self.make_msg('remove_volume_connection', + instance_id=instance['id'], volume_id=volume_id), + topic=self._compute_topic(ctxt, host, None)) + def rescue_instance(self, ctxt, instance, rescue_password): self.cast(ctxt, self.make_msg('rescue_instance', instance_uuid=instance['uuid'], diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py index 3ed9af763..6f03e9c84 100644 --- a/nova/tests/compute/test_compute.py +++ b/nova/tests/compute/test_compute.py @@ -1456,9 +1456,11 @@ class ComputeTestCase(BaseTestCase): 'args': {'instance_id': inst_ref['id'], 'host': self.compute.host, 'teardown': False}}) - rpc.call(c, topic, {"method": "remove_volume_connection", - "args": {'instance_id': inst_ref['id'], - 'volume_id': volume_id}}) + rpc.call(c, topic, + {"method": "remove_volume_connection", + "args": {'instance_id': inst_ref['id'], + 'volume_id': volume_id}, + "version": compute_rpcapi.ComputeAPI.RPC_API_VERSION}, None) rpc.cast(c, topic, {"method": "rollback_live_migration_at_destination", "args": {'instance_id': inst_ref['id']}}) diff --git a/nova/tests/compute/test_rpcapi.py b/nova/tests/compute/test_rpcapi.py index 23ac55fc3..78ca3ee3c 100644 --- a/nova/tests/compute/test_rpcapi.py +++ b/nova/tests/compute/test_rpcapi.py @@ -58,7 +58,7 @@ 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', 'remove_volume_connection', 'post_live_migration_at_destination']: expected_msg['args']['instance_id'] = instance['id'] else: @@ -221,6 +221,10 @@ class ComputeRpcAPITestCase(test.TestCase): self._test_compute_api('remove_fixed_ip_from_instance', 'cast', instance=self.fake_instance, address='addr') + def test_remove_volume_connection(self): + self._test_compute_api('remove_volume_connection', 'call', + instance=self.fake_instance, volume_id='id', host='host') + def test_rescue_instance(self): self._test_compute_api('rescue_instance', 'cast', instance=self.fake_instance, rescue_password='pw') |
