From 34a6e847488630514a27ac8c17d94a148e92a247 Mon Sep 17 00:00:00 2001 From: Nikolay Shirokovskiy Date: Fri, 27 May 2016 11:05:16 +0300 Subject: [PATCH] virsh: add --keep-nvram option to undefine command Signed-off-by: Nikolay Shirokovskiy --- tools/virsh-domain.c | 8 ++++++++ tools/virsh.pod | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index 035ee01c34..3829b17a26 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -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; diff --git a/tools/virsh.pod b/tools/virsh.pod index 5027180dc8..3da787965b 100644 --- a/tools/virsh.pod +++ b/tools/virsh.pod @@ -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 I [I<--managed-save>] [I<--snapshots-metadata>] -[I<--nvram>] +[I<--nvram>] [I<--keep-nvram>] [ {I<--storage> B | 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, which is a comma separated