[Libguestfs] [PATCH 0/5] Introducing virt-builder-repository

Cédric Bosdonnat
Tue, 03 Jan 2017 10:18:51 -0000

Hi all,

I wanted to provide an easy way to create or update a virt-builder
repository out of a folder of template disk image files. This is what
virt-builder-repository aims at. Some of the data are computed from
the image file, others are asked the user or extracted from an existing
index file.

So far, virt-builder-repository doesn't run libguestfs on each image
to extract the architecture, the list of available partitions and the
list of volumes. May be this should be done, but I have several concerns
with it: it will add extra running time to load the appliance in each
detected new/updated image. And the question of how to handle cases where
multiple OSes are installed on the template would need to be solved:
raise an error or ask the user which one to use?

In order to share more code, I have extracted the Yajl helpers with the
yajl OCAML wrapper code, moved the libxml2 wrapper into mllib and written
some OCAML osinfo db reading code in mllib.

C?dric Bosdonnat (5):
  builder: extract Yajl helper functions to yajl.ml
  mllib: factorize code to add Checksum.get_checksum function
  Move xml and xpath_helpers OCAML code to mllib
  mllib: add libosinfo DB reading helpers
  Add a virt-builder-repository tool

 .gitignore                          |   3 +
 builder/Makefile.am                 |  91 ++++++-
 builder/builder_repository.ml       | 493 ++++++++++++++++++++++++++++++++++++
 builder/simplestreams_parser.ml     |  52 ----
 builder/virt-builder-repository.pod | 144 +++++++++++
 builder/yajl.ml                     |  55 ++++
 builder/yajl.mli                    |  29 +++
 docs/C_SOURCE_FILES                 |   2 +-
 mllib/Makefile.am                   |  19 +-
 mllib/checksums.ml                  |  20 +-
 mllib/checksums.mli                 |   3 +
 mllib/osinfo.ml                     |  64 +++++
 mllib/osinfo.mli                    |  21 ++
 mllib/osinfopath.ml                 |   1 +
 {v2v => mllib}/xml-c.c              |   0
 {v2v => mllib}/xml.ml               |   0
 {v2v => mllib}/xml.mli              |   0
 {v2v => mllib}/xpath_helpers.ml     |   0
 {v2v => mllib}/xpath_helpers.mli    |   0
 v2v/Makefile.am                     |  17 +-
 20 files changed, 932 insertions(+), 82 deletions(-)
 create mode 100644 builder/builder_repository.ml
 create mode 100644 builder/virt-builder-repository.pod
 create mode 100644 mllib/osinfo.ml
 create mode 100644 mllib/osinfo.mli
 create mode 100644 mllib/osinfopath.ml
 rename {v2v => mllib}/xml-c.c (100%)
 rename {v2v => mllib}/xml.ml (100%)
 rename {v2v => mllib}/xml.mli (100%)
 rename {v2v => mllib}/xpath_helpers.ml (100%)
 rename {v2v => mllib}/xpath_helpers.mli (100%)

--
2.11.0