Merge "Add --detailed-exitcodes when running puppet via ansible"
This commit is contained in:
commit
1c0909939b
|
@ -15,9 +15,10 @@
|
|||
command: >-
|
||||
puppet apply {{ host_puppet_config_debug|default('') }}
|
||||
--modulepath=/etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
|
||||
--detailed-exitcodes
|
||||
--logdest syslog --logdest console --color=false
|
||||
/var/lib/tripleo-config/puppet_step_config.pp
|
||||
changed_when: false
|
||||
changed_when: outputs.rc == 2
|
||||
check_mode: no
|
||||
register: outputs
|
||||
failed_when: false
|
||||
|
@ -25,7 +26,7 @@
|
|||
become: true
|
||||
- debug: var=(outputs.stderr|default('')).split('\n')|union(outputs.stdout_lines|default([]))
|
||||
when: outputs is defined
|
||||
failed_when: outputs|failed
|
||||
failed_when: outputs.rc not in [0, 2]
|
||||
######################################
|
||||
# Generate config via docker-puppet.py
|
||||
######################################
|
||||
|
|
|
@ -223,8 +223,14 @@ def mp_puppet_config((config_volume, puppet_tags, manifest, config_image, volume
|
|||
touch /tmp/the_origin_of_time
|
||||
sync
|
||||
|
||||
set +e
|
||||
FACTER_hostname=$HOSTNAME FACTER_uuid=docker /usr/bin/puppet apply \
|
||||
--color=false --logdest syslog --logdest console $TAGS /etc/config.pp
|
||||
--detailed-exitcodes --color=false --logdest syslog --logdest console $TAGS /etc/config.pp
|
||||
rc=$?
|
||||
set -e
|
||||
if [ $rc -ne 2 -a $rc -ne 0 ]; then
|
||||
exit $rc
|
||||
fi
|
||||
|
||||
# Disables archiving
|
||||
if [ -z "$NO_ARCHIVE" ]; then
|
||||
|
@ -304,7 +310,9 @@ def mp_puppet_config((config_volume, puppet_tags, manifest, config_image, volume
|
|||
subproc = subprocess.Popen(dcmd, stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE, env=env)
|
||||
cmd_stdout, cmd_stderr = subproc.communicate()
|
||||
if subproc.returncode != 0:
|
||||
# puppet with --detailed-exitcodes will return 0 for success and no changes
|
||||
# and 2 for success and resource changes. Other numbers are failures
|
||||
if subproc.returncode not in [0, 2]:
|
||||
log.error('Failed running docker-puppet.py for %s' % config_volume)
|
||||
if cmd_stdout:
|
||||
log.error(cmd_stdout)
|
||||
|
@ -354,7 +362,7 @@ 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:
|
||||
if returncode not in [0, 2]:
|
||||
log.error('ERROR configuring %s' % config_volume)
|
||||
success = False
|
||||
|
||||
|
|
Loading…
Reference in New Issue