diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index a96087ec89c13b77038999629e804bdec63e6ca4..50544fb308e46e394b7857a318d5f4d0c43c44c7 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -6841,13 +6841,11 @@ class LUTestDelay(NoHooksLU):
raise errors.OpExecError("Error during master delay test")
if self.op.on_nodes:
result = self.rpc.call_test_delay(self.op.on_nodes, self.op.duration)
- if not result:
- raise errors.OpExecError("Complete failure from rpc call")
for node, node_result in result.items():
- node_result.Raise()
- if not node_result.data:
- raise errors.OpExecError("Failure during rpc call to node %s,"
- " result: %s" % (node, node_result.data))
+ msg = node_result.RemoteFailMsg()
+ if msg:
+ raise errors.OpExecError("Failure during rpc call to node %s: %s"
+ % (node, msg))
class IAllocator(object):
diff --git a/lib/utils.py b/lib/utils.py
index 49f4c99d63d369578aaa5561a74918a7286392b1..89436d8bbb76940f6ece1fd0392d48c091d9a144 100644
--- a/lib/utils.py
+++ b/lib/utils.py
@@ -1387,9 +1387,9 @@ def TestDelay(duration):
"""
if duration < 0:
- return False
+ return False, "Invalid sleep duration"
time.sleep(duration)
- return True
+ return True, None
def _CloseFDNoErr(fd, retries=5):