diff --git a/ironic_python_agent/hardware.py b/ironic_python_agent/hardware.py index cb8e34fc9..345d7a5e1 100644 --- a/ironic_python_agent/hardware.py +++ b/ironic_python_agent/hardware.py @@ -311,6 +311,10 @@ def is_md_device(raid_device): utils.execute('mdadm', '--detail', raid_device) LOG.debug("%s is an md device", raid_device) return True + except FileNotFoundError: + LOG.debug('mdadm has not been found, assuming %s is not an md device', + raid_device) + return False except processutils.ProcessExecutionError: LOG.debug("%s is not an md device", raid_device) return False @@ -362,6 +366,9 @@ def _md_scan_and_assemble(): """ try: utils.execute('mdadm', '--assemble', '--scan', '--verbose') + except FileNotFoundError: + LOG.warning('mdadm has not been found, RAID devices will not be ' + 'supported') except processutils.ProcessExecutionError: LOG.info('No new RAID devices assembled during start-up') diff --git a/releasenotes/notes/mdadm-d5b8c186182620b1.yaml b/releasenotes/notes/mdadm-d5b8c186182620b1.yaml new file mode 100644 index 000000000..18d605234 --- /dev/null +++ b/releasenotes/notes/mdadm-d5b8c186182620b1.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + The ``mdadm`` utility is no longer a hard requirement. It's still required + if software RAID is used (even when not managed by ironic).