From ab8dee03867a5868bc1ec99f45481313bab88660 Mon Sep 17 00:00:00 2001 From: Dmitry Tantsur Date: Fri, 20 Nov 2020 17:07:00 +0100 Subject: [PATCH] Make mdadm a soft requirement No point in requiring it for deployments that don't use software RAID. Change-Id: I8b40f02cc81d3154f98fa3f2cbb4d3c7319291b8 --- ironic_python_agent/hardware.py | 7 +++++++ releasenotes/notes/mdadm-d5b8c186182620b1.yaml | 5 +++++ 2 files changed, 12 insertions(+) create mode 100644 releasenotes/notes/mdadm-d5b8c186182620b1.yaml diff --git a/ironic_python_agent/hardware.py b/ironic_python_agent/hardware.py index e142fdb9e..53b7f705f 100644 --- a/ironic_python_agent/hardware.py +++ b/ironic_python_agent/hardware.py @@ -305,6 +305,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 @@ -356,6 +360,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).