mirror of
https://github.com/ceph/ceph
synced 2025-02-24 19:47:44 +00:00
Add OS.__repr__() and OS.to_dict()
Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
This commit is contained in:
parent
a5917b4be9
commit
a962779b15
@ -14,8 +14,10 @@ class OS(object):
|
||||
_deb_distros = ('debian', 'ubuntu')
|
||||
_rpm_distros = ('fedora', 'rhel', 'centos', 'suse')
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
def __init__(self, name=None, version=None):
|
||||
self.name = name
|
||||
self.version = version
|
||||
self._set_package_type()
|
||||
|
||||
@classmethod
|
||||
def from_lsb_release(cls, lsb_release_str):
|
||||
@ -43,10 +45,7 @@ class OS(object):
|
||||
|
||||
obj.version = obj._get_value(str_, 'Release')
|
||||
|
||||
if obj.name in cls._deb_distros:
|
||||
obj.package_type = "deb"
|
||||
elif obj.name in cls._rpm_distros:
|
||||
obj.package_type = "rpm"
|
||||
obj._set_package_type()
|
||||
|
||||
return obj
|
||||
|
||||
@ -74,10 +73,7 @@ class OS(object):
|
||||
obj.name = cls._get_value(str_, 'ID').lower()
|
||||
obj.version = cls._get_value(str_, 'VERSION_ID')
|
||||
|
||||
if obj.name in cls._deb_distros:
|
||||
obj.package_type = "deb"
|
||||
elif obj.name in cls._rpm_distros:
|
||||
obj.package_type = "rpm"
|
||||
obj._set_package_type()
|
||||
|
||||
return obj
|
||||
|
||||
@ -89,5 +85,21 @@ class OS(object):
|
||||
return match.groups()[0].strip(' \t"\'')
|
||||
return ''
|
||||
|
||||
def _set_package_type(self):
|
||||
if self.name in self._deb_distros:
|
||||
self.package_type = "deb"
|
||||
elif self.name in self._rpm_distros:
|
||||
self.package_type = "rpm"
|
||||
|
||||
def to_dict(self):
|
||||
return dict(
|
||||
name=self.name,
|
||||
version=self.version,
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return " ".join([self.name, self.version]).strip()
|
||||
|
||||
def __repr__(self):
|
||||
return "OS(name='{name}', version='{version}')".format(
|
||||
name=self.name, version=self.version)
|
||||
|
@ -132,3 +132,11 @@ class TestOS(object):
|
||||
assert os.name == 'rhel'
|
||||
assert os.version == '7.0'
|
||||
assert os.package_type == 'rpm'
|
||||
|
||||
def test_repr(self):
|
||||
os = OS(name='NAME', version='0.1.2')
|
||||
assert repr(os) == "OS(name='NAME', version='0.1.2')"
|
||||
|
||||
def test_to_dict(self):
|
||||
os = OS(name='NAME', version='0.1.2')
|
||||
assert os.to_dict() == dict(name='NAME', version='0.1.2')
|
||||
|
Loading…
Reference in New Issue
Block a user