library/ceph_volume: look for error messages in stderr

Error message were moved to from stdout in stderr here -
b8d6dcbe9f (diff-20f7c578a4e69ec61a5869d706567a24R137).

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1793542
Signed-off-by: Rishabh Dave <ridave@redhat.com>
(cherry picked from commit 4249d1e02d)
pull/5297/head v3.2.41
Rishabh Dave 2020-04-07 17:20:35 +05:30 committed by Dimitri Savineau
parent 65b0e9bb5d
commit 34cf0e5301
1 changed files with 12 additions and 4 deletions

View File

@ -590,9 +590,17 @@ def run_module():
try:
report_result = json.loads(out)
except ValueError:
strategy_change = "strategy changed" in out
if strategy_change:
out = json.dumps({"changed": False, "stdout": out.rstrip("\r\n")})
strategy_changed_in_out = "strategy changed" in out
strategy_changed_in_err = "strategy changed" in err
strategy_changed = strategy_changed_in_out or \
strategy_changed_in_err
if strategy_changed:
if strategy_changed_in_out:
out = json.dumps({"changed": False,
"stdout": out.rstrip("\r\n")})
elif strategy_changed_in_err:
out = json.dumps({"changed": False,
"stderr": err.rstrip("\r\n")})
rc = 0
changed = False
else:
@ -604,7 +612,7 @@ def run_module():
rc=rc,
changed=changed,
)
if strategy_change:
if strategy_changed:
module.exit_json(**result)
module.fail_json(msg='non-zero return code', **result)