]> xenbits.xensource.com Git - libvirt.git/commit
src/xenconfig: Xen-xl parser
authorKiarie Kahurani <davidkiarie4@gmail.com>
Thu, 11 Sep 2014 04:10:33 +0000 (07:10 +0300)
committerJim Fehlig <jfehlig@suse.com>
Sun, 4 Jan 2015 05:41:07 +0000 (22:41 -0700)
commit2c78051a14acfb7aba078d569b1632dfe0ca0853
tree72c9bbdbf7bdbe04286cff8f91f940ec64e1fbd5
parent7ad117b2e33039737126ce9df7a267a6f939988d
src/xenconfig: Xen-xl parser

Introduce a Xen xl parser

This parser allows for users to convert the new xl disk format and
spice graphics config to libvirt xml format and vice versa. Regarding
the spice graphics config, the code is pretty much straight forward.
For the disk {formating, parsing}, this parser takes care of the new
xl format which include positional parameters and key/value parameters.
In xl format disk config a <diskspec> consists of parameters separated by
commas. If the parameters do not contain an '=' they are automatically
assigned to certain options following the order below

   target, format, vdev, access

The above are the only mandatory parameters in the <diskspec> but there
are many more disk config options. These options can be specified as
key=value pairs. This takes care of the rest of the options such as

  devtype, backend, backendtype, script, direct-io-safe,

The positional paramters can also be specified in key/value form
for example

    /dev/vg/guest-volume,,hda
    /dev/vg/guest-volume,raw,hda,rw
    format=raw, vdev=hda, access=rw, target=/dev/vg/guest-volume

are interpleted to one config.

In xm format, the above diskspec would be written as

phy:/dev/vg/guest-volume,hda,w

The disk parser is based on the same parser used successfully by
the Xen project for several years now.  Ian Jackson authored the
scanner, which is used by this commit with mimimal changes.  Only
the PREFIX option is changed, to produce function and file names
more consistent with libvirt's convention.

Signed-off-by: Kiarie Kahurani <davidkiarie4@gmail.com>
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
.gitignore
cfg.mk
configure.ac
po/POTFILES.in
src/Makefile.am
src/libvirt_xenconfig.syms
src/xenconfig/xen_common.c
src/xenconfig/xen_xl.c [new file with mode: 0644]
src/xenconfig/xen_xl.h [new file with mode: 0644]
src/xenconfig/xen_xl_disk.l [new file with mode: 0644]
src/xenconfig/xen_xl_disk_i.h [new file with mode: 0644]