Merge pull request #1285 from emonty/bug/1273

Don't use the timeout command if it's not there
reviewable/pr18780/r1
Brian Coca 9 years ago
commit 0f2b2030ce

@ -19,6 +19,11 @@ import os
import pipes
import stat
try:
import json
except ImportError:
import simplejson as json
DOCUMENTATION = '''
---
module: puppet
@ -38,13 +43,15 @@ options:
required: false
default: None
manifest:
desciption:
description:
- Path to the manifest file to run puppet apply on.
required: false
default: None
show_diff:
description:
- Should puppet return diffs of changes applied. Defaults to off to avoid leaking secret changes by default.
- >
Should puppet return diffs of changes applied. Defaults to off to
avoid leaking secret changes by default.
required: false
default: no
choices: [ "yes", "no" ]
@ -127,6 +134,9 @@ def main():
module.fail_json(
msg="Could not find puppet. Please ensure it is installed.")
global TIMEOUT_CMD
TIMEOUT_CMD = module.get_bin_path("timeout", False)
if p['manifest']:
if not os.path.exists(p['manifest']):
module.fail_json(
@ -139,7 +149,8 @@ def main():
PUPPET_CMD + " config print agent_disabled_lockfile")
if os.path.exists(stdout.strip()):
module.fail_json(
msg="Puppet agent is administratively disabled.", disabled=True)
msg="Puppet agent is administratively disabled.",
disabled=True)
elif rc != 0:
module.fail_json(
msg="Puppet agent state could not be determined.")
@ -150,19 +161,24 @@ def main():
module.params['facter_basename'],
module.params['facts'])
base_cmd = "timeout -s 9 %(timeout)s %(puppet_cmd)s" % dict(
timeout=pipes.quote(p['timeout']), puppet_cmd=PUPPET_CMD)
if TIMEOUT_CMD:
base_cmd = "%(timeout_cmd)s -s 9 %(timeout)s %(puppet_cmd)s" % dict(
timeout_cmd=TIMEOUT_CMD,
timeout=pipes.quote(p['timeout']),
puppet_cmd=PUPPET_CMD)
else:
base_cmd = PUPPET_CMD
if not p['manifest']:
cmd = ("%(base_cmd)s agent --onetime"
" --ignorecache --no-daemonize --no-usecacheonfailure --no-splay"
" --detailed-exitcodes --verbose") % dict(
" --ignorecache --no-daemonize --no-usecacheonfailure"
" --no-splay --detailed-exitcodes --verbose") % dict(
base_cmd=base_cmd,
)
if p['puppetmaster']:
cmd += " --server %s" % pipes.quote(p['puppetmaster'])
if p['show_diff']:
cmd += " --show_diff"
cmd += " --show-diff"
if p['environment']:
cmd += " --environment '%s'" % p['environment']
if module.check_mode:

Loading…
Cancel
Save