diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-02-10 16:32:00 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-02-10 16:32:00 +0000 |
commit | 4d2bb214ff81d3cb7b212b7bede98297e25f0dbc (patch) | |
tree | 3a2b65147a167436d19f5677fef8beeff03f2bd9 /nova/tests/unit/virt | |
parent | 6c90c96d7ce3f12252e8db97587af8924192c969 (diff) | |
parent | 45227bbbfd06d16e85e973e14ee8c30e267e8b42 (diff) | |
download | nova-4d2bb214ff81d3cb7b212b7bede98297e25f0dbc.tar.gz |
Merge "Failed to discovery when iscsi multipath and CHAP both enabled"
Diffstat (limited to 'nova/tests/unit/virt')
-rw-r--r-- | nova/tests/unit/virt/libvirt/test_volume.py | 66 |
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) |