Packages

Erlang grab bag of useful functions. It should have been called swiss army knife but katanas are deadlier

Current section

Files

Jump to
katana src ktn_rpc.erl
Raw

src/ktn_rpc.erl

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% ktn_rpc: functions useful for RPC mechanisms
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-module(ktn_rpc).
-export(
[ multicall/3
]).
%% @doc runs rpc:multicall(M, F, A) and emits warnigns for errors,
%% but returns 'ok'.
-spec multicall(module(), atom(), [term()]) ->
ok.
multicall(M, F, A) ->
{Results, BadNodes} = rpc:multicall(M, F, A),
Errors = [Error || {badrpc, Error} <- Results],
case {Errors, BadNodes} of
{[], []} -> ok;
{[], BadNodes} ->
{error, {bad_nodes, [{mfa, {M, F, A}}, {nodes, BadNodes}]}};
{Errors, _} -> {error, {unknown, [{mfa, {M, F, A}}, {errors, Errors}]}}
end.