From bfd8b1157f2de4db3453dd7545fcb6f3332ce8e2 Mon Sep 17 00:00:00 2001 From: Alberto Planas Date: Tue, 12 Mar 2019 10:36:09 +0100 Subject: [PATCH] mdadm_raid: Optionally ignore errors on examine. During the RAID creation, the code examine each device to decide if belongs to an already present array or not. The first time that the RAID is created, is expected that examine will fail. This patch add an optional parameter to examine, to ignore the fail in the logs. Also calls examine with this parameter during the RAID creation. --- salt/modules/mdadm_raid.py | 12 ++++++++++-- salt/states/mdadm_raid.py | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/salt/modules/mdadm_raid.py b/salt/modules/mdadm_raid.py index 74889cd62bc0..7b388b42b6b6 100644 --- a/salt/modules/mdadm_raid.py +++ b/salt/modules/mdadm_raid.py @@ -360,17 +360,25 @@ def assemble(name, return __salt__['cmd.run'](cmd, python_shell=False) -def examine(device): +def examine(device, quiet=False): ''' Show detail for a specified RAID component device + device + Device to examine, that is part of the RAID + + quiet + If the device is not part of the RAID, do not show any error + CLI Example: .. code-block:: bash salt '*' raid.examine '/dev/sda1' ''' - res = __salt__['cmd.run_stdout']('mdadm -Y -E {0}'.format(device), output_loglevel='trace', python_shell=False) + res = __salt__['cmd.run_stdout']('mdadm -Y -E {0}'.format(device), + python_shell=False, + ignore_retcode=quiet) ret = {} for line in res.splitlines(): diff --git a/salt/states/mdadm_raid.py b/salt/states/mdadm_raid.py index 82b78e69adec..3e10905b2dc8 100644 --- a/salt/states/mdadm_raid.py +++ b/salt/states/mdadm_raid.py @@ -98,7 +98,7 @@ def present(name, if dev == 'missing' or not __salt__['file.access'](dev, 'f'): missing.append(dev) continue - superblock = __salt__['raid.examine'](dev) + superblock = __salt__['raid.examine'](dev, quiet=True) if 'MD_UUID' in superblock: uuid = superblock['MD_UUID']