Blame SOURCES/sap-hana-preconfigure-#94-#97-ecb7c33e9a8eddb633189d332683309d398fd54f.patch

2a62bc
commit ecb7c33e9a8eddb633189d332683309d398fd54f
2a62bc
Author: Bernd Finger <bfinger@redhat.com>
2a62bc
Date:   Fri Jun 19 19:27:48 2020 +0200
2a62bc
2a62bc
    - replaced yum package update by Jinja2
2a62bc
    - added minimum required kernel versions for RHEL 8
2a62bc
2a62bc
diff --git a/tasks/RedHat/installation.yml b/tasks/RedHat/installation.yml
2a62bc
index 7995d99..9ba248c 100644
2a62bc
--- a/tasks/RedHat/installation.yml
2a62bc
+++ b/tasks/RedHat/installation.yml
2a62bc
@@ -71,44 +71,71 @@
2a62bc
 
2a62bc
 - name: Ensure minimum packages are installed
2a62bc
   block:
2a62bc
-    - name: check if minimum release needs to be installed
2a62bc
-      shell: |
2a62bc
-        set -x
2a62bc
-        required_pkg={{ pkg | join('-') }}
2a62bc
-#        newest=$(echo -e "$required_pkg\n$(rpm -q {{ pkg[0] }} )"| sort -V | tail -1)
2a62bc
-        newest=$(echo -e "$required_pkg\n$(rpm -q {{ pkg[0] }} )"| awk '{gsub ("\\.el", ".0.0."); print}' | sort -V | tail -1)
2a62bc
-#        if [ $newest == $required_pkg ]; then
2a62bc
-        if [ $newest == ${required_pkg/.el/.0.0.} ]; then
2a62bc
-           echo $newest
2a62bc
-        fi
2a62bc
-      loop: "{{ sap_hana_preconfigure_min_pkgs }}"
2a62bc
-      loop_control:
2a62bc
-        loop_var: pkg
2a62bc
-      check_mode: no
2a62bc
-      register: sap_hana_preconfigure_register_minpkglist
2a62bc
-      changed_when: false
2a62bc
-
2a62bc
-    - name: Initialize an empty list for our strings
2a62bc
-      set_fact:
2a62bc
-        sap_hana_preconfigure_fact_minpkglist: []
2a62bc
-
2a62bc
-    - name: Create list of packages to be installed
2a62bc
-      set_fact:
2a62bc
-        sap_hana_preconfigure_fact_minpkglist: "{{ sap_hana_preconfigure_fact_minpkglist | difference(['']) + [ pkg.stdout ] }}"
2a62bc
-      loop: "{{ sap_hana_preconfigure_register_minpkglist.results }}"
2a62bc
-      loop_control:
2a62bc
-        loop_var: pkg
2a62bc
-    - debug: var=sap_hana_preconfigure_fact_minpkglist
2a62bc
-
2a62bc
-    - name: Install minimum packages if required
2a62bc
-      yum:
2a62bc
-        name: "{{  sap_hana_preconfigure_fact_minpkglist }}"
2a62bc
-        state: present
2a62bc
-      when: not ( sap_hana_preconfigure_fact_minpkglist == [ "" ] )
2a62bc
+  - name: Gather package facts
2a62bc
+    package_facts:
2a62bc
+
2a62bc
+  - set_fact:
2a62bc
+      reqpkgs: "{{ __sap_hana_preconfigure_min_pkgs }}"
2a62bc
+
2a62bc
+  - debug:
2a62bc
+      var: reqpkgs
2a62bc
+
2a62bc
+  - set_fact:
2a62bc
+      sap_hana_preconfigure_fact_minpkglist: |-
2a62bc
+        {% set ns = namespace() %}
2a62bc
+        {% set ns.pkgs = [] %}
2a62bc
+        {% for reqpkg in reqpkgs %}
2a62bc
+        {%   if not reqpkg[0] in ansible_facts.packages %}
2a62bc
+        {%     set _ = ns.pkgs.append(reqpkg | join('-')) %}
2a62bc
+        {%   else %}
2a62bc
+        {%     set pkg = ansible_facts.packages[reqpkg[0]][-1] %}
2a62bc
+        {%     set verrel = pkg.version ~ '-' ~ pkg.release %}
2a62bc
+        {%     if reqpkg[1].replace (".el", ".0.0.") is version(verrel.replace (".el", ".0.0."), '>', strict=false) %}
2a62bc
+        {%       set _ = ns.pkgs.append(reqpkg | join('-')) %}
2a62bc
+        {%     else %}
2a62bc
+        {%       set _ = "pkg already installed with same or later version" %}
2a62bc
+        {%     endif %}
2a62bc
+        {%   endif %}
2a62bc
+        {% endfor %}
2a62bc
+        {{ ns.pkgs }}
2a62bc
+
2a62bc
+#    - name: check if minimum release needs to be installed
2a62bc
+#      shell: |
2a62bc
+#        set -x
2a62bc
+#        required_pkg={{ pkg | join('-') }}
2a62bc
+#        newest=$(echo -e "$required_pkg\n$(rpm -q {{ pkg[0] }} )"| sed "s,\.el,.0.0.," | sort -V | tail -1)
2a62bc
+#        if [ $newest == ${required_pkg/.el/.0.0.} ]; then
2a62bc
+#           echo $newest
2a62bc
+#        fi
2a62bc
+#      loop: "{{ __sap_hana_preconfigure_min_pkgs }}"
2a62bc
+#      loop_control:
2a62bc
+#        loop_var: pkg
2a62bc
+#      check_mode: no
2a62bc
+#      register: sap_hana_preconfigure_register_minpkglist
2a62bc
+#      changed_when: false
2a62bc
+
2a62bc
+#    - name: Initialize an empty list for our strings
2a62bc
+#      set_fact:
2a62bc
+#        sap_hana_preconfigure_fact_minpkglist: []
2a62bc
+
2a62bc
+#    - name: Create list of packages to be installed
2a62bc
+#      set_fact:
2a62bc
+#        sap_hana_preconfigure_fact_minpkglist: "{{ sap_hana_preconfigure_fact_minpkglist | difference(['']) + [ pkg.stdout ] }}"
2a62bc
+#      loop: "{{ sap_hana_preconfigure_register_minpkglist.results }}"
2a62bc
+#      loop_control:
2a62bc
+#        loop_var: pkg
2a62bc
+
2a62bc
+  - debug: var=sap_hana_preconfigure_fact_minpkglist
2a62bc
+
2a62bc
+  - name: Install minimum packages if required
2a62bc
+    yum:
2a62bc
+      name: "{{ sap_hana_preconfigure_fact_minpkglist }}"
2a62bc
+      state: present
2a62bc
+    when: not ( sap_hana_preconfigure_fact_minpkglist == [ "" ] )
2a62bc
 
2a62bc
   when: 
2a62bc
     - sap_hana_preconfigure_min_package_check|bool
2a62bc
-    - not( (sap_hana_preconfigure_min_pkgs is undefined) or (sap_hana_preconfigure_min_pkgs is none) or (sap_hana_preconfigure_min_pkgs | trim == '') ) 
2a62bc
+    - not( (__sap_hana_preconfigure_min_pkgs is undefined) or (__sap_hana_preconfigure_min_pkgs is none) or (__sap_hana_preconfigure_min_pkgs | trim == '') ) 
2a62bc
 
2a62bc
 - set_fact:
2a62bc
     needs_restarting_command: "needs-restarting -r"
2a62bc
diff --git a/vars/RedHat_7.yml b/vars/RedHat_7.yml
2a62bc
index 30c6d38..8ac6939 100644
2a62bc
--- a/vars/RedHat_7.yml
2a62bc
+++ b/vars/RedHat_7.yml
2a62bc
@@ -44,40 +44,40 @@ __sap_hana_preconfigure_required_ppc64le:
2a62bc
   - IBMinvscout
2a62bc
 
2a62bc
 # In SAP Note 2235581, certain minimal required packages for the different RHEL 7 minor releases are listed.
2a62bc
-# The following will assign them properly to __sap_hana_preconfigure_min_packages.
2a62bc
-# If variable __sap_hana_preconfigure_min_packages_VERSION is not defined, __sap_hana_preconfigure_min_packages will be undefined as well.
2a62bc
+# The following will assign them properly to __sap_hana_preconfigure_min_pkgs.
2a62bc
+# If variable __sap_hana_preconfigure_min_packages_VERSION is not defined,
2a62bc
+# variable __sap_hana_preconfigure_min_pkgs will be undefined as well.
2a62bc
 
2a62bc
-__sap_hana_preconfigure_min_packages_7.2:
2a62bc
+__sap_hana_preconfigure_min_packages_7_2:
2a62bc
   - [ 'kernel' , '3.10.0-327.62.4.el7' ]
2a62bc
   - [ 'systemd' , '219-19.el7_2.4' ]
2a62bc
 
2a62bc
-__sap_hana_preconfigure_min_packages_7.3:
2a62bc
+__sap_hana_preconfigure_min_packages_7_3:
2a62bc
   - [ 'kernel' , '3.10.0-514.36.5.el7' ]
2a62bc
   - [ 'glibc' , '2.17-157.el7_3.5' ]
2a62bc
   - [ 'tuned-profiles-sap-hana' , '2.7.1-3.el7_3.3' ]
2a62bc
 
2a62bc
-__sap_hana_preconfigure_min_packages_7.4:
2a62bc
+__sap_hana_preconfigure_min_packages_7_4:
2a62bc
   - [ 'kernel' , '3.10.0-693.11.6.el7' ]
2a62bc
   - [ 'tuned-profiles-sap-hana' , '2.8.0-5.el7_4.2' ]
2a62bc
 
2a62bc
 # SAP note 2812427:
2a62bc
-__sap_hana_preconfigure_min_packages_7.5:
2a62bc
+__sap_hana_preconfigure_min_packages_7_5:
2a62bc
   - [ 'kernel' , '3.10.0-862.41.1.el7' ]
2a62bc
 
2a62bc
 # SAP note 2812427:
2a62bc
-__sap_hana_preconfigure_min_packages_7.6:
2a62bc
+__sap_hana_preconfigure_min_packages_7_6:
2a62bc
   - [ 'kernel' , '3.10.0-957.27.4.el7' ]
2a62bc
 
2a62bc
 # SAP note 2812427:
2a62bc
-__sap_hana_preconfigure_min_packages_7.7:
2a62bc
+__sap_hana_preconfigure_min_packages_7_7:
2a62bc
   - [ 'kernel' , '3.10.0-1062.1.1.el7' ]
2a62bc
 
2a62bc
-# Empty definitions for upcoming RHEL 7 minor releases:
2a62bc
-__sap_hana_preconfigure_min_packages_7.8:
2a62bc
+__sap_hana_preconfigure_min_packages_7_8:
2a62bc
 
2a62bc
-__sap_hana_preconfigure_min_packages_7.9:
2a62bc
+__sap_hana_preconfigure_min_packages_7_9:
2a62bc
 
2a62bc
-__sap_hana_preconfigure_min_pkgs: "{{ lookup('vars','__sap_hana_preconfigure_min_packages_' + ansible_distribution_version|string ) }}"
2a62bc
+__sap_hana_preconfigure_min_pkgs: "{{ lookup('vars','__sap_hana_preconfigure_min_packages_' + ansible_distribution_version|string|replace (\".\", \"_\") ) }}"
2a62bc
 
2a62bc
 __sap_hana_preconfigure_packages:
2a62bc
 # SAP note 2009879:
2a62bc
diff --git a/vars/RedHat_8.yml b/vars/RedHat_8.yml
2a62bc
index 1ea7a88..3975dad 100644
2a62bc
--- a/vars/RedHat_8.yml
2a62bc
+++ b/vars/RedHat_8.yml
2a62bc
@@ -50,8 +50,52 @@ __sap_hana_preconfigure_required_ppc64le:
2a62bc
   - ppc64-diag
2a62bc
   - IBMinvscout
2a62bc
 
2a62bc
-# Minimum required package levels for RHEL 8:
2a62bc
-__sap_hana_preconfigure_min_packages_8:
2a62bc
+# In SAP Note 2777782, certain minimal required packages for the different RHEL 8 minor releases are listed.
2a62bc
+# The following will assign them properly to __sap_hana_preconfigure_min_pkgs.
2a62bc
+# If variable __sap_hana_preconfigure_min_packages_VERSION_ARCH is not defined,
2a62bc
+# variable __sap_hana_preconfigure_min_pkgs will be undefined as well.
2a62bc
+
2a62bc
+# Minimum required package levels for RHEL 8.0:
2a62bc
+__sap_hana_preconfigure_min_packages_8_0_x86_64:
2a62bc
+
2a62bc
+__sap_hana_preconfigure_min_packages_8_0_ppc64le:
2a62bc
+  - [ 'kernel' , '4.18.0-80.15.1.el8_0' ]
2a62bc
+
2a62bc
+__sap_hana_preconfigure_min_packages_8_1_x86_64:
2a62bc
+  - [ 'kernel' , '4.18.0-147.5.1.el8_1' ]
2a62bc
+
2a62bc
+__sap_hana_preconfigure_min_packages_8_1_ppc64le:
2a62bc
+  - [ 'kernel' , '4.18.0-147.5.1.el8_1' ]
2a62bc
+
2a62bc
+__sap_hana_preconfigure_min_packages_8_2_x86_64:
2a62bc
+
2a62bc
+__sap_hana_preconfigure_min_packages_8_2_ppc64le:
2a62bc
+
2a62bc
+__sap_hana_preconfigure_min_packages_8_3_x86_64:
2a62bc
+
2a62bc
+__sap_hana_preconfigure_min_packages_8_3_ppc64le:
2a62bc
+
2a62bc
+__sap_hana_preconfigure_min_packages_8_4_x86_64:
2a62bc
+
2a62bc
+__sap_hana_preconfigure_min_packages_8_4_ppc64le:
2a62bc
+
2a62bc
+__sap_hana_preconfigure_min_packages_8_5_x86_64:
2a62bc
+
2a62bc
+__sap_hana_preconfigure_min_packages_8_5_ppc64le:
2a62bc
+
2a62bc
+__sap_hana_preconfigure_min_packages_8_6_x86_64:
2a62bc
+
2a62bc
+__sap_hana_preconfigure_min_packages_8_6_ppc64le:
2a62bc
+
2a62bc
+__sap_hana_preconfigure_min_packages_8_7_x86_64:
2a62bc
+
2a62bc
+__sap_hana_preconfigure_min_packages_8_7_ppc64le:
2a62bc
+
2a62bc
+__sap_hana_preconfigure_min_packages_8_8_x86_64:
2a62bc
+
2a62bc
+__sap_hana_preconfigure_min_packages_8_8_ppc64le:
2a62bc
+
2a62bc
+__sap_hana_preconfigure_min_pkgs: "{{ lookup('vars','__sap_hana_preconfigure_min_packages_' + ansible_distribution_version|string|replace (\".\", \"_\") + '_' + ansible_architecture) }}"
2a62bc
 
2a62bc
 __sap_hana_preconfigure_packages:
2a62bc
 # SAP NOTE 2772999: