Exit with status 3 if no failures but unreachable.

Provide hints to playbook callers that a playbook execution had
unreachable vs failures. 2 == failures, 3 == no failures, but
unreachable hosts. 0 continues to be all good.
This commit is contained in:
Jesse Keating 2013-08-14 13:26:59 -07:00
parent 10a0f03cdc
commit 2b96c347dc
2 changed files with 11 additions and 4 deletions

View file

@ -159,7 +159,7 @@ if __name__ == '__main__':
if 'failed' in result or result.get('rc', 0) != 0:
sys.exit(2)
if results['dark']:
sys.exit(2)
sys.exit(3)
except errors.AnsibleError, e:
# Generic handler for ansible specific errors
callbacks.display("ERROR: %s" % str(e), stderr=True, color='red')

View file

@ -202,6 +202,7 @@ def main(args):
return 0
failed_hosts = []
unreachable_hosts = []
try:
@ -213,11 +214,15 @@ def main(args):
for h in hosts:
t = pb.stats.summarize(h)
if t['unreachable'] > 0 or t['failures'] > 0:
if t['failures'] > 0:
failed_hosts.append(h)
if t['unreachable'] > 0:
unreachable_hosts.append(h)
if len(failed_hosts) > 0:
filename = pb.generate_retry_inventory(failed_hosts)
retries = failed_hosts + unreachable_hosts
if len(retries) > 0:
filename = pb.generate_retry_inventory(retries)
if filename:
display(" to retry, use: --limit @%s\n" % filename)
@ -246,6 +251,8 @@ def main(args):
print ""
if len(failed_hosts) > 0:
return 2
if len(unreachable_hosts) > 0:
return 3
except errors.AnsibleError, e:
display("ERROR: %s" % e, color='red')