Merge pull request #218 from KivraChristoffer/Feature/fix-HP-raid

Bug: if HP raidcard have no discs
This commit is contained in:
Cyril Levis 2022-04-04 09:26:51 +02:00 committed by GitHub
commit 5f0aae6c01
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -10,7 +10,6 @@ REGEXP_CONTROLLER_HP = re.compile(r'Smart Array ([a-zA-Z0-9- ]+) in Slot ([0-9]+
class HPRaidControllerError(Exception): class HPRaidControllerError(Exception):
pass pass
def ssacli(sub_command): def ssacli(sub_command):
command = ["ssacli"] command = ["ssacli"]
command.extend(sub_command.split()) command.extend(sub_command.split())
@ -21,16 +20,19 @@ def ssacli(sub_command):
) )
p.wait() p.wait()
stdout = p.stdout.read().decode("utf-8") stdout = p.stdout.read().decode("utf-8")
if p.returncode != 0: if p.returncode == 1 and stdout.find('does not have any physical') == -1:
mesg = "Failed to execute command '{}':\n{}".format( mesg = "Failed to execute command '{}':\n{}".format(
" ".join(command), stdout " ".join(command), stdout
) )
raise HPRaidControllerError(mesg) raise HPRaidControllerError(mesg)
lines = stdout.split('\n') else:
lines = list(filter(None, lines)) if stdout.find('does not have any physical') != -1:
return list()
else:
lines = stdout.split('\n')
lines = list(filter(None, lines))
return lines return lines
def _parse_ctrl_output(lines): def _parse_ctrl_output(lines):
controllers = {} controllers = {}
current_ctrl = None current_ctrl = None