diff --git a/library/puppet b/library/puppet index 3f53f96..9fe120d 100644 --- a/library/puppet +++ b/library/puppet @@ -193,13 +193,13 @@ def main(): if not p['manifest']: cmd = ("%(base_cmd)s agent --onetime" " --ignorecache --no-daemonize --no-usecacheonfailure" - " --no-splay --detailed-exitcodes --verbose") % dict( + " --no-splay --verbose") % dict( base_cmd=base_cmd, ) if p['puppetmaster']: cmd += " --server %s" % pipes.quote(p['puppetmaster']) else: - cmd = "%s apply --detailed-exitcodes " % base_cmd + cmd = "%s apply " % base_cmd cmd += pipes.quote(p['manifest']) if p['logdest'] != 'stdout': cmd += " --logdest %s" % p['logdest'] @@ -208,9 +208,12 @@ def main(): if p['environment']: cmd += " --environment '%s'" % p['environment'] if module.check_mode or p['noop']: + # Noop causes detailed-exitcodes to sometimes erroneously + # return failures, so we only set detailed-exitcodes when + # running for real. cmd += " --noop" else: - cmd += " --no-noop" + cmd += " --no-noop --detailed-exitcodes" if p['debug']: cmd += " --debug" rc, stdout, stderr = module.run_command(cmd)