]> xenbits.xensource.com Git - libvirt.git/commitdiff
virsh: add --keep-nvram option to undefine command
authorNikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
Fri, 27 May 2016 08:05:16 +0000 (11:05 +0300)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 13 Sep 2016 07:31:50 +0000 (09:31 +0200)
Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
tools/virsh-domain.c
tools/virsh.pod

index 035ee01c3429638845e49a26662514d1c701d68d..3829b17a26c0258d9373671352c2054ad1562334 100644 (file)
@@ -3605,6 +3605,10 @@ static const vshCmdOptDef opts_undefine[] = {
      .type = VSH_OT_BOOL,
      .help = N_("remove nvram file, if inactive")
     },
+    {.name = "keep-nvram",
+     .type = VSH_OT_BOOL,
+     .help = N_("keep nvram file, if inactive")
+    },
     {.name = NULL}
 };
 
@@ -3630,6 +3634,7 @@ cmdUndefine(vshControl *ctl, const vshCmd *cmd)
     bool remove_all_storage = vshCommandOptBool(cmd, "remove-all-storage");
     bool delete_snapshots = vshCommandOptBool(cmd, "delete-snapshots");
     bool nvram = vshCommandOptBool(cmd, "nvram");
+    bool keep_nvram = vshCommandOptBool(cmd, "keep-nvram");
     /* Positive if these items exist.  */
     int has_managed_save = 0;
     int has_snapshots_metadata = 0;
@@ -3658,6 +3663,7 @@ cmdUndefine(vshControl *ctl, const vshCmd *cmd)
     virshControlPtr priv = ctl->privData;
 
     VSH_REQUIRE_OPTION("delete-snapshots", "remove-all-storage");
+    VSH_EXCLUSIVE_OPTIONS("nvram", "keep-nvram");
 
     ignore_value(vshCommandOptStringQuiet(ctl, cmd, "storage", &vol_string));
 
@@ -3681,6 +3687,8 @@ cmdUndefine(vshControl *ctl, const vshCmd *cmd)
     }
     if (nvram)
         flags |= VIR_DOMAIN_UNDEFINE_NVRAM;
+    if (keep_nvram)
+        flags |= VIR_DOMAIN_UNDEFINE_KEEP_NVRAM;
 
     if (!(dom = virshCommandOptDomain(ctl, cmd, &name)))
         return false;
index 5027180dc8c2d1da2676d3b44ef4edf93612d1fd..3da787965bcd03485bbc346916cbf49430a363c6 100644 (file)
@@ -2443,7 +2443,7 @@ 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> [I<--managed-save>] [I<--snapshots-metadata>]
-[I<--nvram>]
+[I<--nvram>] [I<--keep-nvram>]
 [ {I<--storage> B<volumes> | I<--remove-all-storage> [I<--delete-snapshots>]}
 I<--wipe-storage>]
 
@@ -2461,8 +2461,8 @@ domain.  Without the flag, attempts to undefine an inactive domain with
 snapshot metadata will fail.  If the domain is active, this flag is
 ignored.
 
-The I<--nvram> flag ensures no nvram (/domain/os/nvram/) file is
-left behind. If the domain has an nvram file and the flag is
+I<--nvram> and I<--keep-nvram> specify accordingly to delete or keep nvram
+(/domain/os/nvram/) file. If the domain has an nvram file and the flags are
 omitted, the undefine will fail.
 
 The I<--storage> flag takes a parameter B<volumes>, which is a comma separated