summaryrefslogtreecommitdiff
path: root/nova/tests/unit/virt/libvirt/test_volume.py
diff options
context:
space:
mode:
Diffstat (limited to 'nova/tests/unit/virt/libvirt/test_volume.py')
-rw-r--r--nova/tests/unit/virt/libvirt/test_volume.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/nova/tests/unit/virt/libvirt/test_volume.py b/nova/tests/unit/virt/libvirt/test_volume.py
index 76a246153b..b4cf4d93e4 100644
--- a/nova/tests/unit/virt/libvirt/test_volume.py
+++ b/nova/tests/unit/virt/libvirt/test_volume.py
@@ -281,6 +281,27 @@ class LibvirtVolumeTestCase(test.NoDBTestCase):
ret['data']['auth_password'] = 'bar'
return ret
+ def iscsi_connection_discovery_chap_enable(self, volume, location, iqn):
+ dev_name = 'ip-%s-iscsi-%s-lun-1' % (location, iqn)
+ dev_path = '/dev/disk/by-path/%s' % (dev_name)
+ return {
+ 'driver_volume_type': 'iscsi',
+ 'data': {
+ 'volume_id': volume['id'],
+ 'target_portal': location,
+ 'target_iqn': iqn,
+ 'target_lun': 1,
+ 'device_path': dev_path,
+ 'discovery_auth_method': 'CHAP',
+ 'discovery_auth_username': "testuser",
+ 'discovery_auth_password': '123456',
+ 'qos_specs': {
+ 'total_bytes_sec': '102400',
+ 'read_iops_sec': '200',
+ }
+ }
+ }
+
def generate_device(self, transport=None, lun=1, short=False):
dev_format = "ip-%s-iscsi-%s-lun-%s" % (self.location, self.iqn, lun)
if transport:
@@ -683,6 +704,51 @@ Setting up iSCSI targets: unused
self.assertEqual(tree.find('./auth/secret').get('uuid'), SECRET_UUID)
libvirt_driver.disconnect_volume(connection_info, 'vde')
+ def test_libvirt_iscsi_driver_discovery_chap_enable(self):
+ # NOTE(vish) exists is to make driver assume connecting worked
+ self.stubs.Set(os.path, 'exists', lambda x: True)
+ libvirt_driver = volume.LibvirtISCSIVolumeDriver(self.fake_conn)
+ libvirt_driver.use_multipath = True
+ connection_info = self.iscsi_connection_discovery_chap_enable(
+ self.vol, self.location,
+ self.iqn)
+ mpdev_filepath = '/dev/mapper/foo'
+ libvirt_driver._get_multipath_device_name = lambda x: mpdev_filepath
+ libvirt_driver.connect_volume(connection_info, self.disk_info)
+ libvirt_driver.disconnect_volume(connection_info, "vde")
+ expected_commands = [('iscsiadm', '-m', 'discoverydb',
+ '-t', 'sendtargets',
+ '-p', self.location, '--op', 'update',
+ '-n', 'discovery.sendtargets.auth.authmethod',
+ '-v', 'CHAP',
+ '-n', 'discovery.sendtargets.auth.username',
+ '-v', 'testuser',
+ '-n', 'discovery.sendtargets.auth.password',
+ '-v', '123456'),
+ ('iscsiadm', '-m', 'discoverydb',
+ '-t', 'sendtargets',
+ '-p', self.location, '--discover'),
+ ('iscsiadm', '-m', 'node', '--rescan'),
+ ('iscsiadm', '-m', 'session', '--rescan'),
+ ('multipath', '-r'),
+ ('iscsiadm', '-m', 'node', '--rescan'),
+ ('iscsiadm', '-m', 'session', '--rescan'),
+ ('multipath', '-r'),
+ ('iscsiadm', '-m', 'discoverydb',
+ '-t', 'sendtargets',
+ '-p', self.location, '--op', 'update',
+ '-n', 'discovery.sendtargets.auth.authmethod',
+ '-v', 'CHAP',
+ '-n', 'discovery.sendtargets.auth.username',
+ '-v', 'testuser',
+ '-n', 'discovery.sendtargets.auth.password',
+ '-v', '123456'),
+ ('iscsiadm', '-m', 'discoverydb',
+ '-t', 'sendtargets',
+ '-p', self.location, '--discover'),
+ ('multipath', '-r')]
+ self.assertEqual(self.executes, expected_commands)
+
def test_libvirt_kvm_volume(self):
self.stubs.Set(os.path, 'exists', lambda x: True)
libvirt_driver = volume.LibvirtISCSIVolumeDriver(self.fake_conn)