Before this patch, the warning of RemoveDisks was incorrectly showing
the index of the disk (whose removal failed) in the list of the
"pending-removal" disks instead of the, more general, instance's disk
list.

Signed-off-by: Yiannis Tsiouris <[email protected]>
Signed-off-by: Ivan Kanakarakis <[email protected]>
---
 lib/cmdlib/instance_utils.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/cmdlib/instance_utils.py b/lib/cmdlib/instance_utils.py
index 46cf28db7..059c43a46 100644
--- a/lib/cmdlib/instance_utils.py
+++ b/lib/cmdlib/instance_utils.py
@@ -335,6 +335,11 @@ def RemoveDisks(lu, instance, disks=None,
     disks = all_disks
 
   anno_disks = AnnotateDiskParams(instance, disks, lu.cfg)
+
+  uuid_idx_map = {}
+  for (idx, device) in enumerate(all_disks):
+    uuid_idx_map[device.uuid] = idx
+
   for (idx, device) in enumerate(anno_disks):
     if target_node_uuid:
       edata = [(target_node_uuid, device)]
@@ -344,7 +349,7 @@ def RemoveDisks(lu, instance, disks=None,
       result = lu.rpc.call_blockdev_remove(node_uuid, (disk, instance))
       if result.fail_msg:
         lu.LogWarning("Could not remove disk %s on node %s,"
-                      " continuing anyway: %s", idx,
+                      " continuing anyway: %s", uuid_idx_map.get(device.uuid),
                       lu.cfg.GetNodeName(node_uuid), result.fail_msg)
         if not (result.offline and node_uuid != instance.primary_node):
           all_result = False
-- 
2.11.0

Reply via email to