From 4cbcaffb74c1f59734eb7379cd8165922345ec13 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Thu, 12 Mar 2015 16:04:00 +0100 Subject: [PATCH] virsh: domain: Add --print-xml flag for command change-media 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 eea95174ef..ac1606be07 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 dfbee545de..8e4b413b20 100644 --- a/tools/virsh.pod +++ b/tools/virsh.pod @@ -2597,6 +2597,7 @@ expected. =item B I I [I<--eject>] [I<--insert>] [I<--update>] [I] [I<--force>] [[I<--live>] [I<--config>] | [I<--current>]] +[I<--print-xml>] Change media of CDROM or floppy drive. I can be the fully-qualified path or the unique target name () of the disk device. I @@ -2620,6 +2621,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 -- GitLab