Allow printing the XML that would be used mostly for debugging purposes.
---
tools/virsh-domain.c | 17 +++++++++++++----
tools/virsh.pod | 3 +++
2 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 8bc0512..23d0b63 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -12274,6 +12274,10 @@ static const vshCmdOptDef opts_change_media[] = {
.type = VSH_OT_BOOL,
.help = N_("force media changing")
},
+ {.name = "print-xml",
+ .type = VSH_OT_BOOL,
+ .help = N_("print XML document rather than change media")
+ },
{.name = NULL}
};
@@ -12354,12 +12358,17 @@ cmdChangeMedia(vshControl *ctl, const vshCmd *cmd)
if (!(disk_xml = vshPrepareDiskXML(disk_node, source, path, prepare_type)))
goto cleanup;
- if (virDomainUpdateDeviceFlags(dom, disk_xml, flags) != 0) {
- vshError(ctl, _("Failed to complete action %s on media"), action);
- goto cleanup;
+ if (vshCommandOptBool(cmd, "print-xml")) {
+ vshPrint(ctl, "%s", disk_xml);
+ } else {
+ if (virDomainUpdateDeviceFlags(dom, disk_xml, flags) != 0) {
+ vshError(ctl, _("Failed to complete action %s on media"), action);
+ goto cleanup;
+ }
+
+ vshPrint(ctl, _("succeeded to complete action %s on media\n"),
action);
}
- vshPrint(ctl, _("succeeded to complete action %s on media\n"), action);
ret = true;
cleanup:
diff --git a/tools/virsh.pod b/tools/virsh.pod
index 714de34..7d43f6f 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -2581,6 +2581,7 @@ expected.
=item B<change-media> I<domain> I<path> [I<--eject>]
[I<--insert>]
[I<--update>] [I<source>] [I<--force>] [[I<--live>]
[I<--config>] | [I<--current>]]
+[I<--print-xml>]
Change media of CDROM or floppy drive. I<path> can be the fully-qualified path
or the unique target name (<target dev='hdc'>) of the disk device.
I<source>
@@ -2604,6 +2605,8 @@ the hypervisor's implementation.
Both I<--live> and I<--config> flags may be given, but I<--current> is
exclusive. If no flag is specified, behavior is different depending
on hypervisor.
+If I<--print-xml> is specified the XML that would be used to change media is
+printed instead of changing the media.
=back
--
2.2.2