From ab7dc2d7b0e2964eafc387f3dd73e52afd0332de Mon Sep 17 00:00:00 2001 From: Daniel Narvaez Date: Tue, 20 Nov 2012 09:06:23 +0000 Subject: Retry git commands that requires the network --- (limited to 'devbot/command.py') diff --git a/devbot/command.py b/devbot/command.py index 9a39a06..9a8b5e2 100644 --- a/devbot/command.py +++ b/devbot/command.py @@ -1,12 +1,26 @@ import subprocess +import time -def run(args, test=False): +def run(args, test=False, retry=0): print " ".join(args) - if not test: - subprocess.check_call(args) + if test: + return -def run_with_sudo(args, test=False): + tries = 0 + while tries < retry + 1: + try: + tries = tries + 1 + subprocess.check_call(args) + return + except subprocess.CalledProcessError, e: + if tries < retry + 1: + print "Retrying (attempt %d) in 1 minute" % tries + time.sleep(60) + else: + raise e + +def run_with_sudo(args, test=False, retry=0): args_with_sudo = ["sudo"] args_with_sudo.extend(args) - run(args_with_sudo, test=test) + run(args_with_sudo, test=test, retry=retry) -- cgit v0.9.1