Support for detecting Alpine Linux

reviewable/pr18780/r1
Fabian Affolter 12 years ago
parent bc2a04ed2e
commit 0f3284a7e3

12
setup

@ -99,7 +99,8 @@ class Facts(object):
OSDIST_DICT = { '/etc/redhat-release': 'RedHat', OSDIST_DICT = { '/etc/redhat-release': 'RedHat',
'/etc/vmware-release': 'VMwareESX', '/etc/vmware-release': 'VMwareESX',
'/etc/openwrt_release': 'OpenWrt', '/etc/openwrt_release': 'OpenWrt',
'/etc/system-release': 'OtherLinux' } '/etc/system-release': 'OtherLinux',
'/etc/alpine-release': 'Alpine' }
SELINUX_MODE_DICT = { 1: 'enforcing', 0: 'permissive', -1: 'disabled' } SELINUX_MODE_DICT = { 1: 'enforcing', 0: 'permissive', -1: 'disabled' }
# A list of dicts. If there is a platform with more than one # A list of dicts. If there is a platform with more than one
@ -110,7 +111,8 @@ class Facts(object):
{ 'path' : '/usr/bin/zypper', 'name' : 'zypper' }, { 'path' : '/usr/bin/zypper', 'name' : 'zypper' },
{ 'path' : '/usr/bin/pacman', 'name' : 'pacman' }, { 'path' : '/usr/bin/pacman', 'name' : 'pacman' },
{ 'path' : '/bin/opkg', 'name' : 'opkg' }, { 'path' : '/bin/opkg', 'name' : 'opkg' },
{ 'path' : '/opt/local/bin/pkgin', 'name' : 'pkgin' } ] { 'path' : '/opt/local/bin/pkgin', 'name' : 'pkgin' },
{ 'path' : '/sbin/apk', 'name' : 'apk' } ]
def __init__(self): def __init__(self):
self.facts = {} self.facts = {}
@ -164,7 +166,7 @@ class Facts(object):
SLED = 'Suse', OpenSuSE = 'Suse', SuSE = 'Suse', Gentoo = 'Gentoo', SLED = 'Suse', OpenSuSE = 'Suse', SuSE = 'Suse', Gentoo = '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',
SmartOS = 'Solaris', AIX = 'AIX' SmartOS = 'Solaris', AIX = 'AIX', Alpine = 'Alpine'
) )
if self.facts['system'] == 'AIX': if self.facts['system'] == 'AIX':
@ -204,6 +206,10 @@ class Facts(object):
release = re.search('DISTRIB_CODENAME="(.*)"', data) release = re.search('DISTRIB_CODENAME="(.*)"', data)
if release: if release:
self.facts['distribution_release'] = release.groups()[0] self.facts['distribution_release'] = release.groups()[0]
elif name == 'Alpine':
data = get_file_content(path)
self.facts['distribution'] = 'Alpine'
self.facts['distribution_version'] = data
else: else:
self.facts['distribution'] = name self.facts['distribution'] = name

Loading…
Cancel
Save