From 2ddf1fbfab4316b429d3462554c58087b97eb7ba Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Fri, 20 Sep 2019 12:52:55 +0100 Subject: [PATCH] Add retries to keystone resource registration tasks Sometimes things go wrong. We shouldn't fail a Kolla Ansible run because of a temporary failure when creating keystone resources. This task adds retries to the tasks in the service-ks-tasks role. Default is 5 retries with a 10 second delay, as is used in OpenStack Ansible. Change-Id: Ib692062fb93ba330bb9c8a35c684ad06652be8a2 --- .../service-ks-register/defaults/main.yml | 4 ++++ .../roles/service-ks-register/tasks/main.yml | 24 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/ansible/roles/service-ks-register/defaults/main.yml b/ansible/roles/service-ks-register/defaults/main.yml index c576091a6c..8c27c12cd9 100644 --- a/ansible/roles/service-ks-register/defaults/main.yml +++ b/ansible/roles/service-ks-register/defaults/main.yml @@ -12,3 +12,7 @@ service_ks_register_delegate_host: "{{ groups['control'][0] }}" service_ks_register_services: [] # A list of users and associated roles for this service to register with Keystone service_ks_register_users: [] +# Number of retries for each task. +service_ks_register_retries: 5 +# Delay between task retries. +service_ks_register_delay: 10 diff --git a/ansible/roles/service-ks-register/tasks/main.yml b/ansible/roles/service-ks-register/tasks/main.yml index a11da103ae..edba77d0ca 100644 --- a/ansible/roles/service-ks-register/tasks/main.yml +++ b/ansible/roles/service-ks-register/tasks/main.yml @@ -14,6 +14,10 @@ run_once: True loop: "{{ service_ks_register_services }}" delegate_to: "{{ service_ks_register_delegate_host }}" + register: service_ks_register_result + until: service_ks_register_result is success + retries: "{{ service_ks_register_retries }}" + delay: "{{ service_ks_register_delay }}" - name: Creating the {{ project_name }} endpoints become: true @@ -33,6 +37,10 @@ - "{{ service_ks_register_services }}" - endpoints delegate_to: "{{ service_ks_register_delegate_host }}" + register: service_ks_register_result + until: service_ks_register_result is success + retries: "{{ service_ks_register_retries }}" + delay: "{{ service_ks_register_delay }}" - name: Creating the {{ project_name }} service project become: true @@ -48,6 +56,10 @@ run_once: True with_items: "{{ service_ks_register_users | map(attribute='project') | unique | list }}" delegate_to: "{{ service_ks_register_delegate_host }}" + register: service_ks_register_result + until: service_ks_register_result is success + retries: "{{ service_ks_register_retries }}" + delay: "{{ service_ks_register_delay }}" - name: Creating the {{ project_name }} service users become: true @@ -69,6 +81,10 @@ label: user: "{{ item.user }}" project: "{{ item.project }}" + register: service_ks_register_result + until: service_ks_register_result is success + retries: "{{ service_ks_register_retries }}" + delay: "{{ service_ks_register_delay }}" - name: Creating the {{ project_name }} service roles become: true @@ -83,6 +99,10 @@ run_once: True with_items: "{{ service_ks_register_users | map(attribute='role') | unique | list }}" delegate_to: "{{ service_ks_register_delegate_host }}" + register: service_ks_register_result + until: service_ks_register_result is success + retries: "{{ service_ks_register_retries }}" + delay: "{{ service_ks_register_delay }}" - name: Granting the {{ project_name }} service user roles become: true @@ -105,3 +125,7 @@ user: "{{ item.user }}" role: "{{ item.role }}" project: "{{ item.project }}" + register: service_ks_register_result + until: service_ks_register_result is success + retries: "{{ service_ks_register_retries }}" + delay: "{{ service_ks_register_delay }}"