[libvirt] [PATCH 3/3] Allow automatic kill of guests when a connection is closed

Eric Blake eblake at redhat.com
Thu Jun 23 12:55:33 UTC 2011


On 06/23/2011 04:58 AM, Daniel P. Berrange wrote:
> If an application is using libvirt + KVM as a piece of its
> internal infrastructure to perform a specific task, it can
> be desirable to guarentee the VM dies when the virConnectPtr
> disconnects from libvirtd. This ensures the app can't leak
> any VMs it was using. Adding VIR_DOMAIN_START_AUTOKILL as
> a flag when starting guests enables this to be done.
> 
> * include/libvirt/libvirt.h.in: All VIR_DOMAIN_START_AUTOKILL
> * src/qemu/qemu_driver.c: Support automatic killing of guests
>   upon connection close
> * tools/virsh.c: Add --autokill flag to 'start' and 'create'
>   commands
> ---
>  include/libvirt/libvirt.h.in |    1 +
>  src/qemu/qemu_driver.c       |   27 ++++++++++++++++++---------
>  tools/virsh.c                |    6 ++++++

Incomplete.  Missing tools/virsh.pod.

>  3 files changed, 25 insertions(+), 9 deletions(-)
> 
> diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
> index 3f634e6..a827697 100644
> --- a/include/libvirt/libvirt.h.in
> +++ b/include/libvirt/libvirt.h.in
> @@ -234,6 +234,7 @@ typedef virDomainInfo *virDomainInfoPtr;
>  typedef enum {
>      VIR_DOMAIN_NONE         = 0,      /* Default behavior */
>      VIR_DOMAIN_START_PAUSED = 1 << 0, /* Launch guest in paused state */
> +    VIR_DOMAIN_START_AUTOKILL = 1 << 1, /* Automatically kill guest when virConnectPtr is closed */
>  } virDomainCreateFlags;

The more uses we find for flags, the more I'm glad we've been making all
new APIs support them :)

> +++ b/tools/virsh.c
> @@ -1305,6 +1305,7 @@ static const vshCmdOptDef opts_create[] = {
>      {"console", VSH_OT_BOOL, 0, N_("attach to console after creation")},
>  #endif
>      {"paused", VSH_OT_BOOL, 0, N_("leave the guest paused after creation")},
> +    {"autokill", VSH_OT_BOOL, 0, N_("automatically kill the guest when virsh disconnects")},

Probably more useful when using a long-running 'virsh', as opposed to a
shorter 'virsh start --autokill' :)

Conditional ACK, once you also document the new virsh flags.

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20110623/b990be13/attachment-0001.sig>


More information about the libvir-list mailing list