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:
parent
574bcac277
commit
1ae799f361
1 changed files with 2 additions and 2 deletions
|
@ -183,14 +183,14 @@ def main():
|
||||||
if module.check_mode:
|
if module.check_mode:
|
||||||
module.exit_json(changed=True)
|
module.exit_json(changed=True)
|
||||||
for process_name in to_take_action_on:
|
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:
|
if '%s: %s' % (process_name, expected_result) not in out:
|
||||||
module.fail_json(msg=out)
|
module.fail_json(msg=out)
|
||||||
|
|
||||||
module.exit_json(changed=True, name=name, state=state, affected=to_take_action_on)
|
module.exit_json(changed=True, name=name, state=state, affected=to_take_action_on)
|
||||||
|
|
||||||
if state == 'restarted':
|
if state == 'restarted':
|
||||||
rc, out, err = run_supervisorctl('update')
|
rc, out, err = run_supervisorctl('update', check_rc=True)
|
||||||
processes = get_matched_processes()
|
processes = get_matched_processes()
|
||||||
take_action_on_processes(processes, lambda s: True, 'restart', 'started')
|
take_action_on_processes(processes, lambda s: True, 'restart', 'started')
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue