docker-puppet.py fail if any worker fails

Currently returncodes are ignored from docker puppet workers, so a
failed puppet apply may not manifest until later in the stack
deployment due to some other failure.

This change logs any failures at the end of the run and returns a
failure code if any worker returns a failure code.

Change-Id: I6a504dbeb4c0ac465ce10e7647830524fe0a1160
This commit is contained in:
Steve Baker 2017-03-09 02:19:59 +00:00
parent a1b3e2ee75
commit af03e4d34b
1 changed files with 10 additions and 1 deletions

View File

@ -253,4 +253,13 @@ for p in process_map:
# Fire off processes to perform each configuration. Defaults
# to the number of CPUs on the system.
p = multiprocessing.Pool(process_count)
p.map(mp_puppet_config, process_map)
returncodes = list(p.map(mp_puppet_config, process_map))
config_volumes = [pm[0] for pm in process_map]
success = True
for returncode, config_volume in zip(returncodes, config_volumes):
if returncode != 0:
print('ERROR configuring %s' % config_volume)
success = False
if not success:
sys.exit(1)