oe/data: Add export2json function

The export2json function export the variables contained in
the data store to JSON format, the main usage for now will be
to provide test data to QA framework.

(From OE-Core rev: 57c7bf68ed66a56601e1431bb2db750c5742b5ce)

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Aníbal Limón
2016-11-25 11:36:06 -06:00
committed by Richard Purdie
parent 388503c032
commit 4054b25d5e

View File

@@ -1,3 +1,4 @@
import json
import oe.maketype
def typed_value(key, d):
@@ -15,3 +16,30 @@ def typed_value(key, d):
return oe.maketype.create(d.getVar(key) or '', var_type, **flags)
except (TypeError, ValueError) as exc:
bb.msg.fatal("Data", "%s: %s" % (key, str(exc)))
def export2json(d, json_file, expand=True):
data2export = {}
keys2export = []
for key in d.keys():
if key.startswith("_"):
continue
elif key.startswith("BB"):
continue
elif key.startswith("B_pn"):
continue
elif key.startswith("do_"):
continue
elif d.getVarFlag(key, "func", True):
continue
keys2export.append(key)
for key in keys2export:
try:
data2export[key] = d.getVar(key, expand)
except bb.data_smart.ExpansionError:
data2export[key] = ''
with open(json_file, "w") as f:
json.dump(data2export, f, skipkeys=True, indent=4, sort_keys=True)