summaryrefslogtreecommitdiff
path: root/ironic_python_agent/tests/unit
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2022-09-02 19:26:57 +0000
committerGerrit Code Review <review@openstack.org>2022-09-02 19:26:57 +0000
commited6a8d28b7e8f1a6f091023863db26bb2a993a40 (patch)
tree105f2b987c12dbe1b5611a0ac63a830c12196d83 /ironic_python_agent/tests/unit
parent4359c1e8adeb6d788f50233714a6af72fbc48afd (diff)
parentdaa20b01d1522cd2748abb024b526dcb99562396 (diff)
downloadironic-python-agent-ed6a8d28b7e8f1a6f091023863db26bb2a993a40.tar.gz
Merge "Create RAIDs with volume name"
Diffstat (limited to 'ironic_python_agent/tests/unit')
-rw-r--r--ironic_python_agent/tests/unit/test_hardware.py102
-rw-r--r--ironic_python_agent/tests/unit/test_raid_utils.py30
2 files changed, 92 insertions, 40 deletions
diff --git a/ironic_python_agent/tests/unit/test_hardware.py b/ironic_python_agent/tests/unit/test_hardware.py
index 57a2330a..0d6d28f7 100644
--- a/ironic_python_agent/tests/unit/test_hardware.py
+++ b/ironic_python_agent/tests/unit/test_hardware.py
@@ -3293,11 +3293,11 @@ class TestGenericHardwareManager(base.IronicAgentTest):
delay_on_retry=True),
mock.call('udevadm', 'settle'),
mock.call('mdadm', '--create', '/dev/md0', '--force', '--run',
- '--metadata=1', '--level', '1', '--raid-devices', 2,
- '/dev/sda1', '/dev/sdb1'),
+ '--metadata=1', '--level', '1', '--name', '/dev/md0',
+ '--raid-devices', 2, '/dev/sda1', '/dev/sdb1'),
mock.call('mdadm', '--create', '/dev/md1', '--force', '--run',
- '--metadata=1', '--level', '0', '--raid-devices', 2,
- '/dev/sda2', '/dev/sdb2')])
+ '--metadata=1', '--level', '0', '--name', '/dev/md1',
+ '--raid-devices', 2, '/dev/sda2', '/dev/sdb2')])
self.assertEqual(raid_config, result)
@@ -3398,11 +3398,13 @@ class TestGenericHardwareManager(base.IronicAgentTest):
delay_on_retry=True),
mock.call('udevadm', 'settle'),
mock.call('mdadm', '--create', '/dev/md0', '--force', '--run',
- '--metadata=1', '--level', '1', '--raid-devices', 3,
- '/dev/sda1', '/dev/sdb1', '/dev/sdc1'),
+ '--metadata=1', '--level', '1', '--name', '/dev/md0',
+ '--raid-devices', 3, '/dev/sda1', '/dev/sdb1',
+ '/dev/sdc1'),
mock.call('mdadm', '--create', '/dev/md1', '--force', '--run',
- '--metadata=1', '--level', '5', '--raid-devices', 3,
- '/dev/sda2', '/dev/sdb2', '/dev/sdc2')])
+ '--metadata=1', '--level', '5', '--name', '/dev/md1',
+ '--raid-devices', 3, '/dev/sda2', '/dev/sdb2',
+ '/dev/sdc2')])
self.assertEqual(raid_config, result)
@mock.patch.object(raid_utils, '_get_actual_component_devices',
@@ -3514,11 +3516,13 @@ class TestGenericHardwareManager(base.IronicAgentTest):
delay_on_retry=True),
mock.call('udevadm', 'settle'),
mock.call('mdadm', '--create', '/dev/md0', '--force', '--run',
- '--metadata=1', '--level', '1', '--raid-devices', 4,
- '/dev/sda1', '/dev/sdb1', '/dev/sdc1', '/dev/sdd1'),
+ '--metadata=1', '--level', '1', '--name', '/dev/md0',
+ '--raid-devices', 4, '/dev/sda1', '/dev/sdb1',
+ '/dev/sdc1', '/dev/sdd1'),
mock.call('mdadm', '--create', '/dev/md1', '--force', '--run',
- '--metadata=1', '--level', '6', '--raid-devices', 4,
- '/dev/sda2', '/dev/sdb2', '/dev/sdc2', '/dev/sdd2')])
+ '--metadata=1', '--level', '6', '--name', '/dev/md1',
+ '--raid-devices', 4, '/dev/sda2', '/dev/sdb2',
+ '/dev/sdc2', '/dev/sdd2')])
self.assertEqual(raid_config, result)
@mock.patch.object(raid_utils, '_get_actual_component_devices',
@@ -3595,11 +3599,11 @@ class TestGenericHardwareManager(base.IronicAgentTest):
delay_on_retry=True),
mock.call('udevadm', 'settle'),
mock.call('mdadm', '--create', '/dev/md0', '--force', '--run',
- '--metadata=1', '--level', '1', '--raid-devices', 2,
- '/dev/sda1', '/dev/sdb1'),
+ '--metadata=1', '--level', '1', '--name', '/dev/md0',
+ '--raid-devices', 2, '/dev/sda1', '/dev/sdb1'),
mock.call('mdadm', '--create', '/dev/md1', '--force', '--run',
- '--metadata=1', '--level', '0', '--raid-devices', 2,
- '/dev/sda2', '/dev/sdb2')])
+ '--metadata=1', '--level', '0', '--name', '/dev/md1',
+ '--raid-devices', 2, '/dev/sda2', '/dev/sdb2')])
self.assertEqual(raid_config, result)
@mock.patch.object(raid_utils, '_get_actual_component_devices',
@@ -3682,11 +3686,11 @@ class TestGenericHardwareManager(base.IronicAgentTest):
delay_on_retry=True),
mock.call('udevadm', 'settle'),
mock.call('mdadm', '--create', '/dev/md0', '--force', '--run',
- '--metadata=1', '--level', '1', '--raid-devices', 2,
- '/dev/sda1', '/dev/sdb1'),
+ '--metadata=1', '--level', '1', '--name', '/dev/md0',
+ '--raid-devices', 2, '/dev/sda1', '/dev/sdb1'),
mock.call('mdadm', '--create', '/dev/md1', '--force', '--run',
- '--metadata=1', '--level', '0', '--raid-devices', 2,
- '/dev/sda2', '/dev/sdb2')])
+ '--metadata=1', '--level', '0', '--name', '/dev/md1',
+ '--raid-devices', 2, '/dev/sda2', '/dev/sdb2')])
self.assertEqual(raid_config, result)
@mock.patch.object(raid_utils, '_get_actual_component_devices',
@@ -3764,11 +3768,11 @@ class TestGenericHardwareManager(base.IronicAgentTest):
delay_on_retry=True),
mock.call('udevadm', 'settle'),
mock.call('mdadm', '--create', '/dev/md0', '--force', '--run',
- '--metadata=1', '--level', '1', '--raid-devices', 2,
- '/dev/sda1', '/dev/sdb1'),
+ '--metadata=1', '--level', '1', '--name', '/dev/md0',
+ '--raid-devices', 2, '/dev/sda1', '/dev/sdb1'),
mock.call('mdadm', '--create', '/dev/md1', '--force', '--run',
- '--metadata=1', '--level', '0', '--raid-devices', 2,
- '/dev/sda2', '/dev/sdb2')])
+ '--metadata=1', '--level', '0', '--name', '/dev/md1',
+ '--raid-devices', 2, '/dev/sda2', '/dev/sdb2')])
self.assertEqual(raid_config, result)
@mock.patch.object(raid_utils, '_get_actual_component_devices',
@@ -3848,11 +3852,11 @@ class TestGenericHardwareManager(base.IronicAgentTest):
delay_on_retry=True),
mock.call('udevadm', 'settle'),
mock.call('mdadm', '--create', '/dev/md0', '--force', '--run',
- '--metadata=1', '--level', '0', '--raid-devices', 2,
- '/dev/sda1', '/dev/sdb1'),
+ '--metadata=1', '--level', '0', '--name', '/dev/md0',
+ '--raid-devices', 2, '/dev/sda1', '/dev/sdb1'),
mock.call('mdadm', '--create', '/dev/md1', '--force', '--run',
- '--metadata=1', '--level', '1', '--raid-devices', 2,
- '/dev/sda2', '/dev/sdb2')])
+ '--metadata=1', '--level', '1', '--name', '/dev/md1',
+ '--raid-devices', 2, '/dev/sda2', '/dev/sdb2')])
self.assertEqual(raid_config, result)
@mock.patch.object(raid_utils, '_get_actual_component_devices',
@@ -3941,11 +3945,11 @@ class TestGenericHardwareManager(base.IronicAgentTest):
delay_on_retry=True),
mock.call('udevadm', 'settle'),
mock.call('mdadm', '--create', '/dev/md0', '--force', '--run',
- '--metadata=1', '--level', '1', '--raid-devices', 2,
- '/dev/sda1', '/dev/sdb1'),
+ '--metadata=1', '--level', '1', '--name', '/dev/md0',
+ '--raid-devices', 2, '/dev/sda1', '/dev/sdb1'),
mock.call('mdadm', '--create', '/dev/md1', '--force', '--run',
- '--metadata=1', '--level', '0', '--raid-devices', 2,
- '/dev/sda2', '/dev/sdb2')])
+ '--metadata=1', '--level', '0', '--name', '/dev/md1',
+ '--raid-devices', 2, '/dev/sda2', '/dev/sdb2')])
self.assertEqual(raid_config, result)
self.assertEqual(2, mock_list_parts.call_count)
@@ -4289,11 +4293,13 @@ class TestGenericHardwareManager(base.IronicAgentTest):
delay_on_retry=True),
mock.call('udevadm', 'settle'),
mock.call('mdadm', '--create', '/dev/md0', '--force', '--run',
- '--metadata=1', '--level', '1', '--raid-devices', 2,
- '/dev/nvme0n1p1', '/dev/nvme1n1p1'),
+ '--metadata=1', '--level', '1', '--name', '/dev/md0',
+ '--raid-devices', 2, '/dev/nvme0n1p1',
+ '/dev/nvme1n1p1'),
mock.call('mdadm', '--create', '/dev/md1', '--force', '--run',
- '--metadata=1', '--level', '0', '--raid-devices', 2,
- '/dev/nvme0n1p2', '/dev/nvme1n1p2')])
+ '--metadata=1', '--level', '0', '--name', '/dev/md1',
+ '--raid-devices', 2, '/dev/nvme0n1p2', '/dev/nvme1n1p2')
+ ])
self.assertEqual(raid_config, result)
@mock.patch.object(disk_utils, 'list_partitions', autospec=True,
@@ -4710,6 +4716,30 @@ class TestGenericHardwareManager(base.IronicAgentTest):
raid_config, self.node)
@mock.patch.object(il_utils, 'execute', autospec=True)
+ def test_validate_configuration_invalid_duplicate_volume_name(
+ self, mocked_execute):
+ raid_config = {
+ "logical_disks": [
+ {
+ "size_gb": "100",
+ "raid_level": "1",
+ "controller": "software",
+ "volume_name": "thedisk"
+ },
+ {
+ "size_gb": "MAX",
+ "raid_level": "0",
+ "controller": "software",
+ "volume_name": "thedisk"
+ },
+ ]
+ }
+ mocked_execute.return_value = (hws.RAID_BLK_DEVICE_TEMPLATE, '')
+ self.assertRaises(errors.SoftwareRAIDError,
+ self.hardware.validate_configuration,
+ raid_config, self.node)
+
+ @mock.patch.object(il_utils, 'execute', autospec=True)
def test_get_system_vendor_info(self, mocked_execute):
mocked_execute.return_value = hws.LSHW_JSON_OUTPUT_V1
vendor_info = self.hardware.get_system_vendor_info()
diff --git a/ironic_python_agent/tests/unit/test_raid_utils.py b/ironic_python_agent/tests/unit/test_raid_utils.py
index 5b8577e2..6624304b 100644
--- a/ironic_python_agent/tests/unit/test_raid_utils.py
+++ b/ironic_python_agent/tests/unit/test_raid_utils.py
@@ -57,8 +57,29 @@ class TestRaidUtils(base.IronicAgentTest):
mock_execute.assert_called_once_with(
'mdadm', '--create', '/dev/md0', '--force', '--run',
- '--metadata=1', '--level', '1', '--raid-devices', 3,
- '/dev/sda1', '/dev/sdb1', '/dev/sdc1')
+ '--metadata=1', '--level', '1', '--name', '/dev/md0',
+ '--raid-devices', 3, '/dev/sda1', '/dev/sdb1', '/dev/sdc1')
+
+ @mock.patch.object(raid_utils, '_get_actual_component_devices',
+ autospec=True)
+ @mock.patch.object(utils, 'execute', autospec=True)
+ def test_create_raid_device_with_volume_name(self, mock_execute,
+ mocked_components):
+ logical_disk = {
+ "block_devices": ['/dev/sda', '/dev/sdb', '/dev/sdc'],
+ "raid_level": "1",
+ "volume_name": "diskname"
+ }
+ mocked_components.return_value = ['/dev/sda1',
+ '/dev/sdb1',
+ '/dev/sdc1']
+
+ raid_utils.create_raid_device(0, logical_disk)
+
+ mock_execute.assert_called_once_with(
+ 'mdadm', '--create', '/dev/md0', '--force', '--run',
+ '--metadata=1', '--level', '1', '--name', 'diskname',
+ '--raid-devices', 3, '/dev/sda1', '/dev/sdb1', '/dev/sdc1')
@mock.patch.object(raid_utils, '_get_actual_component_devices',
autospec=True)
@@ -76,8 +97,9 @@ class TestRaidUtils(base.IronicAgentTest):
expected_calls = [
mock.call('mdadm', '--create', '/dev/md0', '--force', '--run',
- '--metadata=1', '--level', '1', '--raid-devices', 3,
- '/dev/sda1', '/dev/sdb1', '/dev/sdc1'),
+ '--metadata=1', '--level', '1', '--name', '/dev/md0',
+ '--raid-devices', 3, '/dev/sda1', '/dev/sdb1',
+ '/dev/sdc1'),
mock.call('mdadm', '--add', '/dev/md0', '/dev/sdb1',
attempts=3, delay_on_retry=True)
]