This commit is contained in:
Tully Foote 2011-02-09 00:36:22 +00:00
parent c5f8e2dfcd
commit 0e17fe52ca
2 changed files with 43 additions and 1 deletions

View File

@ -188,6 +188,44 @@ class Mint(OSBase):
return "mint" return "mint"
###### END Mint SPECIALIZATION ######################## ###### END Mint SPECIALIZATION ########################
###### OpenSuse SPECIALIZATION #########################
class OpenSuse(OSBase):
"""
Detect OpenSuse OS.
"""
def check_presence(self):
try:
filename = "/etc/SuSE-brand"
if os.path.exists(filename):
with open(filename, 'r') as fh:
os_list = fh.read().split()
if len(os_list) > 0 and os_list[0] == "openSUSE":
return True
except:
pass
return False
def get_version(self):
try:
filename = "/etc/SuSE-brand"
if os.path.exists(filename):
with open(filename, 'r') as fh:
os_list = fh.read().strip().split('\n')
if len(os_list) == 2:
os_list = os_list[1].split(' = ')
if os_list[0] == "VERSION":
return os_list[1]
except:
return False
return False
def get_name(self):
return "opensuse"
###### END OpenSuse SPECIALIZATION ########################
###### Fedora SPECIALIZATION ######################### ###### Fedora SPECIALIZATION #########################
class Fedora(OSBase): class Fedora(OSBase):
""" """
@ -428,7 +466,7 @@ class FreeBSD(OSBase):
class OSDetect: class OSDetect:
""" This class will iterate over registered classes to lookup the """ This class will iterate over registered classes to lookup the
active OS and version""" active OS and version"""
def __init__(self, os_list = [Debian(), Ubuntu(), Mint(), Macports(), Arch(), Fedora(), Rhel(), Gentoo(), Cygwin(), FreeBSD()]): def __init__(self, os_list = [Debian(), Ubuntu(), Mint(), Macports(), Arch(), OpenSuse(), Fedora(), Rhel(), Gentoo(), Cygwin(), FreeBSD()]):
self._os_list = os_list self._os_list = os_list
for o in self._os_list: for o in self._os_list:
if not isinstance(o, OSBase): if not isinstance(o, OSBase):

View File

@ -76,6 +76,10 @@ class RoslibOsDetectTest(unittest.TestCase):
arch = roslib.os_detect.Arch() arch = roslib.os_detect.Arch()
self.assertEqual("arch", arch.get_name()) self.assertEqual("arch", arch.get_name())
def test_tripwire_opensuse(self):
opensuse = roslib.os_detect.OpenSuse()
self.assertEqual("opensuse", opensuse.get_name())
def test_tripwire_fedora(self): def test_tripwire_fedora(self):
fedora = roslib.os_detect.Fedora() fedora = roslib.os_detect.Fedora()
self.assertEqual("fedora", fedora.get_name()) self.assertEqual("fedora", fedora.get_name())