Properly relay errors in execute_convergence_plan

Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
Joffrey F 2017-04-18 12:53:43 -07:00 committed by Joffrey F
parent ffb8f9f1b4
commit 1646e75591
1 changed files with 14 additions and 5 deletions
compose

View File

@ -378,12 +378,16 @@ class Service(object):
self.start_container(container)
return container
return parallel_execute(
containers, errors = parallel_execute(
range(i, i + scale),
lambda n: create_and_start(self, n),
lambda n: self.get_container_name(n),
"Creating"
)[0]
)
if errors:
raise OperationFailedError(errors.values()[0])
return containers
def _execute_convergence_recreate(self, containers, scale, timeout, detached, start):
if len(containers) > scale:
@ -395,12 +399,14 @@ class Service(object):
container, timeout=timeout, attach_logs=not detached,
start_new_container=start
)
containers = parallel_execute(
containers, errors = parallel_execute(
containers,
recreate,
lambda c: c.name,
"Recreating"
)[0]
)
if errors:
raise OperationFailedError(errors.values()[0])
if len(containers) < scale:
containers.extend(self._execute_convergence_create(
scale - len(containers), detached, start
@ -412,13 +418,16 @@ class Service(object):
self._downscale(containers[scale:], timeout)
containers = containers[:scale]
if start:
parallel_execute(
_, errors = parallel_execute(
containers,
lambda c: self.start_container_if_stopped(c, attach_logs=not detached),
lambda c: c.name,
"Starting"
)
if errors:
raise OperationFailedError(errors.values()[0])
if len(containers) < scale:
containers.extend(self._execute_convergence_create(
scale - len(containers), detached, start