Adding support for Archlinux and Slackware in fallback

In some cases Archlinux and Slackware is not detected by
platform.dist(). This should solve the issue.
This commit is contained in:
maty0609 2015-08-27 10:22:02 +01:00
parent 0441a7a217
commit 6f24e6f994

View file

@ -97,6 +97,7 @@ class Facts(object):
# For the most part, we assume that platform.dist() will tell the truth. # For the most part, we assume that platform.dist() will tell the truth.
# This is the fallback to handle unknowns or exceptions # This is the fallback to handle unknowns or exceptions
OSDIST_LIST = ( ('/etc/oracle-release', 'OracleLinux'), OSDIST_LIST = ( ('/etc/oracle-release', 'OracleLinux'),
('/etc/slackware-version', 'Slackware'),
('/etc/redhat-release', 'RedHat'), ('/etc/redhat-release', 'RedHat'),
('/etc/vmware-release', 'VMwareESX'), ('/etc/vmware-release', 'VMwareESX'),
('/etc/openwrt_release', 'OpenWrt'), ('/etc/openwrt_release', 'OpenWrt'),
@ -255,7 +256,7 @@ class Facts(object):
RedHat = 'RedHat', Fedora = 'RedHat', CentOS = 'RedHat', Scientific = 'RedHat', RedHat = 'RedHat', Fedora = 'RedHat', CentOS = 'RedHat', Scientific = 'RedHat',
SLC = 'RedHat', Ascendos = 'RedHat', CloudLinux = 'RedHat', PSBM = 'RedHat', SLC = 'RedHat', Ascendos = 'RedHat', CloudLinux = 'RedHat', PSBM = 'RedHat',
OracleLinux = 'RedHat', OVS = 'RedHat', OEL = 'RedHat', Amazon = 'RedHat', OracleLinux = 'RedHat', OVS = 'RedHat', OEL = 'RedHat', Amazon = 'RedHat',
XenServer = 'RedHat', Ubuntu = 'Debian', Debian = 'Debian', Raspbian = 'Debian', SLES = 'Suse', XenServer = 'RedHat', Ubuntu = 'Debian', Debian = 'Debian', Raspbian = 'Debian', Slackware = 'Slackware', SLES = 'Suse',
SLED = 'Suse', openSUSE = 'Suse', SuSE = 'Suse', Gentoo = 'Gentoo', Funtoo = 'Gentoo', SLED = 'Suse', openSUSE = 'Suse', SuSE = 'Suse', Gentoo = 'Gentoo', Funtoo = 'Gentoo',
Archlinux = 'Archlinux', Mandriva = 'Mandrake', Mandrake = 'Mandrake', Archlinux = 'Archlinux', Mandriva = 'Mandrake', Mandrake = 'Mandrake',
Solaris = 'Solaris', Nexenta = 'Solaris', OmniOS = 'Solaris', OpenIndiana = 'Solaris', Solaris = 'Solaris', Nexenta = 'Solaris', OmniOS = 'Solaris', OpenIndiana = 'Solaris',
@ -314,6 +315,21 @@ class Facts(object):
# Once we determine the value is one of these distros # Once we determine the value is one of these distros
# we trust the values are always correct # we trust the values are always correct
break break
elif name == 'Archlinux':
data = get_file_content(path)
if 'Arch Linux' in data:
self.facts['distribution'] = name
else:
self.facts['distribution'] = data.split()[0]
break
elif name == 'Slackware':
data = get_file_content(path)
if 'Slackware' in data:
self.facts['distribution'] = name
version = re.findall('\w+[.]\w+', data)
if version:
self.facts['distribution_version'] = version[0]
break
elif name == 'OracleLinux': elif name == 'OracleLinux':
data = get_file_content(path) data = get_file_content(path)
if 'Oracle Linux' in data: if 'Oracle Linux' in data: