diff options
author | Markus Lehtonen <markus.lehtonen@linux.intel.com> | 2017-04-27 11:17:33 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-05-16 14:08:14 +0100 |
commit | 56b883f7765f6bd72e83dec26a5db8c7108c835d (patch) | |
tree | a584a46acd8262cdbd85264fbd8b5152ee43151d | |
parent | a638ef304b1f1acb4c88f4f90b1ef22526cb8d2f (diff) | |
download | openembedded-core-56b883f7765f6bd72e83dec26a5db8c7108c835d.tar.gz openembedded-core-56b883f7765f6bd72e83dec26a5db8c7108c835d.tar.bz2 openembedded-core-56b883f7765f6bd72e83dec26a5db8c7108c835d.zip |
oe.lsb: add get_os_release()
Move get_os_release() from oeqa.utils.metadata to oe.lsb, merging the
code with release_dict_osr() from oe.lsb. This removes some code
duplication and makes get_os_release() more robust.
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r-- | meta/lib/oe/lsb.py | 33 | ||||
-rw-r--r-- | meta/lib/oeqa/utils/metadata.py | 16 |
2 files changed, 23 insertions, 26 deletions
diff --git a/meta/lib/oe/lsb.py b/meta/lib/oe/lsb.py index 3a945e0fce..71c0992c5d 100644 --- a/meta/lib/oe/lsb.py +++ b/meta/lib/oe/lsb.py @@ -1,19 +1,26 @@ +def get_os_release(): + """Get all key-value pairs from /etc/os-release as a dict""" + from collections import OrderedDict + + data = OrderedDict() + if os.path.exists('/etc/os-release'): + with open('/etc/os-release') as f: + for line in f: + try: + key, val = line.rstrip().split('=', 1) + except ValueError: + continue + data[key.strip()] = val.strip('"') + return data + def release_dict_osr(): """ Populate a dict with pertinent values from /etc/os-release """ - if not os.path.exists('/etc/os-release'): - return None - data = {} - with open('/etc/os-release') as f: - for line in f: - try: - key, val = line.rstrip().split('=', 1) - except ValueError: - continue - if key == 'ID': - data['DISTRIB_ID'] = val.strip('"') - if key == 'VERSION_ID': - data['DISTRIB_RELEASE'] = val.strip('"') + os_release = get_os_release() + if 'ID' in os_release: + data['DISTRIB_ID'] = os_release['ID'] + if 'VERSION_ID' in os_release: + data['DISTRIB_RELEASE'] = os_release['VERSION_ID'] return data diff --git a/meta/lib/oeqa/utils/metadata.py b/meta/lib/oeqa/utils/metadata.py index cb81155e54..65bbdc61f4 100644 --- a/meta/lib/oeqa/utils/metadata.py +++ b/meta/lib/oeqa/utils/metadata.py @@ -10,19 +10,9 @@ from collections.abc import MutableMapping from xml.dom.minidom import parseString from xml.etree.ElementTree import Element, tostring +from oe.lsb import get_os_release from oeqa.utils.commands import runCmd, get_bb_vars -def get_os_release(): - """Get info from /etc/os-release as a dict""" - data = OrderedDict() - os_release_file = '/etc/os-release' - if not os.path.exists(os_release_file): - return None - with open(os_release_file) as fobj: - for line in fobj: - key, value = line.split('=', 1) - data[key.strip().lower()] = value.strip().strip('"') - return data def metadata_from_bb(): """ Returns test's metadata as OrderedDict. @@ -45,9 +35,9 @@ def metadata_from_bb(): os_release = get_os_release() if os_release: info_dict['host_distro'] = OrderedDict() - for key in ('id', 'version_id', 'pretty_name'): + for key in ('ID', 'VERSION_ID', 'PRETTY_NAME'): if key in os_release: - info_dict['host_distro'][key] = os_release[key] + info_dict['host_distro'][key.lower()] = os_release[key] info_dict['layers'] = get_layers(data_dict['BBLAYERS']) info_dict['bitbake'] = git_rev_info(os.path.dirname(bb.__file__)) |