From 3efa9051e5fab3e286fdc293986026fb3cc08b2c Mon Sep 17 00:00:00 2001
From: Iustin Pop <iustin@google.com>
Date: Tue, 9 Jun 2009 11:10:37 +0200
Subject: [PATCH] Convert blockdev_getmirrorstatus rpc to new style

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>
---
 lib/backend.py | 4 ++--
 lib/cmdlib.py  | 7 ++++---
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/lib/backend.py b/lib/backend.py
index d4a991dc1..ab074da26 100644
--- a/lib/backend.py
+++ b/lib/backend.py
@@ -1374,9 +1374,9 @@ def BlockdevGetmirrorstatus(disks):
   for dsk in disks:
     rbd = _RecursiveFindBD(dsk)
     if rbd is None:
-      raise errors.BlockDeviceError("Can't find device %s" % str(dsk))
+      _Fail("Can't find device %s", dsk)
     stats.append(rbd.CombinedSyncStatus())
-  return stats
+  return True, stats
 
 
 def _RecursiveFindBD(disk):
diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 5dd52b046..d23df1b09 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -1688,15 +1688,16 @@ def _WaitForSync(lu, instance, oneshot=False, unlock=False):
     done = True
     cumul_degraded = False
     rstats = lu.rpc.call_blockdev_getmirrorstatus(node, instance.disks)
-    if rstats.failed or not rstats.data:
-      lu.LogWarning("Can't get any data from node %s", node)
+    msg = rstats.RemoteFailMsg()
+    if msg:
+      lu.LogWarning("Can't get any data from node %s: %s", node, msg)
       retries += 1
       if retries >= 10:
         raise errors.RemoteError("Can't contact node %s for mirror data,"
                                  " aborting." % node)
       time.sleep(6)
       continue
-    rstats = rstats.data
+    rstats = rstats.payload
     retries = 0
     for i, mstat in enumerate(rstats):
       if mstat is None:
-- 
GitLab