Browse Source

container_systemd: improve debugging if service never starts

If a service never starts, the "status" key won't exist so Ansible
raises with KeyError which is very misleading (we don't even have the
service name).

This make pass the KeyError exception, so we fail at the end of the loop
of attempts with proper Ansible raise and we give the service name.

Change-Id: I74f3d5b51bde1ec33b69b2488174eef9cc4a330d
changes/21/743221/1
Emilien Macchi 2 weeks ago
parent
commit
67d78a753c
1 changed files with 13 additions and 6 deletions
  1. +13
    -6
      tripleo_ansible/ansible_plugins/action/container_systemd.py

+ 13
- 6
tripleo_ansible/ansible_plugins/action/container_systemd.py View File

@@ -286,12 +286,19 @@ class ActionModule(ActionBase):
daemon_reload=False),
task_vars=tvars
)
if 'Result' in results['status']:
if results['status']['Result'] == 'success':
if results.get('changed', False):
self.changed = True
self.restarted.append('tripleo_{}.service'.format(name))
return
try:
if 'Result' in results['status']:
if results['status']['Result'] == 'success':
if results.get('changed', False):
self.changed = True
self.restarted.append('tripleo_{}'
'.service'.format(name))
return
except KeyError:
# if 'systemd' task failed to start the service, the 'status'
# key doesn't exist, so we'll use the final raise to report the
# issue if the service never start after the attempts.
pass
raise AnsibleActionFail('Service {} has not started yet'.format(name))

def _restart_services(self, service_names, task_vars):


Loading…
Cancel
Save