[libvirt] [PATCH 8/8] UndefineFlags: Extend virsh undefine to support new flag

Dave Allan dallan at redhat.com
Wed Jul 13 13:32:14 UTC 2011


On Wed, Jul 13, 2011 at 06:19:44PM +0800, Osier Yang wrote:
> ---
>  tools/virsh.c   |   12 +++++++++++-
>  tools/virsh.pod |    6 +++++-
>  2 files changed, 16 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/virsh.c b/tools/virsh.c
> index 3cdf043..f81e923 100644
> --- a/tools/virsh.c
> +++ b/tools/virsh.c
> @@ -1409,6 +1409,7 @@ static const vshCmdInfo info_undefine[] = {
>  
>  static const vshCmdOptDef opts_undefine[] = {
>      {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name or uuid")},
> +    {"undefine-managed-state", VSH_OT_BOOL, 0, N_("remove domain managed state file")},

IMO, it would be clearer to call this option remove-managed-state.

Dave

>      {NULL, 0, 0, NULL}
>  };
>  
> @@ -1419,6 +1420,14 @@ cmdUndefine(vshControl *ctl, const vshCmd *cmd)
>      bool ret = true;
>      const char *name = NULL;
>      int id;
> +    int flags = 0;
> +    int undefine_managed_state = vshCommandOptBool(cmd, "undefine-managed-state");
> +
> +    if (undefine_managed_state)
> +        flags |= VIR_DOMAIN_UNDEFINE_MANAGED_STATE;
> +
> +    if (!undefine_managed_state)
> +        flags = -1;
>  
>      if (!vshConnectionUsability(ctl, ctl->conn))
>          return false;
> @@ -1440,7 +1449,8 @@ cmdUndefine(vshControl *ctl, const vshCmd *cmd)
>                                        VSH_BYNAME|VSH_BYUUID)))
>          return false;
>  
> -    if (virDomainUndefine(dom) == 0) {
> +    if (((flags == -1) ? virDomainUndefine(dom) :
> +        virDomainUndefineWithFlags(dom, flags)) == 0) {
>          vshPrint(ctl, _("Domain %s has been undefined\n"), name);
>      } else {
>          vshError(ctl, _("Failed to undefine domain %s"), name);
> diff --git a/tools/virsh.pod b/tools/virsh.pod
> index 8b820d2..393d014 100644
> --- a/tools/virsh.pod
> +++ b/tools/virsh.pod
> @@ -804,11 +804,15 @@ hypervisor.
>  Output the device used for the TTY console of the domain. If the information
>  is not available the processes will provide an exit code of 1.
>  
> -=item B<undefine> I<domain-id>
> +=item B<undefine> I<domain-id> optional I<--undefine-managed-state>
>  
>  Undefine the configuration for an inactive domain. Since it's not running
>  the domain name or UUID must be used as the I<domain-id>.
>  
> +If I<--undefine-managed-state> is specified, the managed state file will
> +be removed along with the domain undefine peocess, the entire domain
> +undefine process will fail if it fails on removing the managed state file.
> +
>  =item B<vcpucount> I<domain-id>  optional I<--maximum> I<--current>
>  I<--config> I<--live>
>  
> -- 
> 1.7.6
> 
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list




More information about the libvir-list mailing list