Eli Mesika has uploaded a new change for review. Change subject: vdsm: adding handling for NGN in osinfo.py ......................................................................
vdsm: adding handling for NGN in osinfo.py Current osinfo.py implementation lacks handling for NGN (New Generation Node). In case of NGN we have to return the following fields for OS information: NAME -> name VERSION -> version VARIANT -> release For example 'Centos - 7 (core) - oVirt Node 4.0.0_master' This patch does the following changes; 1. Add OVIRT_NGN = 'oVirt Next Generation Node' constant into OSName class 2. Modify_release_name() method to return OSName.OVIRT_NGN if /etc/os-release file exists 3. Add _parse_ngn_version() method to create version dict from /usr/lib/os.release.d/ovirt-release-host-node 4. Add OVIRT_NGN parsing into version() method Change-Id: I17337643cd4e986c09b07137d80da3555161ee70 Signed-off-by: emesika <emes...@redhat.com> --- M lib/vdsm/osinfo.py 1 file changed, 21 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/20/57620/1 diff --git a/lib/vdsm/osinfo.py b/lib/vdsm/osinfo.py index 8ad99a1..4c03b76 100644 --- a/lib/vdsm/osinfo.py +++ b/lib/vdsm/osinfo.py @@ -52,6 +52,7 @@ class OSName: UNKNOWN = 'unknown' OVIRT = 'oVirt Node' + OVIRT_NGN = 'oVirt New Generation Node' RHEL = 'RHEL' FEDORA = 'Fedora' RHEVH = 'RHEV Hypervisor' @@ -92,6 +93,8 @@ def _release_name(): if os.path.exists('/etc/rhev-hypervisor-release'): return OSName.RHEVH + elif os.path.exists('/etc/os-release'): + return OSName.OVIRT_NGN elif glob.glob('/etc/ovirt-node-*-release'): return OSName.OVIRT elif os.path.exists('/etc/fedora-release'): @@ -118,6 +121,22 @@ data[key] = value return data.get('VERSION', ''), data.get('RELEASE', '') +def _parse_ngn_version(path): + data = {} + with open(path) as f: + for line in f: + try: + key, value = [kv.strip() for kv in line.split('=', 1)] + except ValueError: + continue + + data[key] = value + + return ( + data.get('NAME', '').replace('"',''), + data.get('VERSION', '').replace('"',''), + data.get('VARIANT', '').replace('"','') + ) @utils.memoized @@ -134,6 +153,8 @@ try: if osname == OSName.RHEVH or osname == OSName.OVIRT: version, release_name = _parse_node_version('/etc/default/version') + elif osname == OSName.OVIRT_NGN: + osname, version, release_name = _parse_ngn_version('/etc/os-release') elif osname == OSName.DEBIAN: version = linecache.getline('/etc/debian_version', 1).strip("\n") release_name = "" # Debian just has a version entry -- To view, visit https://gerrit.ovirt.org/57620 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I17337643cd4e986c09b07137d80da3555161ee70 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Eli Mesika <emes...@redhat.com> _______________________________________________ vdsm-patches mailing list vdsm-patches@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches