Fix RAID volume name

Use just md<index> as the default volume name if a volume name is not defined.
The original change (https://review.opendev.org/c/openstack/ironic-python-agent/+/853182)
introduced an error:

mdadm: Value "/dev/md0" cannot be set as name. Reason: Not POSIX compatible.\n

This change fixes it.

Closes-Bug: #2073406
Change-Id: Ic8bd473801fcb92fc814f6ad4e1d6dc316783bf3
This commit is contained in:
kubajj
2025-01-15 12:34:36 +00:00
parent 06077cb88e
commit 6dceb33209
3 changed files with 21 additions and 21 deletions

View File

@@ -227,7 +227,7 @@ def create_raid_device(index, logical_disk):
volume_name = logical_disk.get('volume_name')
try:
if volume_name is None:
volume_name = md_device
volume_name = 'md%d' % index
LOG.debug("Creating md device %(dev)s with name %(name)s"
"on %(comp)s",
{'dev': md_device, 'name': volume_name,

View File

@@ -3637,10 +3637,10 @@ class TestGenericHardwareManager(base.IronicAgentTest):
delay_on_retry=True),
mock.call('udevadm', 'settle'),
mock.call('mdadm', '--create', '/dev/md0', '--force', '--run',
'--metadata=1', '--level', '1', '--name', '/dev/md0',
'--metadata=1', '--level', '1', '--name', 'md0',
'--raid-devices', 2, '/dev/sda1', '/dev/sdb1'),
mock.call('mdadm', '--create', '/dev/md1', '--force', '--run',
'--metadata=1', '--level', '0', '--name', '/dev/md1',
'--metadata=1', '--level', '0', '--name', 'md1',
'--raid-devices', 2, '/dev/sda2', '/dev/sdb2')])
self.assertEqual(raid_config, result)
@@ -3742,11 +3742,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', '--name', '/dev/md0',
'--metadata=1', '--level', '1', '--name', 'md0',
'--raid-devices', 3, '/dev/sda1', '/dev/sdb1',
'/dev/sdc1'),
mock.call('mdadm', '--create', '/dev/md1', '--force', '--run',
'--metadata=1', '--level', '5', '--name', '/dev/md1',
'--metadata=1', '--level', '5', '--name', 'md1',
'--raid-devices', 3, '/dev/sda2', '/dev/sdb2',
'/dev/sdc2')])
self.assertEqual(raid_config, result)
@@ -3860,11 +3860,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', '--name', '/dev/md0',
'--metadata=1', '--level', '1', '--name', 'md0',
'--raid-devices', 4, '/dev/sda1', '/dev/sdb1',
'/dev/sdc1', '/dev/sdd1'),
mock.call('mdadm', '--create', '/dev/md1', '--force', '--run',
'--metadata=1', '--level', '6', '--name', '/dev/md1',
'--metadata=1', '--level', '6', '--name', 'md1',
'--raid-devices', 4, '/dev/sda2', '/dev/sdb2',
'/dev/sdc2', '/dev/sdd2')])
self.assertEqual(raid_config, result)
@@ -3943,10 +3943,10 @@ class TestGenericHardwareManager(base.IronicAgentTest):
delay_on_retry=True),
mock.call('udevadm', 'settle'),
mock.call('mdadm', '--create', '/dev/md0', '--force', '--run',
'--metadata=1', '--level', '1', '--name', '/dev/md0',
'--metadata=1', '--level', '1', '--name', 'md0',
'--raid-devices', 2, '/dev/sda1', '/dev/sdb1'),
mock.call('mdadm', '--create', '/dev/md1', '--force', '--run',
'--metadata=1', '--level', '0', '--name', '/dev/md1',
'--metadata=1', '--level', '0', '--name', 'md1',
'--raid-devices', 2, '/dev/sda2', '/dev/sdb2')])
self.assertEqual(raid_config, result)
@@ -4030,10 +4030,10 @@ class TestGenericHardwareManager(base.IronicAgentTest):
delay_on_retry=True),
mock.call('udevadm', 'settle'),
mock.call('mdadm', '--create', '/dev/md0', '--force', '--run',
'--metadata=1', '--level', '1', '--name', '/dev/md0',
'--metadata=1', '--level', '1', '--name', 'md0',
'--raid-devices', 2, '/dev/sda1', '/dev/sdb1'),
mock.call('mdadm', '--create', '/dev/md1', '--force', '--run',
'--metadata=1', '--level', '0', '--name', '/dev/md1',
'--metadata=1', '--level', '0', '--name', 'md1',
'--raid-devices', 2, '/dev/sda2', '/dev/sdb2')])
self.assertEqual(raid_config, result)
@@ -4112,10 +4112,10 @@ class TestGenericHardwareManager(base.IronicAgentTest):
delay_on_retry=True),
mock.call('udevadm', 'settle'),
mock.call('mdadm', '--create', '/dev/md0', '--force', '--run',
'--metadata=1', '--level', '1', '--name', '/dev/md0',
'--metadata=1', '--level', '1', '--name', 'md0',
'--raid-devices', 2, '/dev/sda1', '/dev/sdb1'),
mock.call('mdadm', '--create', '/dev/md1', '--force', '--run',
'--metadata=1', '--level', '0', '--name', '/dev/md1',
'--metadata=1', '--level', '0', '--name', 'md1',
'--raid-devices', 2, '/dev/sda2', '/dev/sdb2')])
self.assertEqual(raid_config, result)
@@ -4196,10 +4196,10 @@ class TestGenericHardwareManager(base.IronicAgentTest):
delay_on_retry=True),
mock.call('udevadm', 'settle'),
mock.call('mdadm', '--create', '/dev/md0', '--force', '--run',
'--metadata=1', '--level', '0', '--name', '/dev/md0',
'--metadata=1', '--level', '0', '--name', 'md0',
'--raid-devices', 2, '/dev/sda1', '/dev/sdb1'),
mock.call('mdadm', '--create', '/dev/md1', '--force', '--run',
'--metadata=1', '--level', '1', '--name', '/dev/md1',
'--metadata=1', '--level', '1', '--name', 'md1',
'--raid-devices', 2, '/dev/sda2', '/dev/sdb2')])
self.assertEqual(raid_config, result)
@@ -4289,10 +4289,10 @@ class TestGenericHardwareManager(base.IronicAgentTest):
delay_on_retry=True),
mock.call('udevadm', 'settle'),
mock.call('mdadm', '--create', '/dev/md0', '--force', '--run',
'--metadata=1', '--level', '1', '--name', '/dev/md0',
'--metadata=1', '--level', '1', '--name', 'md0',
'--raid-devices', 2, '/dev/sda1', '/dev/sdb1'),
mock.call('mdadm', '--create', '/dev/md1', '--force', '--run',
'--metadata=1', '--level', '0', '--name', '/dev/md1',
'--metadata=1', '--level', '0', '--name', 'md1',
'--raid-devices', 2, '/dev/sda2', '/dev/sdb2')])
self.assertEqual(raid_config, result)
@@ -4637,11 +4637,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', '--name', '/dev/md0',
'--metadata=1', '--level', '1', '--name', 'md0',
'--raid-devices', 2, '/dev/nvme0n1p1',
'/dev/nvme1n1p1'),
mock.call('mdadm', '--create', '/dev/md1', '--force', '--run',
'--metadata=1', '--level', '0', '--name', '/dev/md1',
'--metadata=1', '--level', '0', '--name', 'md1',
'--raid-devices', 2, '/dev/nvme0n1p2', '/dev/nvme1n1p2')
])
self.assertEqual(raid_config, result)

View File

@@ -57,7 +57,7 @@ class TestRaidUtils(base.IronicAgentTest):
mock_execute.assert_called_once_with(
'mdadm', '--create', '/dev/md0', '--force', '--run',
'--metadata=1', '--level', '1', '--name', '/dev/md0',
'--metadata=1', '--level', '1', '--name', 'md0',
'--raid-devices', 3, '/dev/sda1', '/dev/sdb1', '/dev/sdc1')
@mock.patch.object(raid_utils, '_get_actual_component_devices',
@@ -97,7 +97,7 @@ class TestRaidUtils(base.IronicAgentTest):
expected_calls = [
mock.call('mdadm', '--create', '/dev/md0', '--force', '--run',
'--metadata=1', '--level', '1', '--name', '/dev/md0',
'--metadata=1', '--level', '1', '--name', 'md0',
'--raid-devices', 3, '/dev/sda1', '/dev/sdb1',
'/dev/sdc1'),
mock.call('mdadm', '--add', '/dev/md0', '/dev/sdb1',