Add a docker pull retry to docker-puppet.py

Co-Authored-By: Ian Main <imain@redhat.com>

Change-Id: Iad6d38690340f4a064a4527c58ed439d91fa5188
Closes-bug: #1715136
This commit is contained in:
Dan Prince 2017-09-07 16:48:28 -04:00
parent 6ba9a71f40
commit d3b3361a76
1 changed files with 18 additions and 4 deletions

View File

@ -26,6 +26,7 @@ import sys
import subprocess
import sys
import tempfile
import time
import multiprocessing
logger = None
@ -59,10 +60,23 @@ def short_hostname():
def pull_image(name):
log.info('Pulling image: %s' % name)
subproc = subprocess.Popen(['/usr/bin/docker', 'pull', name],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
cmd_stdout, cmd_stderr = subproc.communicate()
retval = -1
count = 0
while retval != 0:
count += 1
subproc = subprocess.Popen(['/usr/bin/docker', 'pull', name],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
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:
log.debug(cmd_stdout)
if cmd_stderr: