[gnome-continuous-yocto/gnomeostree-3.28-rocko: 4094/8267] oeqa.utils.metadata: allow storing any bitbake config variables



commit 56a7f41711c0606cc3abd718462f9008d374a6d7
Author: Markus Lehtonen <markus lehtonen linux intel com>
Date:   Fri Jan 13 15:12:45 2017 +0200

    oeqa.utils.metadata: allow storing any bitbake config variables
    
    Make it possible to store any bitbake config variables in the metadata.
    Config values will be stored under a new config element in the xml report:
        <config>
            <variable name="MACHINE">qemux86</variable>
        </config>
    
    The value of MACHINE is moved there instead of having a dedicated
    <machine> element.
    
    [YOCTO #10590]
    
    (From OE-Core rev: 6e7e6e37664b0a86111272f5f6f4a4e1d0f23302)
    
    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>

 meta/lib/oeqa/utils/metadata.py |   12 +++++++++---
 scripts/oe-selftest             |    4 ++--
 2 files changed, 11 insertions(+), 5 deletions(-)
---
diff --git a/meta/lib/oeqa/utils/metadata.py b/meta/lib/oeqa/utils/metadata.py
index a3c1b2b..08d8198 100644
--- a/meta/lib/oeqa/utils/metadata.py
+++ b/meta/lib/oeqa/utils/metadata.py
@@ -29,14 +29,13 @@ def metadata_from_bb():
 
         Data will be gathered using bitbake -e thanks to get_bb_vars.
     """
+    metadata_config_vars = ('MACHINE')
 
     info_dict = OrderedDict()
     hostname = runCmd('hostname')
     info_dict['hostname'] = hostname.output
     data_dict = get_bb_vars()
 
-    info_dict['machine'] = data_dict['MACHINE']
-
     # Distro information
     info_dict['distro'] = {'id': data_dict['DISTRO'],
                            'version_id': data_dict['DISTRO_VERSION'],
@@ -52,6 +51,10 @@ def metadata_from_bb():
 
     info_dict['layers'] = get_layers(data_dict['BBLAYERS'])
     info_dict['bitbake'] = git_rev_info(os.path.dirname(bb.__file__))
+
+    info_dict['config'] = OrderedDict()
+    for var in sorted(metadata_config_vars):
+        info_dict['config'][var] = data_dict[var]
     return info_dict
 
 def metadata_from_data_store(d):
@@ -106,7 +109,10 @@ def dict_to_XML(tag, dictionary, **kwargs):
         elif isinstance(val, MutableMapping):
             child = (dict_to_XML(key, val))
         else:
-            child = Element(key)
+            if tag == 'config':
+                child = Element('variable', name=key)
+            else:
+                child = Element(key)
             child.text = str(val)
         elem.append(child)
     return elem
diff --git a/scripts/oe-selftest b/scripts/oe-selftest
index 5b045e8..fb33c08 100755
--- a/scripts/oe-selftest
+++ b/scripts/oe-selftest
@@ -604,7 +604,7 @@ def main():
             l_branches = {str(branch) for branch in repo.branches}
             branch = '%s/%s/%s' % (metadata['hostname'],
                                    metadata['layers']['meta'].get('branch', '(nogit)'),
-                                   metadata['machine'])
+                                   metadata['config']['MACHINE'])
 
             if branch in l_branches:
                 log.debug('Found branch in local repository, checking out')
@@ -634,7 +634,7 @@ def main():
                               values.get('branch', '(nogit)'), values.get('commit', '0'*40))
             msg = 'Selftest for build %s of %s for machine %s on %s\n\n%s' % (
                    log_prefix[12:], metadata['distro']['pretty_name'],
-                   metadata['machine'], metadata['hostname'], layer_info)
+                   metadata['config']['MACHINE'], metadata['hostname'], layer_info)
 
             log.debug('Commiting results to local repository')
             repo.index.commit(msg)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]