Merge "Add a docker pull retry to docker-puppet.py"

This commit is contained in:
Jenkins 2017-09-10 04:06:37 +00:00 committed by Gerrit Code Review
commit b5c18ded6a

View File

@ -25,6 +25,7 @@ import os
import subprocess import subprocess
import sys import sys
import tempfile import tempfile
import time
import multiprocessing import multiprocessing
logger = None logger = None
@ -59,10 +60,23 @@ def short_hostname():
def pull_image(name): def pull_image(name):
log.info('Pulling image: %s' % name) log.info('Pulling image: %s' % name)
retval = -1
count = 0
while retval != 0:
count += 1
subproc = subprocess.Popen(['/usr/bin/docker', 'pull', name], subproc = subprocess.Popen(['/usr/bin/docker', 'pull', name],
stdout=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE) stderr=subprocess.PIPE)
cmd_stdout, cmd_stderr = subproc.communicate() cmd_stdout, cmd_stderr = subproc.communicate()
retval = subproc.returncode
if retval != 0:
time.sleep(3)
log.warning('docker pull failed: %s' % cmd_stderr)
log.warning('retrying pulling image: %s' % name)
if count >= 5:
log.error('Failed to pull image: %s' % name)
break
if cmd_stdout: if cmd_stdout:
log.debug(cmd_stdout) log.debug(cmd_stdout)
if cmd_stderr: if cmd_stderr: