On Fri, Aug 25, 2006 at 05:46:28PM +0100, Daniel P. Berrange wrote:
The current implementation of 'virsh create' takes an XML
file as its only
parameter & creates a domain from this. This is great if you have a suitable
XML file already, but if you are just trying to automate some simple tasks
from the shell then the need to use XML is a little cumbersome. Thus I was
thinking perhaps we could have an alternate way to define a new VM (keep
the current XML based way too of course)
QEMU for example makes it very easy to launch a new VM:
qemu -m 256 -hda /path/to/image.dsk -hdc /path/to/boot.iso
Taking inspiration from this syntax we could allow:
virsh start -m 256 -hda /path/to/image.dsk -hdc /path/to/boot.iso -name Foo
Internally, the 'start' command would simply transform these command
line args into the neccessary libvirt XML and then call the normal
create functions.
Another way would be have a 'genxml' command, which accepted these list
of devices / config properties & then printed out appropriate XMl. This
could be piped to the regular 'virsh create' command
virsh genxml -m 256 -hda /path/to/image.dsk -hdc /path/to/boot.iso \
-name Foo | virsh create -
What use better command name instead "genxml"? For example
"domgen".
(we have dominfo, domstate, ...).
Same odd commad name is "dumpxml"... XML of what? It should be
renamed to "domdump".
This isn't so critical for Xen, because people are already used
to writing
config files before creating the domain, but when we get a QEMU backend
i think such a convenient method for defining new VMs will be neccessary
to encourage users to use virsh instead of manually calling 'qemu'. Even
for Xen users it would make shell script easier though :-)
I can imagine more commands like:
virsh> bufread /etc/xen/Foo.xml
virsh> bufedit Foo -hdc /path/file.img
virsh> create --frombuf Foo
I think it could be nice for playful admins and developers. Or is
over engineering? ;-)
Karel
--
Karel Zak <kzak(a)redhat.com>