From 7fcc44c894888fd9ed4a5997fd7f82bfc8daf19e Mon Sep 17 00:00:00 2001
From: Jan Chaloupka <jchaloup@redhat.com>
Date: Tue, 28 Mar 2017 15:50:53 +0200
Subject: Make the OCP available version detection excluder free

When detecting available OCP version via repoquery,
use yum.conf file with exclude= set to an empty array.
So the detection is independent of the OCP excluder.
---
 roles/openshift_version/tasks/set_version_rpm.yml | 29 ++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

(limited to 'roles/openshift_version')

diff --git a/roles/openshift_version/tasks/set_version_rpm.yml b/roles/openshift_version/tasks/set_version_rpm.yml
index 7fa74e24f..1e7b5909e 100644
--- a/roles/openshift_version/tasks/set_version_rpm.yml
+++ b/roles/openshift_version/tasks/set_version_rpm.yml
@@ -5,14 +5,41 @@
     openshift_version: "{{ openshift_pkg_version[1:].split('-')[0] }}"
   when: openshift_pkg_version is defined and openshift_version is not defined
 
+# if {{ openshift.common.service_type}}-excluder is enabled,
+# the repoquery for {{ openshift.common.service_type}} will not work.
+# Thus, create a temporary yum,conf file where exclude= is set to an empty list
+- name: Create temporary yum.conf file
+  command: mktemp -d /tmp/yum.conf.XXXXXX
+  register: yum_conf_temp_file_result
+
+- set_fact:
+    yum_conf_temp_file: "{{yum_conf_temp_file_result.stdout}}/yum.conf"
+
+- name: Copy yum.conf into the temporary file
+  copy:
+    src: /etc/yum.conf
+    dest: "{{ yum_conf_temp_file }}"
+
+- name: Clear the exclude= list in the temporary yum.conf
+  lineinfile:
+    # since ansible 2.3 s/dest/path
+    dest: "{{ yum_conf_temp_file }}"
+    regexp: '^exclude='
+    line: 'exclude='
+
 - name: Gather common package version
   command: >
-    {{ repoquery_cmd }} --qf '%{version}' "{{ openshift.common.service_type}}"
+    {{ repoquery_cmd }} --config "{{ yum_conf_temp_file }}" --qf '%{version}' "{{ openshift.common.service_type}}"
   register: common_version
   failed_when: false
   changed_when: false
   when: openshift_version is not defined
 
+- name: Delete the temporary yum.conf
+  file:
+    path: "{{ yum_conf_temp_file_result.stdout }}"
+    state: absent
+
 - set_fact:
     openshift_version: "{{ common_version.stdout | default('0.0', True) }}"
   when: openshift_version is not defined
-- 
cgit v1.2.3