[oe-commits] [openembedded-core] 39/60: lib/oe/lsb: better handle missing fields

git at git.openembedded.org git at git.openembedded.org
Wed Nov 23 11:11:50 UTC 2016


rpurdie pushed a commit to branch master
in repository openembedded-core.

commit e36066dcc3b56cac1c695370ea178b566c0ebfd6
Author: Joshua Lock <joshua.g.lock at intel.com>
AuthorDate: Tue Nov 15 22:08:54 2016 +0000

    lib/oe/lsb: better handle missing fields
    
    Some rolling release distros, such as Arch Linux, don't include a
    VERSION_ID field in their os-release file.
    
    Change release_dict_osr() to better handle this optional field
    being absent.
    
    Further improve the resilience of the release_dict_*() methods by
    always returning a dict and using dict.get() in distro_identifier()
    to supply a default, empty string, value when then key is missing.
    
    Signed-off-by: Joshua Lock <joshua.g.lock at intel.com>
    Signed-off-by: Ross Burton <ross.burton at intel.com>
---
 meta/lib/oe/lsb.py | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/meta/lib/oe/lsb.py b/meta/lib/oe/lsb.py
index 5a795a1..3a945e0 100644
--- a/meta/lib/oe/lsb.py
+++ b/meta/lib/oe/lsb.py
@@ -15,9 +15,6 @@ def release_dict_osr():
             if key == 'VERSION_ID':
                 data['DISTRIB_RELEASE'] = val.strip('"')
 
-    if len(data.keys()) != 2:
-        return None
-
     return data
 
 def release_dict_lsb():
@@ -27,7 +24,7 @@ def release_dict_lsb():
     try:
         output, err = bb.process.run(['lsb_release', '-ir'], stderr=PIPE)
     except bb.process.CmdError as exc:
-        return None
+        return {}
 
     lsb_map = { 'Distributor ID': 'DISTRIB_ID',
                 'Release': 'DISTRIB_RELEASE'}
@@ -51,7 +48,7 @@ def release_dict_lsb():
 
 def release_dict_file():
     """ Try to gather release information manually when other methods fail """
-    data = None
+    data = {}
     try:
         if os.path.exists('/etc/lsb-release'):
             data = {}
@@ -78,7 +75,7 @@ def release_dict_file():
                         break
 
     except IOError:
-        return None
+        return {}
     return data
 
 def distro_identifier(adjust_hook=None):
@@ -96,8 +93,8 @@ def distro_identifier(adjust_hook=None):
     if not distro_data:
         distro_data = release_dict_file()
 
-    distro_id = distro_data['DISTRIB_ID']
-    release = distro_data['DISTRIB_RELEASE']
+    distro_id = distro_data.get('DISTRIB_ID', '')
+    release = distro_data.get('DISTRIB_RELEASE', '')
 
     if adjust_hook:
         distro_id, release = adjust_hook(distro_id, release)

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list