summaryrefslogtreecommitdiff
path: root/ironic_python_agent/raid_utils.py
diff options
context:
space:
mode:
authorJakub Jelinek <jakub.jelinek@cern.ch>2022-08-15 16:00:17 +0000
committerJakub Jelinek <jakub.jelinek@cern.ch>2022-09-02 14:51:42 +0000
commitdaa20b01d1522cd2748abb024b526dcb99562396 (patch)
tree260668a47194232d146212e3f370a1307be8efea /ironic_python_agent/raid_utils.py
parenteb2215090aa0f8971e05f961a1c8aad3902638dc (diff)
downloadironic-python-agent-daa20b01d1522cd2748abb024b526dcb99562396.tar.gz
Create RAIDs with volume name
Use 'volume_name' field from 'target_raid_config' to create logical disks if it is present Do not allow two logical disks to have the same volume name Change-Id: If3e4e9f8698ec3e0cb49717f8ed2087d2ba03f2c
Diffstat (limited to 'ironic_python_agent/raid_utils.py')
-rw-r--r--ironic_python_agent/raid_utils.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/ironic_python_agent/raid_utils.py b/ironic_python_agent/raid_utils.py
index 0a53eec5..3d5f260f 100644
--- a/ironic_python_agent/raid_utils.py
+++ b/ironic_python_agent/raid_utils.py
@@ -223,13 +223,19 @@ def create_raid_device(index, logical_disk):
# The schema check allows '1+0', but mdadm knows it as '10'.
if raid_level == '1+0':
raid_level = '10'
+ volume_name = logical_disk.get('volume_name')
try:
- LOG.debug("Creating md device %(dev)s on %(comp)s",
- {'dev': md_device, 'comp': component_devices})
+ if volume_name is None:
+ volume_name = md_device
+ LOG.debug("Creating md device %(dev)s with name %(name)s"
+ "on %(comp)s",
+ {'dev': md_device, 'name': volume_name,
+ 'comp': component_devices})
utils.execute('mdadm', '--create', md_device, '--force',
'--run', '--metadata=1', '--level', raid_level,
- '--raid-devices', len(component_devices),
- *component_devices)
+ '--name', volume_name, '--raid-devices',
+ len(component_devices), *component_devices)
+
except processutils.ProcessExecutionError as e:
msg = "Failed to create md device {} on {}: {}".format(
md_device, ' '.join(component_devices), e)