From c2ec406177f3c145e3e8bdc19618aea898109b7e Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Mon, 10 Sep 2012 10:59:43 -0400 Subject: Add and fix tests for attaching volumes. Change-Id: I94ecd429266823369be6fd168256e9f3a1cd5287 --- nova/tests/compute/test_compute.py | 48 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py index 4d3b0889d..f47a5b99d 100644 --- a/nova/tests/compute/test_compute.py +++ b/nova/tests/compute/test_compute.py @@ -4199,21 +4199,65 @@ class ComputeAPITestCase(BaseTestCase): def test_attach_volume(self): """Ensure instance can be soft rebooted""" + called = {} + def fake_check_attach(*args, **kwargs): - pass + called['fake_check_attach'] = True def fake_reserve_volume(*args, **kwargs): - pass + called['fake_reserve_volume'] = True def fake_volume_get(self, context, volume_id): + called['fake_volume_get'] = True return {'id': volume_id} + def fake_rpc_attach_volume(self, context, **kwargs): + called['fake_rpc_attach_volume'] = True + self.stubs.Set(nova.volume.api.API, 'get', fake_volume_get) self.stubs.Set(nova.volume.api.API, 'check_attach', fake_check_attach) self.stubs.Set(nova.volume.api.API, 'reserve_volume', fake_reserve_volume) + self.stubs.Set(compute_rpcapi.ComputeAPI, 'attach_volume', + fake_rpc_attach_volume) + instance = self._create_fake_instance() self.compute_api.attach_volume(self.context, instance, 1, '/dev/vdb') + self.assertTrue(called.get('fake_check_attach')) + self.assertTrue(called.get('fake_reserve_volume')) + self.assertTrue(called.get('fake_reserve_volume')) + self.assertTrue(called.get('fake_rpc_attach_volume')) + + def test_attach_volume_no_device(self): + + called = {} + + def fake_check_attach(*args, **kwargs): + called['fake_check_attach'] = True + + def fake_reserve_volume(*args, **kwargs): + called['fake_reserve_volume'] = True + + def fake_volume_get(self, context, volume_id): + called['fake_volume_get'] = True + return {'id': volume_id} + + def fake_rpc_attach_volume(self, context, **kwargs): + called['fake_rpc_attach_volume'] = True + + self.stubs.Set(nova.volume.api.API, 'get', fake_volume_get) + self.stubs.Set(nova.volume.api.API, 'check_attach', fake_check_attach) + self.stubs.Set(nova.volume.api.API, 'reserve_volume', + fake_reserve_volume) + self.stubs.Set(compute_rpcapi.ComputeAPI, 'attach_volume', + fake_rpc_attach_volume) + + instance = self._create_fake_instance() + self.compute_api.attach_volume(self.context, instance, 1, device=None) + self.assertTrue(called.get('fake_check_attach')) + self.assertTrue(called.get('fake_reserve_volume')) + self.assertTrue(called.get('fake_reserve_volume')) + self.assertTrue(called.get('fake_rpc_attach_volume')) def test_inject_network_info(self): instance = self._create_fake_instance() -- cgit