diff options
Diffstat (limited to 'nova/tests/virt/xenapi/test_volumeops.py')
-rw-r--r-- | nova/tests/virt/xenapi/test_volumeops.py | 68 |
1 files changed, 61 insertions, 7 deletions
diff --git a/nova/tests/virt/xenapi/test_volumeops.py b/nova/tests/virt/xenapi/test_volumeops.py index 3497babf2..7ec9eb1ea 100644 --- a/nova/tests/virt/xenapi/test_volumeops.py +++ b/nova/tests/virt/xenapi/test_volumeops.py @@ -31,7 +31,7 @@ class VolumeAttachTestCase(test.TestCase): return side_effect ops = volumeops.VolumeOps('session') - self.mox.StubOutWithMock(volumeops.vm_utils, 'vm_ref_or_raise') + self.mox.StubOutWithMock(volumeops.vm_utils, 'lookup') self.mox.StubOutWithMock(volumeops.vm_utils, 'find_vbd_by_number') self.mox.StubOutWithMock(volumeops.vm_utils, '_is_vm_shutdown') self.mox.StubOutWithMock(volumeops.vm_utils, 'unplug_vbd') @@ -40,7 +40,7 @@ class VolumeAttachTestCase(test.TestCase): self.mox.StubOutWithMock(volumeops.volume_utils, 'find_sr_from_vbd') self.mox.StubOutWithMock(volumeops.volume_utils, 'purge_sr') - volumeops.vm_utils.vm_ref_or_raise('session', 'instance_1').AndReturn( + volumeops.vm_utils.lookup('session', 'instance_1').AndReturn( 'vmref') volumeops.volume_utils.get_device_number('mountpoint').AndReturn( @@ -78,6 +78,8 @@ class VolumeAttachTestCase(test.TestCase): self.mox.StubOutWithMock(volumeops.vm_utils, 'vm_ref_or_raise') self.mox.StubOutWithMock(volumeops.volume_utils, 'get_device_number') + connection_info = dict(driver_volume_type='iscsi', data='conn_data') + volumeops.vm_utils.vm_ref_or_raise('session', 'instance_1').AndReturn( 'vmref') @@ -85,11 +87,12 @@ class VolumeAttachTestCase(test.TestCase): 'devnumber') ops._connect_volume( - 'conn_data', 'devnumber', 'instance_1', 'vmref', hotplug=True) + connection_info, 'devnumber', 'instance_1', 'vmref', + hotplug=True).AndReturn(('sruuid', 'vdiuuid')) self.mox.ReplayAll() ops.attach_volume( - dict(driver_volume_type='iscsi', data='conn_data'), + connection_info, 'instance_1', 'mountpoint') def test_attach_volume_no_hotplug(self): @@ -98,6 +101,8 @@ class VolumeAttachTestCase(test.TestCase): self.mox.StubOutWithMock(volumeops.vm_utils, 'vm_ref_or_raise') self.mox.StubOutWithMock(volumeops.volume_utils, 'get_device_number') + connection_info = dict(driver_volume_type='iscsi', data='conn_data') + volumeops.vm_utils.vm_ref_or_raise('session', 'instance_1').AndReturn( 'vmref') @@ -105,11 +110,12 @@ class VolumeAttachTestCase(test.TestCase): 'devnumber') ops._connect_volume( - 'conn_data', 'devnumber', 'instance_1', 'vmref', hotplug=False) + connection_info, 'devnumber', 'instance_1', 'vmref', + hotplug=False).AndReturn(('sruuid', 'vdiuuid')) self.mox.ReplayAll() ops.attach_volume( - dict(driver_volume_type='iscsi', data='conn_data'), + connection_info, 'instance_1', 'mountpoint', hotplug=False) def test_connect_volume_no_hotplug(self): @@ -124,6 +130,8 @@ class VolumeAttachTestCase(test.TestCase): vdi_ref = 'vdi_ref' vbd_ref = 'vbd_ref' connection_data = {'vdi_uuid': vdi_uuid} + connection_info = {'data': connection_data, + 'driver_volume_type': 'iscsi'} vm_ref = 'vm_ref' dev_number = 1 @@ -160,7 +168,53 @@ class VolumeAttachTestCase(test.TestCase): self.mox.ReplayAll() - ops._connect_volume(connection_data, dev_number, instance_name, + ops._connect_volume(connection_info, dev_number, instance_name, vm_ref, hotplug=False) self.assertEquals(False, called['VBD.plug']) + + def test_connect_volume(self): + session = stubs.FakeSessionForVolumeTests('fake_uri') + ops = volumeops.VolumeOps(session) + sr_uuid = '1' + sr_label = 'Disk-for:None' + sr_params = '' + sr_ref = 'sr_ref' + vdi_uuid = '2' + vdi_ref = 'vdi_ref' + vbd_ref = 'vbd_ref' + connection_data = {'vdi_uuid': vdi_uuid} + connection_info = {'data': connection_data, + 'driver_volume_type': 'iscsi'} + + called = collections.defaultdict(bool) + + def fake_call_xenapi(self, method, *args, **kwargs): + called[method] = True + + self.stubs.Set(ops._session, 'call_xenapi', fake_call_xenapi) + + self.mox.StubOutWithMock(volumeops.volume_utils, 'parse_sr_info') + volumeops.volume_utils.parse_sr_info( + connection_data, sr_label).AndReturn( + tuple([sr_uuid, sr_label, sr_params])) + + self.mox.StubOutWithMock( + volumeops.volume_utils, 'find_sr_by_uuid') + volumeops.volume_utils.find_sr_by_uuid(session, sr_uuid).AndReturn( + None) + + self.mox.StubOutWithMock( + volumeops.volume_utils, 'introduce_sr') + volumeops.volume_utils.introduce_sr( + session, sr_uuid, sr_label, sr_params).AndReturn(sr_ref) + + self.mox.StubOutWithMock(volumeops.volume_utils, 'introduce_vdi') + volumeops.volume_utils.introduce_vdi( + session, sr_ref, vdi_uuid=vdi_uuid).AndReturn(vdi_ref) + + self.mox.ReplayAll() + + ops.connect_volume(connection_info) + + self.assertEquals(False, called['VBD.plug']) |