Blob Blame History Raw
From 3a4a77bb81e54b00fde463ebbab7fba43f19cda7 Mon Sep 17 00:00:00 2001
Message-Id: <3a4a77bb81e54b00fde463ebbab7fba43f19cda7.1389183250.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Wed, 8 Jan 2014 10:47:23 +0100
Subject: [PATCH] virsh: Use inactive definition when removing disk from config

https://bugzilla.redhat.com/show_bug.cgi?id=1049529

The 'detach-disk' command in virsh used the active XML definition of a
domain even when attempting to remove a disk from the config only. If
the disk was only in the inactive definition the operation failed. Fix
this by using the inactive XML in case that only the config is affected.

(cherry picked from commit f9d06ebcef9faffc085bab68968b8bb78f49f2d0)

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
 tools/virsh-domain.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 132b359..724ec1a 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -10022,7 +10022,12 @@ cmdDetachDisk(vshControl *ctl, const vshCmd *cmd)
     if (vshCommandOptStringReq(ctl, cmd, "target", &target) < 0)
         goto cleanup;
 
-    if (!(doc = virDomainGetXMLDesc(dom, 0)))
+    if (flags == VIR_DOMAIN_AFFECT_CONFIG)
+        doc = virDomainGetXMLDesc(dom, VIR_DOMAIN_XML_INACTIVE);
+    else
+        doc = virDomainGetXMLDesc(dom, 0);
+
+    if (!doc)
         goto cleanup;
 
     if (persistent &&
-- 
1.8.5.2