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

Reply via email to