diff options
author | Jakub Jelinek <jakub.jelinek@cern.ch> | 2022-08-15 16:00:17 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub.jelinek@cern.ch> | 2022-09-02 14:51:42 +0000 |
commit | daa20b01d1522cd2748abb024b526dcb99562396 (patch) | |
tree | 260668a47194232d146212e3f370a1307be8efea /ironic_python_agent/raid_utils.py | |
parent | eb2215090aa0f8971e05f961a1c8aad3902638dc (diff) | |
download | ironic-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.py | 14 |
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) |