summaryrefslogtreecommitdiffstats
path: root/nova/tests/virt/xenapi/test_volumeops.py
diff options
context:
space:
mode:
Diffstat (limited to 'nova/tests/virt/xenapi/test_volumeops.py')
-rw-r--r--nova/tests/virt/xenapi/test_volumeops.py68
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'])