File fix-for-suse-expanded-support-detection.patch of Package salt

From 46edb645c8ed56ca2db511bdd2020b93a4387d02 Mon Sep 17 00:00:00 2001
From: Jochen Breuer <jbreuer@suse.de>
Date: Thu, 6 Sep 2018 17:15:18 +0200
Subject: [PATCH] Fix for SUSE Expanded Support detection

A SUSE ES installation has both, the centos-release and redhat-release
file. Since os_data only used the centos-release file to detect a
CentOS installation, this lead to SUSE ES being detected as CentOS.

This change also adds a check for redhat-release and then marks the
'lsb_distrib_id' as RedHat.
---
 salt/grains/core.py | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/salt/grains/core.py b/salt/grains/core.py
index 496beec14c..b50d3f20b2 100644
--- a/salt/grains/core.py
+++ b/salt/grains/core.py
@@ -1392,9 +1392,18 @@ def os_data():
                                 grains['lsb_distrib_codename'] = \
                                     comps[3].replace('(', '').replace(')', '')
                 elif os.path.isfile('/etc/centos-release'):
-                    # CentOS Linux
-                    grains['lsb_distrib_id'] = 'CentOS'
-                    with salt.utils.fopen('/etc/centos-release') as ifile:
+                    log.trace('Parsing distrib info from /etc/centos-release')
+                    # Maybe CentOS Linux; could also be SUSE Expanded Support.
+                    # SUSE ES has both, centos-release and redhat-release.
+                    if os.path.isfile('/etc/redhat-release'):
+                        with salt.utils.files.fopen('/etc/redhat-release') as ifile:
+                            for line in ifile:
+                                if "red hat enterprise linux server" in line.lower():
+                                    # This is a SUSE Expanded Support Rhel installation
+                                    grains['lsb_distrib_id'] = 'RedHat'
+                                    break
+                    grains.setdefault('lsb_distrib_id', 'CentOS')
+                    with salt.utils.files.fopen('/etc/centos-release') as ifile:
                         for line in ifile:
                             # Need to pull out the version and codename
                             # in the case of custom content in /etc/centos-release
-- 
2.18.0


openSUSE Build Service is sponsored by