From 4cb95adf54b3cdd21b390b9e7a026ee10d5b08e0 Mon Sep 17 00:00:00 2001 From: Ted Sheibar Date: Tue, 30 Jul 2013 11:56:22 -0700 Subject: [PATCH] Issue #6427 fix : Added conditional block to grains/core.py to address CentOS boxes that may have custom content within /etc/centos-release --- salt/grains/core.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/salt/grains/core.py b/salt/grains/core.py index cf328a17bf3e..08c4d16e31c3 100644 --- a/salt/grains/core.py +++ b/salt/grains/core.py @@ -803,6 +803,22 @@ def os_data(): grains['lsb_distrib_release'] = comps[2] 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: + for line in ifile: + # Need to pull out the version and codename + # in the case of custom content in /etc/centos-release + find_release = re.compile('\d+\.\d+') + find_codename = re.compile('(?<=\()(.*?)(?=\))') + release = find_release.search(line) + codename = find_codename.search(line) + if release is not None: + grains['lsb_distrib_release'] = release.group() + if codename is not None: + grains['lsb_distrib_codename'] = codename.group() + # Use the already intelligent platform module to get distro info # (though apparently it's not intelligent enough to strip quotes) (osname, osrelease, oscodename) = \