Kiarie Kahurani wrote: > Kiarie Kahurani (1): > src/xenconfig: XL parser > > po/POTFILES.in | 1 + > src/Makefile.am | 3 +- > src/libvirt_xenconfig.syms | 5 + > src/libxl/libxl_driver.c | 44 ++- > src/xenconfig/xen_common.c | 140 ++++---- > src/xenconfig/xen_common.h | 24 +- > src/xenconfig/xen_xl.c | 461 ++++++++++++++++++++++++++ > src/xenconfig/xen_xl.h | 29 ++ > tests/Makefile.am | 9 +- > tests/testutilsxen.c | 50 +++ > tests/testutilsxen.h | 9 +- > tests/xlconfigdata/test-fullvirt-new-disk.cfg | 27 ++ > tests/xlconfigdata/test-fullvirt-new-disk.xml | 46 +++ > tests/xlconfigtest.c | 222 +++++++++++++ > 14 files changed, 981 insertions(+), 89 deletions(-) > create mode 100644 src/xenconfig/xen_xl.c > create mode 100644 src/xenconfig/xen_xl.h > create mode 100644 tests/xlconfigdata/test-fullvirt-new-disk.cfg > create mode 100644 tests/xlconfigdata/test-fullvirt-new-disk.xml > create mode 100644 tests/xlconfigtest.c > > > After *toooo* long the xen-xl parser has arrived with support for > xl disk format and spice graphics(with admittedly very kludgy code) > > quick overview > > 1)coverts xl disk config such as > > disk = ["/dev/sda,raw,hda,rw,"] > > into xml config > > <disk type='block' device='disk'> > <driver name='phy'/> > <source dev='/dev/sda/'> > <target dev= 'hda' bus='ide'/> > </disk> > > and vice-versa > > You notice that in the xl disk config there is no driver type but > it appears on the xml; Driver would be specified by the 'backendtype' keyword, e.g. backendtype=phy backendtype=tap backendtype=qdisk In the old, deprecated positional syntax, driver is part of the <format> [<format>:][<target>],<vdev>[:<devtype>],<access> E.g. "phy:/dev/bla/bla,hda,w" would be driverName = phy. > I use the format to intelligently guess the > driver but this does not look very good again you notice I do not > support disk backend config which is because there is no member of > _virDomainDiskDef which I could relate to the backend > If format is not specified, then you should emit it from the xml too. E.g. disk = ["vdev=hda, access=rw, target=/dev/HostVG/XenGuest2, backendtype=phy"] should be converted to <disk type='block' device='disk'> <driver name='phy'/> <source dev='/dev/HostVG/XenGuest2'/> <target dev= 'hda' bus='ide'/> </disk> With no 'format', we shouldn't be guessing the 'type' attribute of <driver>. > 2)converts spice graphics config > > spice = 1 > spicehost = "127.0.0.1" > spiceport = 500 > spicetls_port = 590 > spicedisable_ticketing = 1 #with this set you require a passwd > spicepasswd = "thebeast" > spiceagent_mouse = 1 > > to > <graphics type='spice' port='500' tlsPort='590' autoport='no' listen='127.0.0.1'> > <listen type='address' address='127.0.0.1'/> > <mouse mode='server'/> > > and vice-versa > > You notice that the passwd is not in the xml, am still trying to figure out why > Passwords are scrubbed from the xml unless VIR_DOMAIN_XML_SECURE flag is provided. > Again you will notice the current tests are a bit dependent on xen code(when > initializing the xmlOpt) which would *better* be done away with but that would > require some code in src/libxl/ > > Into the bargain, am not *sure* how exactly to initialize _virCapsPtr which is > reqiured for xml formatting because I *assume* that tests should be able to run > even with drivers not loaded. > > Am also not *sure* that how to map disks to device type, the existing code(xm) > code maps all the disks using another driver other than 'phy' to 'block'.Am not > sure this is correct. > I think it is the other way around. If the driver is phy, then type is set to VIR_STORAGE_TYPE_BLOCK, otherwise type is set to VIR_STORAGE_TYPE_FILE. Regards, Jim -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list