mirror of
https://git.yoctoproject.org/poky
synced 2026-09-16 09:49:35 +02:00
oeqa.utils.metadata: re-organise host distro information
Put all host distro data under one <host_distro> element. In addition take the data directly from /etc/os-release instead of the "lsb API". The /etc/os-release file is virtually ubiquitous, now, and using its field names and values provides a more standardized and extensible format. [YOCTO #10590] (From OE-Core rev: 98cad0b4063772dad94fea96edce1a5422256c32) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
2cd7613582
commit
8d51f62cd4
@@ -10,11 +10,22 @@ from collections.abc import MutableMapping
|
|||||||
from xml.dom.minidom import parseString
|
from xml.dom.minidom import parseString
|
||||||
from xml.etree.ElementTree import Element, tostring
|
from xml.etree.ElementTree import Element, tostring
|
||||||
|
|
||||||
from oe.lsb import distro_identifier
|
|
||||||
from oeqa.utils.commands import runCmd, get_bb_var, get_bb_vars
|
from oeqa.utils.commands import runCmd, get_bb_var, get_bb_vars
|
||||||
|
|
||||||
metadata_vars = ['MACHINE', 'DISTRO', 'DISTRO_VERSION']
|
metadata_vars = ['MACHINE', 'DISTRO', 'DISTRO_VERSION']
|
||||||
|
|
||||||
|
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():
|
def metadata_from_bb():
|
||||||
""" Returns test's metadata as OrderedDict.
|
""" Returns test's metadata as OrderedDict.
|
||||||
|
|
||||||
@@ -27,10 +38,15 @@ def metadata_from_bb():
|
|||||||
data_dict = get_bb_vars(metadata_vars)
|
data_dict = get_bb_vars(metadata_vars)
|
||||||
for var in metadata_vars:
|
for var in metadata_vars:
|
||||||
info_dict[var.lower()] = data_dict[var]
|
info_dict[var.lower()] = data_dict[var]
|
||||||
host_distro= distro_identifier()
|
|
||||||
host_distro, _, host_distro_release = host_distro.partition('-')
|
# Host distro information
|
||||||
info_dict['host_distro'] = host_distro
|
os_release = get_os_release()
|
||||||
info_dict['host_distro_release'] = host_distro_release
|
if os_release:
|
||||||
|
info_dict['host_distro'] = OrderedDict()
|
||||||
|
for key in ('id', 'version_id', 'pretty_name'):
|
||||||
|
if key in os_release:
|
||||||
|
info_dict['host_distro'][key] = os_release[key]
|
||||||
|
|
||||||
info_dict['layers'] = get_layers(get_bb_var('BBLAYERS'))
|
info_dict['layers'] = get_layers(get_bb_var('BBLAYERS'))
|
||||||
return info_dict
|
return info_dict
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user