summaryrefslogtreecommitdiff
path: root/bin/ansible-pull
diff options
context:
space:
mode:
authorMatt <matt.schurenko@gmail.com>2014-01-22 00:01:51 -0800
committerMatt <matt.schurenko@gmail.com>2014-01-22 00:01:51 -0800
commit1ef8f279b9d24a13b5b6788cca44af07580fb2cb (patch)
treec87b95a25feea28c07f90214d6c76dddd52a5f75 /bin/ansible-pull
parent61d283e2ad58916d640b129cdd0b1ef866bcb332 (diff)
downloadansible-1ef8f279b9d24a13b5b6788cca44af07580fb2cb.tar.gz
added random sleep option to ansible-pull
Diffstat (limited to 'bin/ansible-pull')
-rwxr-xr-xbin/ansible-pull17
1 files changed, 16 insertions, 1 deletions
diff --git a/bin/ansible-pull b/bin/ansible-pull
index 3253ced80c..9a338edfa7 100755
--- a/bin/ansible-pull
+++ b/bin/ansible-pull
@@ -44,6 +44,8 @@ import subprocess
import sys
import datetime
import socket
+import random
+import time
from ansible import utils
from ansible.utils import cmd_functions
@@ -101,6 +103,8 @@ def main(args):
help='purge checkout after playbook run')
parser.add_option('-o', '--only-if-changed', dest='ifchanged', default=False, action='store_true',
help='only run the playbook if the repository has been updated')
+ parser.add_option('-s', '--sleep', dest='sleep', default=None,
+ help='sleep for random interval (between 0 and n number of seconds) before starting. this is a useful way to disperse git requests')
parser.add_option('-f', '--force', dest='force', default=False,
action='store_true',
help='run the playbook even if the repository could '
@@ -159,7 +163,18 @@ def main(args):
inv_opts, base_opts, options.module_name, repo_opts
)
- # RUN THE CHECKOUT COMMAND
+ if options.sleep:
+ try:
+ secs = random.randint(0,int(options.sleep));
+ except ValueError:
+ parser.error("%s is not a number." % options.sleep)
+ return 1
+
+ print >>sys.stderr, "Sleeping for %d seconds..." % secs
+ time.sleep(secs);
+
+
+ # RUN THe CHECKOUT COMMAND
rc, out, err = cmd_functions.run_cmd(cmd, live=True)
if rc != 0: