From f2ce27fae9772a1c51c39518161703c0dc850741 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 25 Nov 2011 11:37:58 +0530 Subject: [PATCH] When uploading installers, try repeatedly in case of failure --- setup/upload.py | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/setup/upload.py b/setup/upload.py index 4d0fc44712..1d0c05282c 100644 --- a/setup/upload.py +++ b/setup/upload.py @@ -141,8 +141,17 @@ class UploadToGoogleCode(Command): # {{{ 'dmg':'OSX','bz2':'Linux','gz':'All'}[ext] desc = installer_description(fname) start = time.time() - path = self.upload(os.path.abspath(fname), desc, - labels=[typ, op, 'Featured']) + for i in range(5): + try: + path = self.upload(os.path.abspath(fname), desc, + labels=[typ, op, 'Featured']) + except: + import traceback + traceback.print_exc() + print ('\nUpload failed, trying again in 30 secs') + time.sleep(30) + else: + break self.info('Uploaded to:', path, 'in', int(time.time() - start), 'seconds') return path @@ -312,9 +321,16 @@ class UploadToSourceForge(Command): # {{{ if not os.path.exists(x): continue start = time.time() self.info('Uploading', x) - check_call(['rsync', '-z', '--progress', '-e', 'ssh -x', x, - '%s,%s@frs.sourceforge.net:%s'%(self.USERNAME, self.PROJECT, - self.rdir+'/')]) + for i in range(5): + try: + check_call(['rsync', '-z', '--progress', '-e', 'ssh -x', x, + '%s,%s@frs.sourceforge.net:%s'%(self.USERNAME, self.PROJECT, + self.rdir+'/')]) + except: + print ('\nUpload failed, trying again in 30 seconds') + time.sleep(30) + else: + break print 'Uploaded in', int(time.time() - start), 'seconds' print ('\n')