Silence service pull output when pulling in parallel

Signed-off-by: Evan Shaw <evan@vendhq.com>
This commit is contained in:
Evan Shaw 2017-02-13 16:16:07 +13:00
parent 05aa8c7285
commit f85da99ef3
2 changed files with 7 additions and 5 deletions

View File

@ -456,7 +456,7 @@ class Project(object):
def pull(self, service_names=None, ignore_pull_failures=False): def pull(self, service_names=None, ignore_pull_failures=False):
def pull_service(service): def pull_service(service):
service.pull(ignore_pull_failures) service.pull(ignore_pull_failures, True)
services = self.get_services(service_names, include_deps=False) services = self.get_services(service_names, include_deps=False)
parallel.parallel_execute( parallel.parallel_execute(

View File

@ -886,17 +886,19 @@ class Service(object):
return any(has_host_port(binding) for binding in self.options.get('ports', [])) return any(has_host_port(binding) for binding in self.options.get('ports', []))
def pull(self, ignore_pull_failures=False): def pull(self, ignore_pull_failures=False, silent=False):
if 'image' not in self.options: if 'image' not in self.options:
return return
repo, tag, separator = parse_repository_tag(self.options['image']) repo, tag, separator = parse_repository_tag(self.options['image'])
tag = tag or 'latest' tag = tag or 'latest'
log.info('Pulling %s (%s%s%s)...' % (self.name, repo, separator, tag)) if not silent:
log.info('Pulling %s (%s%s%s)...' % (self.name, repo, separator, tag))
try: try:
output = self.client.pull(repo, tag=tag, stream=True) output = self.client.pull(repo, tag=tag, stream=True)
return progress_stream.get_digest_from_pull( if not silent:
stream_output(output, sys.stdout)) return progress_stream.get_digest_from_pull(
stream_output(output, sys.stdout))
except (StreamOutputError, NotFound) as e: except (StreamOutputError, NotFound) as e:
if not ignore_pull_failures: if not ignore_pull_failures:
raise raise