diff --git a/tripleo_ansible/ansible_plugins/action/container_systemd.py b/tripleo_ansible/ansible_plugins/action/container_systemd.py index 696699bec..a8e0dd776 100644 --- a/tripleo_ansible/ansible_plugins/action/container_systemd.py +++ b/tripleo_ansible/ansible_plugins/action/container_systemd.py @@ -308,13 +308,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_{}.{}'.format(name, - extension)) - return + try: + if 'Result' in results['status']: + if results['status']['Result'] == 'success': + if results.get('changed', False): + self.changed = True + self.restarted.append('tripleo_{}' + '.{}'.format(name, extension)) + 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, extension='service'):