[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH RFC V2 00/10] xl/libxl: JSON infrastructure and new "xl-json" format
This series contains my original patches to add in JSON parser and a new patch to add "xl-json" format. The last patch makes use of JSON parser. For the JSON parser (taken from my previous email): Libxl introduced JSON infrastructure to communicate with upstream QEMU. The ability of exisiting JSON infrastructure is to convert libxl_FOO struct to libxl JSON object and parse JSON object (string) returned by QEMU. This series makes libxl able to convert a JSON string to libxl_FOO struct. The conversion is done in two macro steps: 1. convert JSON string to libxl JSON object (libxl__json_object) 2. convert libxl JSON object to libxl_FOO struct The first stage is done with existing infrastructure. This series focuses on the second stage. To break things down: * Patch 1 is only mechanical change * Patch 2, 3, 4 and 6 are changes to generic libxl JSON infrastructure * Patch 5 introduces parser functions for builtin types * Patch 7 and 8 are changes to code generator * Patch 9 contains changes to test code generator Now we have the ability to do the following transformation: libxl_FOO struct -> libxl_FOO JSON object -> libxl JSON internal object -> libxl_FOO struct This full cycle can be used to preserved runtime configurations of a domain. Patch 10 makes use of the new parser and introduces "xl-json" format. Please refer to commit log for details. It would be good if I can get some input on this new format and it's usage. Currently it's restricted to internal use only, that is, user is not allowed to supply a config file in JSON format. It would be good if we can get this kind of infrastructure change through the push gate before pursing next step ("pull runtime information for a domain"). Wei. Changes in V2: * address IanC's comments on JSON parser * add "xl-json" format patch Wei Liu (10): libxl IDL: rename json_fn to json_gen_fn libxl_json: introduce libx__object_from_json libxl_internal: make JSON_* types bit-field libxl_internal: introduce libxl__json_object_is_{null,number,double} libxl_json: introduce parser functions for builtin types libxl_json: allow basic JSON type objects generation libxl/gentypes.py: generate JSON object for keyed-union discriminator libxl IDL: generate code to parse libxl__json_object to libxl_FOO struct libxl/gentest.py: test JSON parser xl: introduce "xl-json" format docs/man/xl.cfg.pod.5 | 2 +- tools/libxl/gentest.py | 27 +++- tools/libxl/gentypes.py | 119 ++++++++++++++- tools/libxl/idl.py | 23 ++- tools/libxl/libxl.h | 1 + tools/libxl/libxl_cpuid.c | 92 +++++++++--- tools/libxl/libxl_internal.h | 39 +++-- tools/libxl/libxl_json.c | 263 ++++++++++++++++++++++++++++++++-- tools/libxl/libxl_json.h | 27 +++- tools/libxl/libxl_nocpuid.c | 7 + tools/libxl/libxl_types.idl | 31 ++-- tools/libxl/libxl_types_internal.idl | 4 +- tools/libxl/xl_cmdimpl.c | 103 ++++++++++--- 13 files changed, 649 insertions(+), 89 deletions(-) -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |