From fca91fe83ed1f7223a4fdbed9e7803a3555bcc86 Mon Sep 17 00:00:00 2001
From: Mark Goddard <mark@stackhpc.com>
Date: Mon, 12 Nov 2018 10:28:35 +0000
Subject: [PATCH] Factor out OpenStack release detection playbook

We copy-paste the same play into various playbooks to detect
openstack_release. This change factors that code into a separate
playbook that is imported.

Change-Id: I5fea005642b960080bf5e43455618dc24766c386
---
 ansible/bifrost.yml          | 18 +++---------------
 ansible/detect-release.yml   | 16 ++++++++++++++++
 ansible/mariadb_backup.yml   | 18 +++---------------
 ansible/mariadb_recovery.yml | 18 +++---------------
 ansible/site.yml             | 18 +++---------------
 5 files changed, 28 insertions(+), 60 deletions(-)
 create mode 100644 ansible/detect-release.yml

diff --git a/ansible/bifrost.yml b/ansible/bifrost.yml
index 1769ce8e2..2adedcc1d 100644
--- a/ansible/bifrost.yml
+++ b/ansible/bifrost.yml
@@ -1,19 +1,7 @@
 ---
-- name: Detect openstack_release variable
-  hosts: bifrost
-  gather_facts: false
-  tasks:
-    - name: Get current kolla-ansible version number
-      local_action: command python -c "import pbr.version; print(pbr.version.VersionInfo('kolla-ansible'))"
-      register: kolla_ansible_version
-      changed_when: false
-      when: openstack_release == "auto"
-
-    - name: Set openstack_release variable
-      set_fact:
-        openstack_release: "{{ kolla_ansible_version.stdout }}"
-      when: openstack_release == "auto"
-  tags: always
+- import_playbook: detect-release.yml
+  vars:
+    detect_release_hosts: bifrost
 
 - name: Apply role bifrost
   hosts: bifrost
diff --git a/ansible/detect-release.yml b/ansible/detect-release.yml
new file mode 100644
index 000000000..406a54499
--- /dev/null
+++ b/ansible/detect-release.yml
@@ -0,0 +1,16 @@
+---
+- name: Detect openstack_release variable
+  hosts: "{{ detect_release_hosts }}"
+  gather_facts: false
+  tasks:
+    - name: Get current kolla-ansible version number
+      local_action: command python -c "import pbr.version; print(pbr.version.VersionInfo('kolla-ansible'))"
+      register: kolla_ansible_version
+      changed_when: false
+      when: openstack_release == "auto"
+
+    - name: Set openstack_release variable
+      set_fact:
+        openstack_release: "{{ kolla_ansible_version.stdout }}"
+      when: openstack_release == "auto"
+  tags: always
diff --git a/ansible/mariadb_backup.yml b/ansible/mariadb_backup.yml
index 2bd9f9af9..f3a121886 100644
--- a/ansible/mariadb_backup.yml
+++ b/ansible/mariadb_backup.yml
@@ -1,19 +1,7 @@
 ---
-- name: Detect openstack_release variable
-  hosts: mariadb
-  gather_facts: false
-  tasks:
-    - name: Get current kolla-ansible version number
-      local_action: command python -c "import pbr.version; print(pbr.version.VersionInfo('kolla-ansible'))"
-      register: kolla_ansible_version
-      changed_when: false
-      when: openstack_release == "auto"
-
-    - name: Set openstack_release variable
-      set_fact:
-        openstack_release: "{{ kolla_ansible_version.stdout }}"
-      when: openstack_release == "auto"
-  tags: always
+- import_playbook: detect-release.yml
+  vars:
+    detect_release_hosts: mariadb
 
 - name: Backup MariaDB
   hosts: mariadb
diff --git a/ansible/mariadb_recovery.yml b/ansible/mariadb_recovery.yml
index 2fed6de36..a37bf9d5f 100644
--- a/ansible/mariadb_recovery.yml
+++ b/ansible/mariadb_recovery.yml
@@ -1,19 +1,7 @@
 ---
-- name: Detect openstack_release variable
-  hosts: mariadb
-  gather_facts: false
-  tasks:
-    - name: Get current kolla-ansible version number
-      local_action: command python -c "import pbr.version; print(pbr.version.VersionInfo('kolla-ansible'))"
-      register: kolla_ansible_version
-      changed_when: false
-      when: openstack_release == "auto"
-
-    - name: Set openstack_release variable
-      set_fact:
-        openstack_release: "{{ kolla_ansible_version.stdout }}"
-      when: openstack_release == "auto"
-  tags: always
+- import_playbook: detect-release.yml
+  vars:
+    detect_release_hosts: mariadb
 
 - name: Recover mariadb
   hosts: mariadb
diff --git a/ansible/site.yml b/ansible/site.yml
index 7c4c54ebd..1f2cbc2e4 100644
--- a/ansible/site.yml
+++ b/ansible/site.yml
@@ -32,21 +32,9 @@
         - (ansible_play_batch | length) != (groups['all'] | length)
   tags: always
 
-- name: Detect openstack_release variable
-  hosts: all
-  gather_facts: false
-  tasks:
-    - name: Get current kolla-ansible version number
-      local_action: command python -c "import pbr.version; print(pbr.version.VersionInfo('kolla-ansible'))"
-      register: kolla_ansible_version
-      changed_when: false
-      when: openstack_release == "auto"
-
-    - name: Set openstack_release variable
-      set_fact:
-        openstack_release: "{{ kolla_ansible_version.stdout }}"
-      when: openstack_release == "auto"
-  tags: always
+- import_playbook: detect-release.yml
+  vars:
+    detect_release_hosts: all
 
 - name: Apply role prechecks
   gather_facts: false
-- 
GitLab