diff --git a/nova/tests/unit/virt/libvirt/volume/test_fibrechannel.py b/nova/tests/unit/virt/libvirt/volume/test_fibrechannel.py index 5bea62525bb1..a6dbf233a23f 100644 --- a/nova/tests/unit/virt/libvirt/volume/test_fibrechannel.py +++ b/nova/tests/unit/virt/libvirt/volume/test_fibrechannel.py @@ -42,3 +42,18 @@ class LibvirtFibreChannelVolumeDriverTestCase( @mock.patch.object(platform, 'machine', return_value=arch.S390X) def test_libvirt_fibrechan_driver_s390x(self, mock_machine): self._test_libvirt_fibrechan_driver_s390() + + def test_libvirt_fibrechan_driver_get_config(self): + libvirt_driver = fibrechannel.LibvirtFibreChannelVolumeDriver( + self.fake_conn) + + device_path = '/dev/fake-dev' + connection_info = {'data': {'device_path': device_path}} + + conf = libvirt_driver.get_config(connection_info, self.disk_info) + tree = conf.format_dom() + + self.assertEqual('block', tree.get('type')) + self.assertEqual(device_path, tree.find('./source').get('dev')) + self.assertEqual('raw', tree.find('./driver').get('type')) + self.assertEqual('native', tree.find('./driver').get('io')) diff --git a/nova/tests/unit/virt/libvirt/volume/test_iscsi.py b/nova/tests/unit/virt/libvirt/volume/test_iscsi.py index 84469407d9f5..cc14063e1696 100644 --- a/nova/tests/unit/virt/libvirt/volume/test_iscsi.py +++ b/nova/tests/unit/virt/libvirt/volume/test_iscsi.py @@ -74,3 +74,17 @@ Setting up iSCSI targets: unused # we don't care what the log message is, we just want to make sure # our stub method is called which asserts the password is scrubbed self.assertTrue(debug_mock.called) + + def test_libvirt_iscsi_driver_get_config(self): + libvirt_driver = iscsi.LibvirtISCSIVolumeDriver(self.fake_conn) + + device_path = '/dev/fake-dev' + connection_info = {'data': {'device_path': device_path}} + + conf = libvirt_driver.get_config(connection_info, self.disk_info) + tree = conf.format_dom() + + self.assertEqual('block', tree.get('type')) + self.assertEqual(device_path, tree.find('./source').get('dev')) + self.assertEqual('raw', tree.find('./driver').get('type')) + self.assertEqual('native', tree.find('./driver').get('io')) diff --git a/nova/tests/unit/virt/libvirt/volume/test_nfs.py b/nova/tests/unit/virt/libvirt/volume/test_nfs.py index 992f787f7e67..5b05df8b173f 100644 --- a/nova/tests/unit/virt/libvirt/volume/test_nfs.py +++ b/nova/tests/unit/virt/libvirt/volume/test_nfs.py @@ -87,6 +87,7 @@ class LibvirtNFSVolumeDriverTestCase(test_volume.LibvirtVolumeBaseTestCase): tree = conf.format_dom() self._assertFileTypeEquals(tree, file_path) self.assertEqual('raw', tree.find('./driver').get('type')) + self.assertEqual('native', tree.find('./driver').get('io')) def test_libvirt_nfs_driver_already_mounted(self): libvirt_driver = nfs.LibvirtNFSVolumeDriver(self.fake_conn) diff --git a/nova/virt/libvirt/volume/fibrechannel.py b/nova/virt/libvirt/volume/fibrechannel.py index fdda66d2e2da..8e9535a8d35b 100644 --- a/nova/virt/libvirt/volume/fibrechannel.py +++ b/nova/virt/libvirt/volume/fibrechannel.py @@ -45,6 +45,7 @@ class LibvirtFibreChannelVolumeDriver(libvirt_volume.LibvirtBaseVolumeDriver): conf.source_type = "block" conf.source_path = connection_info['data']['device_path'] + conf.driver_io = "native" return conf def connect_volume(self, connection_info, disk_info): diff --git a/nova/virt/libvirt/volume/iscsi.py b/nova/virt/libvirt/volume/iscsi.py index 147607fe72b3..10009a7b7ef5 100644 --- a/nova/virt/libvirt/volume/iscsi.py +++ b/nova/virt/libvirt/volume/iscsi.py @@ -75,6 +75,7 @@ class LibvirtISCSIVolumeDriver(libvirt_volume.LibvirtBaseVolumeDriver): self).get_config(connection_info, disk_info) conf.source_type = "block" conf.source_path = connection_info['data']['device_path'] + conf.driver_io = "native" return conf def connect_volume(self, connection_info, disk_info): diff --git a/nova/virt/libvirt/volume/nfs.py b/nova/virt/libvirt/volume/nfs.py index c186ccce3174..86f1d9f3971b 100644 --- a/nova/virt/libvirt/volume/nfs.py +++ b/nova/virt/libvirt/volume/nfs.py @@ -52,6 +52,7 @@ class LibvirtNFSVolumeDriver(fs.LibvirtBaseFileSystemVolumeDriver): conf.source_type = 'file' conf.source_path = connection_info['data']['device_path'] conf.driver_format = connection_info['data'].get('format', 'raw') + conf.driver_io = "native" return conf def connect_volume(self, connection_info, disk_info):