[Libvir] Relative paths in domain XML

What would be really useful is to allow paths (eg. to file-backed block devices) to be relative in a useful way. This would let you have the domain XML configuration file & the block device files sit next to each other to give a machine description: mydomain.hda.img mydomain.xml # refers to <source file="mydomain.hda.img"> This isn't possible at the moment as far as I can tell, which means you need to know which directory the files are located in, and you can't move them around. [As an aside, at present the QEMU driver makes no attempt to check that the source file is an absolute path, it just passes whatever it finds to the '-hdc' argument to qemu.] For the command: virsh define mydomain.xml One implementation would be to have virsh rewriting paths, but that requires special knowledge of the XML format in virsh so I don't think it's a workable idea. Another would be to allow virsh to supply a 'base URI' (basically, the current directory) to the virDomainDefineXML call. Any thoughts? Rich. -- Richard Jones, Emerging Technologies, Red Hat http://et.redhat.com/~rjones virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://et.redhat.com/~rjones/virt-top

On Sun, Apr 13, 2008 at 09:28:59AM +0100, Richard W.M. Jones wrote:
What would be really useful is to allow paths (eg. to file-backed block devices) to be relative in a useful way. This would let you have the domain XML configuration file & the block device files sit next to each other to give a machine description:
mydomain.hda.img mydomain.xml # refers to <source file="mydomain.hda.img">
This isn't possible at the moment as far as I can tell, which means you need to know which directory the files are located in, and you can't move them around.
Having relative paths to disk files in the XML isn't useful because the drivers make no guarentees about where the XML files will be stored - if indeed they're stored at all. Full-qualified paths to disks are the only sensible option for domain XML IMHO.
[As an aside, at present the QEMU driver makes no attempt to check that the source file is an absolute path, it just passes whatever it finds to the '-hdc' argument to qemu.]
For the command:
virsh define mydomain.xml
One implementation would be to have virsh rewriting paths, but that requires special knowledge of the XML format in virsh so I don't think it's a workable idea. Another would be to allow virsh to supply a 'base URI' (basically, the current directory) to the virDomainDefineXML call.
Any thoughts?
I think this is mixing up two concepts really - the domain XML is used to represent a specific instantiation of a domain and as such it should fully specify things like paths. The use case of keeping disk images & XML alongside each other is really in the realms of appliance images. The virt-image tool provides a format for describing appliances and does support having relative paths. It then turns this into the domain XML for the specific instantiation using a fully qualfied path. Dan. -- |: Red Hat, Engineering, Boston -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
participants (2)
-
Daniel P. Berrange
-
Richard W.M. Jones