Better error handling in supervisorctl module.

If execution of supervisorctl was not successful (exit code > 0),
module silently supress this error and returns changed = false,
which turns to OK task state.
This is very confusing, when supervisorctl needs authentication,
and credentials are not specified in module or are incorrect,
services are not restarted/started/stopped without raising an error.
This commit is contained in:
Kamil Madac 2015-06-14 19:48:00 +02:00 committed by Matt Clay
parent 574bcac277
commit 1ae799f361

View file

@ -183,14 +183,14 @@ def main():
if module.check_mode:
module.exit_json(changed=True)
for process_name in to_take_action_on:
rc, out, err = run_supervisorctl(action, process_name)
rc, out, err = run_supervisorctl(action, process_name, check_rc=True)
if '%s: %s' % (process_name, expected_result) not in out:
module.fail_json(msg=out)
module.exit_json(changed=True, name=name, state=state, affected=to_take_action_on)
if state == 'restarted':
rc, out, err = run_supervisorctl('update')
rc, out, err = run_supervisorctl('update', check_rc=True)
processes = get_matched_processes()
take_action_on_processes(processes, lambda s: True, 'restart', 'started')