diff --git a/lib/backend.py b/lib/backend.py index d4a991dc1cd77801069f950f5be8fa23c9bd0404..ab074da261e8685288d59b79621597be35fb676b 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 5dd52b04637c991feff2c90f01b0b7be01d43f8f..d23df1b09e8f8c31788413bf04d4610388ab0e12 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: