> If desired, a later patch can add hooks
> (either a new XML element, or a new command comparable to autostart
> that can toggle the state of a hidden field associated with domains)
> so that virDomainCreate() can also be used to start a paused domain,
> but that will be more invasive.
IMHO we really need to make this work for both APIs. The fact
that VDSM only uses virDomainCreateXML is an application specific
use case & not something we should be relying on. Since the
virDomainCreate() API lacks a flags parameter, we need to define
a new API virDomainCreateFlags() which it adds it. That lets us
get parity of functionality between transient and persistent
guests.
This series looks ok, but I'd like the other API implemented before
we commit this.
Here we go - my first attempt at an API addition patch. More comments
in some of the various patches. Also, note that I'm including a 6/5
for any discussion, but which should not be considered part of the
series to be pushed.
Eric Blake (6):
libvirt: introduce domainCreateWithFlags API
remote: protocol implementation for virDomainCreateWithFlags
drivers: add virDomainCreateWithFlags if virDomainCreate exists
qemu: support starting persistent domain paused
virsh: add start --paused support
[DON'T APPLY] remote: optimize remoteDomainCreate
daemon/remote.c | 27 ++++++++++++++++++
daemon/remote_dispatch_args.h | 1 +
daemon/remote_dispatch_prototypes.h | 8 +++++
daemon/remote_dispatch_ret.h | 1 +
daemon/remote_dispatch_table.h | 5 +++
include/libvirt/libvirt.h.in | 2 +
src/driver.h | 6 +++-
src/esx/esx_driver.c | 11 ++++++-
src/libvirt.c | 45 +++++++++++++++++++++++++++++-
src/libvirt_public.syms | 6 ++++
src/lxc/lxc_driver.c | 21 ++++++++++++-
src/opennebula/one_driver.c | 10 ++++++-
src/openvz/openvz_driver.c | 11 ++++++-
src/phyp/phyp_driver.c | 1 +
src/qemu/qemu_driver.c | 26 +++++++++++++----
src/remote/remote_driver.c | 53 +++++++++++++++++++++++++++++++++++
src/remote/remote_protocol.c | 20 +++++++++++++
src/remote/remote_protocol.h | 16 ++++++++++
src/remote/remote_protocol.x | 14 ++++++++-
src/remote_protocol-structs | 7 ++++
src/test/test_driver.c | 9 +++++-
src/uml/uml_driver.c | 8 ++++-
src/vbox/vbox_tmpl.c | 9 +++++-
src/xen/xen_driver.c | 11 ++++++-
src/xenapi/xenapi_driver.c | 20 ++++++++++++-
tools/virsh.c | 9 +++++-
tools/virsh.pod | 7 +++-
27 files changed, 339 insertions(+), 25 deletions(-)