virsh: Add --print-xml flag for 'vol-clone' command

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2022-11-30 16:48:23 +01:00
parent 3584f78d4b
commit 5f3d21abf8
2 changed files with 13 additions and 1 deletions

View File

@ -6719,7 +6719,7 @@ vol-clone
:: ::
vol-clone vol-name-or-key-or-path name vol-clone vol-name-or-key-or-path name
[--pool pool-or-uuid] [--prealloc-metadata] [--reflink] [--pool pool-or-uuid] [--prealloc-metadata] [--reflink] [--print-xml]
Clone an existing volume within the parent pool. Less powerful, Clone an existing volume within the parent pool. Less powerful,
but easier to type, version of ``vol-create-from``. but easier to type, version of ``vol-create-from``.
@ -6743,6 +6743,9 @@ When *--reflink* is specified, perform a COW lightweight copy,
where the data blocks are copied only when modified. where the data blocks are copied only when modified.
If this is not possible, the copy fails. If this is not possible, the copy fails.
If *--print-xml* is specified, then the XML used to clone the volume is
printed instead.
vol-delete vol-delete
---------- ----------

View File

@ -559,6 +559,10 @@ static const vshCmdOptDef opts_vol_clone[] = {
.type = VSH_OT_BOOL, .type = VSH_OT_BOOL,
.help = N_("use btrfs COW lightweight copy") .help = N_("use btrfs COW lightweight copy")
}, },
{.name = "print-xml",
.type = VSH_OT_BOOL,
.help = N_("print XML document rather than clone the volume")
},
{.name = NULL} {.name = NULL}
}; };
@ -599,6 +603,11 @@ cmdVolClone(vshControl *ctl, const vshCmd *cmd)
return false; return false;
} }
if (vshCommandOptBool(cmd, "print-xml")) {
vshPrint(ctl, "%s", newxml);
return true;
}
if (!(newvol = virStorageVolCreateXMLFrom(origpool, (char *) newxml, if (!(newvol = virStorageVolCreateXMLFrom(origpool, (char *) newxml,
origvol, flags))) { origvol, flags))) {
vshError(ctl, _("Failed to clone vol from %s"), vshError(ctl, _("Failed to clone vol from %s"),