diff --git a/lib/rpc.py b/lib/rpc.py index 559931175c7c5ca4363be8f0c6249448f4179531..b00506d6a2f0f3a3df295b9cf27cbfa14bf5ed86 100644 --- a/lib/rpc.py +++ b/lib/rpc.py @@ -417,10 +417,11 @@ class _RpcProcessor: @param read_timeout: Read timeout for request """ - assert procedure in _TIMEOUTS, "RPC call not declared in the timeouts table" - if read_timeout is None: - read_timeout = _TIMEOUTS[procedure] + read_timeout = _TIMEOUTS.get(procedure, None) + + assert read_timeout is not None, \ + "Missing RPC read timeout for procedure '%s'" % procedure (results, requests) = \ self._PrepareRequests(self._resolver(hosts), self._port, procedure, diff --git a/test/ganeti.rpc_unittest.py b/test/ganeti.rpc_unittest.py index 68d950d42c5d90ee6a7291fc6787f07404c2fca3..21f536d209d8843da2a7716afae34fe2b379e911 100755 --- a/test/ganeti.rpc_unittest.py +++ b/test/ganeti.rpc_unittest.py @@ -36,16 +36,6 @@ from ganeti import objects import testutils -class TestTimeouts(unittest.TestCase): - def test(self): - names = [name[len("call_"):] for name in dir(rpc.RpcRunner) - if name.startswith("call_")] - self.assertEqual(len(names), len(rpc._TIMEOUTS)) - self.assertFalse([name for name in names - if not (rpc._TIMEOUTS[name] is None or - rpc._TIMEOUTS[name] > 0)]) - - class _FakeRequestProcessor: def __init__(self, response_fn): self._response_fn = response_fn @@ -229,7 +219,8 @@ class TestRpcProcessor(unittest.TestCase): http_proc = \ _FakeRequestProcessor(compat.partial(self._GetHttpErrorResponse, httperrnodes, failnodes)) - result = proc(nodes, "vg_list", None, _req_process_fn=http_proc) + result = proc(nodes, "vg_list", None, _req_process_fn=http_proc, + read_timeout=rpc._TMO_URGENT) self.assertEqual(sorted(result.keys()), sorted(nodes)) for name in nodes: