[yocto] [[yocto-autobuilder][PATCHv2] 11/15] autobuilder/lib/ABTools.py: Add get_lsb_distro function

Aníbal Limón anibal.limon at linux.intel.com
Tue Jun 21 16:07:48 PDT 2016


Try to get Linux distribution ID using lsb_release if lsb_release
isn't installed use information provided by linux_distribution()
method in platform returns "DISTRONAME-VERSION".

Signed-off-by: Aníbal Limón <anibal.limon at linux.intel.com>
---
 .../site-packages/autobuilder/lib/ABTools.py       | 29 ++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/lib/python2.7/site-packages/autobuilder/lib/ABTools.py b/lib/python2.7/site-packages/autobuilder/lib/ABTools.py
index 1e09de7..9ff1bc8 100644
--- a/lib/python2.7/site-packages/autobuilder/lib/ABTools.py
+++ b/lib/python2.7/site-packages/autobuilder/lib/ABTools.py
@@ -15,6 +15,9 @@ import time
 import json
 import codecs
 
+import subprocess
+import platform
+
 from autobuilder.config import YOCTO_ABBASE
 
 def capitalize(word):
@@ -48,3 +51,29 @@ def save_error_report(buildername, buildnumber, report, report_type):
             (report_type, int(time.time())))
     with codecs.open(filename, 'w', 'utf-8') as f:
         json.dump(report, f, indent=4, sort_keys=True)
+
+def get_lsb_distro():
+    """
+        Try to get Linux distribution ID using lsb_release if lsb_release
+        isn't installed use information provided by linux_distribution()
+        method in platform returns "DISTRONAME-VERSION".
+    """
+
+    lsb_distro = None
+
+    try:
+        output = subprocess.check_output("lsb_release -ir", shell=True)
+
+        lines = output.splitlines()
+
+        # Output example:
+        # Distributor ID:\tDebian
+        # Release:\t8.4
+        distro_name = lines[0].split(':')[1].strip()
+        version = lines[1].split(':')[1].strip()
+
+        lsb_distro = "%s-%s" % (distro_name, version)
+    except Exception as e:
+        lsb_distro = "%s-%s" % platform.linux_distribution()[0:2]
+
+    return lsb_distro
-- 
2.1.4




More information about the yocto mailing list