From 7ace5ad60525b03aadacb05cfd0674070704c935 Mon Sep 17 00:00:00 2001 From: Evan Vigil-McClanahan Date: Fri, 9 Aug 2019 21:28:13 -0700 Subject: add configurable timeouts to nodetool --- priv/templates/nodetool | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/priv/templates/nodetool b/priv/templates/nodetool index 9e24f32..faf19e7 100644 --- a/priv/templates/nodetool +++ b/priv/templates/nodetool @@ -22,20 +22,32 @@ main(Args) -> halt(1) end, + Timeout = + case os:get_env("NODETOOL_TIMEOUT") of + false -> + 60000; + StrVal -> + try + list_to_integer(StrVal) + catch _:_ -> + 60000 + end + end, + case RestArgs of ["ping"] -> %% If we got this far, the node already responsed to a ping, so just dump %% a "pong" io:format("pong\n"); ["stop"] -> - io:format("~p\n", [rpc:call(TargetNode, init, stop, [], 60000)]); + io:format("~p\n", [rpc:call(TargetNode, init, stop, [], Timeout)]); ["restart"] -> - io:format("~p\n", [rpc:call(TargetNode, init, restart, [], 60000)]); + io:format("~p\n", [rpc:call(TargetNode, init, restart, [], Timeout)]); ["reboot"] -> - io:format("~p\n", [rpc:call(TargetNode, init, reboot, [], 60000)]); + io:format("~p\n", [rpc:call(TargetNode, init, reboot, [], Timeout)]); ["rpc", Module, Function | RpcArgs] -> case rpc:call(TargetNode, list_to_atom(Module), list_to_atom(Function), - [RpcArgs], 60000) of + [RpcArgs], Timeout) of ok -> ok; {badrpc, Reason} -> @@ -46,7 +58,7 @@ main(Args) -> end; ["rpcterms", Module, Function | ArgsAsString] -> case rpc:call(TargetNode, list_to_atom(Module), list_to_atom(Function), - consult(lists:flatten(ArgsAsString)), 60000) of + consult(lists:flatten(ArgsAsString)), Timeout) of {badrpc, Reason} -> io:format("RPC to ~p failed: ~p\n", [TargetNode, Reason]), halt(1); -- cgit v1.2.3