summaryrefslogtreecommitdiff
path: root/nova/tests/unit/virt/libvirt/volume/test_lightos.py
diff options
context:
space:
mode:
Diffstat (limited to 'nova/tests/unit/virt/libvirt/volume/test_lightos.py')
-rw-r--r--nova/tests/unit/virt/libvirt/volume/test_lightos.py79
1 files changed, 79 insertions, 0 deletions
diff --git a/nova/tests/unit/virt/libvirt/volume/test_lightos.py b/nova/tests/unit/virt/libvirt/volume/test_lightos.py
new file mode 100644
index 0000000000..8a85d73059
--- /dev/null
+++ b/nova/tests/unit/virt/libvirt/volume/test_lightos.py
@@ -0,0 +1,79 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from unittest import mock
+
+from nova.tests.unit.virt.libvirt.volume import test_volume
+from nova.virt.libvirt.volume import lightos
+
+from os_brick import initiator
+
+
+class LibvirtLightVolumeDriverTestCase(test_volume.LibvirtVolumeBaseTestCase):
+
+ @mock.patch('nova.utils.get_root_helper')
+ @mock.patch('os_brick.initiator.connector.InitiatorConnector.factory')
+ def test_libvirt_lightos_driver(self, mock_factory, mock_helper):
+ mock_helper.return_value = 'sudo'
+ lightos.LibvirtLightOSVolumeDriver(self.fake_host)
+ mock_factory.assert_called_once_with(
+ initiator.LIGHTOS, root_helper='sudo',
+ device_scan_attempts=5)
+
+ @mock.patch('os_brick.initiator.connector.InitiatorConnector.factory',
+ new=mock.Mock())
+ def test_libvirt_lightos_driver_connect(self):
+ lightos_driver = lightos.LibvirtLightOSVolumeDriver(
+ self.fake_host)
+ config = {'server_ip': '127.0.0.1', 'server_port': 9898}
+ disk_info = {
+ 'id': '1234567',
+ 'name': 'aLightVolume',
+ 'conf': config}
+ connection_info = {'data': disk_info}
+ lightos_driver.connector.connect_volume.return_value = (
+ {'path': '/dev/dms1234567'})
+
+ lightos_driver.connect_volume(connection_info, None)
+
+ lightos_driver.connector.connect_volume.assert_called_once_with(
+ connection_info['data'])
+ self.assertEqual(
+ '/dev/dms1234567',
+ connection_info['data']['device_path'])
+
+ @mock.patch('os_brick.initiator.connector.InitiatorConnector.factory',
+ new=mock.Mock(return_value=mock.Mock()))
+ def test_libvirt_lightos_driver_disconnect(self):
+ lightos_driver = lightos.LibvirtLightOSVolumeDriver(self.connr)
+ disk_info = {
+ 'path': '/dev/dms1234567', 'name': 'aLightosVolume',
+ 'type': 'raw', 'dev': 'vda1', 'bus': 'pci0',
+ 'device_path': '/dev/dms123456'}
+ connection_info = {'data': disk_info}
+ lightos_driver.disconnect_volume(connection_info, None)
+ lightos_driver.connector.disconnect_volume.assert_called_once_with(
+ disk_info, None)
+
+ @mock.patch('os_brick.initiator.connector.InitiatorConnector.factory',
+ new=mock.Mock(return_value=mock.Mock()))
+ def test_libvirt_lightos_driver_get_config(self):
+ lightos_driver = lightos.LibvirtLightOSVolumeDriver(self.fake_host)
+ device_path = '/dev/fake-dev'
+ connection_info = {'data': {'device_path': device_path}}
+
+ conf = lightos_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'))