fix: deadlock storcli inventory

When there is a lot of data return by storcli due to a lot of disk, the inventory was in deadlock
Its a known problem, see:
https://docs.python.org/3/library/subprocess.html#subprocess.Popen.wait
This commit is contained in:
Cyril Levis 2022-11-30 09:49:51 +01:00
parent 5b0df6ca05
commit bf65da0c58
No known key found for this signature in database
GPG key ID: 6DB88737C11F5A48

View file

@ -21,14 +21,17 @@ def storecli(sub_command):
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT
)
p.wait()
stdout = p.stdout.read().decode("utf-8")
if p.returncode != 0:
stdout, stderr = p.communicate()
if stderr:
mesg = "Failed to execute command '{}':\n{}".format(
" ".join(command), stdout
)
raise StorcliControllerError(mesg)
stdout = stdout.decode("utf-8")
data = json.loads(stdout)
controllers = dict([
(
c['Command Status']['Controller'],