From 9a02a7a96d4de691e1f265e88ff4d5ee3f0b7244 Mon Sep 17 00:00:00 2001
From: Scott Dodson <sdodson@redhat.com>
Date: Mon, 18 Dec 2017 16:49:05 -0500
Subject: Exclude 3.9 packages during 3.8 upgrade

There are some obsoletes in 3.9 packages which lead yum to upgrade
directly from 3.7 to 3.9 when you ask for 3.8 packages while 3.9 repos
are enabled. Since we'd like to allow people to run one playbook to
upgrade from 3.7 to 3.8 to 3.9 we need to exclude those packages when
upgrading to 3.8
---
 roles/openshift_version/tasks/check_available_rpms.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'roles/openshift_version/tasks')

diff --git a/roles/openshift_version/tasks/check_available_rpms.yml b/roles/openshift_version/tasks/check_available_rpms.yml
index bdbc63d27..fea0daf77 100644
--- a/roles/openshift_version/tasks/check_available_rpms.yml
+++ b/roles/openshift_version/tasks/check_available_rpms.yml
@@ -1,7 +1,7 @@
 ---
 - name: Get available {{ openshift_service_type}} version
   repoquery:
-    name: "{{ openshift_service_type}}"
+    name: "{{ openshift_service_type}}{{ '-' ~ openshift_release ~ '*' if openshift_release is defined else '' }}"
     ignore_excluders: true
   register: rpm_results
 
-- 
cgit v1.2.3


From dd9a27ad1448b2c953b0b45a46dba83f77cc5ad5 Mon Sep 17 00:00:00 2001
From: Scott Dodson <sdodson@redhat.com>
Date: Sun, 14 Jan 2018 22:00:48 -0500
Subject: Add call to 3.8 playbook in 3.9 upgrade

---
 .../openshift_version/tasks/first_master_containerized_version.yml | 5 +++--
 roles/openshift_version/tasks/first_master_rpm_version.yml         | 6 +++++-
 roles/openshift_version/tasks/masters_and_nodes.yml                | 7 +++++--
 3 files changed, 13 insertions(+), 5 deletions(-)

(limited to 'roles/openshift_version/tasks')

diff --git a/roles/openshift_version/tasks/first_master_containerized_version.yml b/roles/openshift_version/tasks/first_master_containerized_version.yml
index e02a75eab..3ed1d2cfe 100644
--- a/roles/openshift_version/tasks/first_master_containerized_version.yml
+++ b/roles/openshift_version/tasks/first_master_containerized_version.yml
@@ -7,6 +7,7 @@
   when:
   - openshift_image_tag is defined
   - openshift_version is not defined
+  - not (openshift_version_reinit | default(false))
 
 - name: Set containerized version to configure if openshift_release specified
   set_fact:
@@ -20,7 +21,7 @@
     docker run --rm {{ openshift_cli_image }}:latest version
   register: cli_image_version
   when:
-  - openshift_version is not defined
+  - openshift_version is not defined or openshift_version_reinit | default(false)
   - not openshift_use_crio_only
 
 # Origin latest = pre-release version (i.e. v1.3.0-alpha.1-321-gb095e3a)
@@ -34,7 +35,7 @@
 
 - set_fact:
     openshift_version: "{{ cli_image_version.stdout_lines[0].split(' ')[1].split('-')[0][1:] }}"
-  when: openshift_version is not defined
+  when: openshift_version is not defined or openshift_version_reinit | default(false)
 
 # If we got an openshift_version like "3.2", lookup the latest 3.2 container version
 # and use that value instead.
diff --git a/roles/openshift_version/tasks/first_master_rpm_version.yml b/roles/openshift_version/tasks/first_master_rpm_version.yml
index 264baca65..5d92f90c6 100644
--- a/roles/openshift_version/tasks/first_master_rpm_version.yml
+++ b/roles/openshift_version/tasks/first_master_rpm_version.yml
@@ -6,6 +6,7 @@
   when:
   - openshift_pkg_version is defined
   - openshift_version is not defined
+  - not (openshift_version_reinit | default(false))
 
 # These tasks should only be run against masters and nodes
 - name: Set openshift_version for rpm installation
@@ -13,4 +14,7 @@
 
 - set_fact:
     openshift_version: "{{ rpm_results.results.versions.available_versions.0 }}"
-  when: openshift_version is not defined
+  when: openshift_version is not defined or ( openshift_version_reinit | default(false) )
+- set_fact:
+    openshift_pkg_version: "-{{ rpm_results.results.versions.available_versions.0 }}"
+  when: openshift_version_reinit | default(false)
diff --git a/roles/openshift_version/tasks/masters_and_nodes.yml b/roles/openshift_version/tasks/masters_and_nodes.yml
index fbeb22d8b..eddd5ff42 100644
--- a/roles/openshift_version/tasks/masters_and_nodes.yml
+++ b/roles/openshift_version/tasks/masters_and_nodes.yml
@@ -6,9 +6,12 @@
     include_tasks: check_available_rpms.yml
   - name: Fail if rpm version and docker image version are different
     fail:
-      msg: "OCP rpm version {{ openshift_rpm_version }} is different from OCP image version {{ openshift_version }}"
+      msg: "OCP rpm version {{ rpm_results.results.versions.available_versions.0 }} is different from OCP image version {{ openshift_version }}"
     # Both versions have the same string representation
-    when: rpm_results.results.versions.available_versions.0 != openshift_version
+    when:
+    - openshift_version not in rpm_results.results.versions.available_versions.0
+    - openshift_version_reinit | default(false)
+
   # block when
   when: not openshift_is_atomic | bool
 
-- 
cgit v1.2.3