[libvirt] Redesigning Libvirt: Better supporting non-hypervisor agnostic concepts
Richard W.M. Jones
rjones at redhat.com
Wed Nov 15 17:57:45 UTC 2017
On Tue, Nov 14, 2017 at 05:25:03PM +0000, Daniel P. Berrange wrote:
> I would anticipate a standalone process "libvirt-qemu" that an
> application can spawn, providing a normal domain XML file via the
> command line or stdin. It would then connect to libvirtd to register
> its existance and claim its ownership of the guest name +
> UUID. Assuming that succeeds, 'libvirt-qemu' would directly spawn
> QEMU.
To be really clear about this, the application would run something
like:
libvirt_xml = sprintf ("<domain><uuid>%s</uuid> etc etc", uuid);
libvirt_xml_file = /* write libvirt_xml to a temporary file */;
if (fork () == 0) {
execlp ("libvirt-qemu",
"libvirt-qemu", "--config", libvirt_xml_file, NULL);
}
dom = virDomainLookupByUUID (conn, uuid);
libvirt-qemu would exec(2) qemu?
Above I've assumed that we need to get a libvirt handle for ongoing
interactions with the new qemu process. Would we get that via the
name or UUID from the XML, ie. calling virDomainLookupByUUID? I guess
there's some raciness here. The libvirt domain wouldn't exist
immediately in the application process.
In general it does sound like a good plan, and solves a problem for
libguestfs too.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines. Supports shell scripting,
bindings from many languages. http://libguestfs.org
More information about the libvir-list
mailing list