summaryrefslogtreecommitdiff
path: root/deps/rabbitmq_tracing/src/rabbit_tracing_util.erl
diff options
context:
space:
mode:
Diffstat (limited to 'deps/rabbitmq_tracing/src/rabbit_tracing_util.erl')
-rw-r--r--deps/rabbitmq_tracing/src/rabbit_tracing_util.erl32
1 files changed, 32 insertions, 0 deletions
diff --git a/deps/rabbitmq_tracing/src/rabbit_tracing_util.erl b/deps/rabbitmq_tracing/src/rabbit_tracing_util.erl
new file mode 100644
index 0000000000..93cb1dcb20
--- /dev/null
+++ b/deps/rabbitmq_tracing/src/rabbit_tracing_util.erl
@@ -0,0 +1,32 @@
+%% This Source Code Form is subject to the terms of the Mozilla Public
+%% License, v. 2.0. If a copy of the MPL was not distributed with this
+%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
+%%
+%% Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved.
+%%
+
+-module(rabbit_tracing_util).
+
+-export([coerce_env_value/2]).
+-export([apply_on_node/5]).
+
+coerce_env_value(username, Val) -> rabbit_data_coercion:to_binary(Val);
+coerce_env_value(password, Val) -> rabbit_data_coercion:to_binary(Val);
+coerce_env_value(_, Val) -> Val.
+
+apply_on_node(ReqData, Context, Mod, Fun, Args) ->
+ case rabbit_mgmt_util:id(node, ReqData) of
+ none ->
+ apply(Mod, Fun, Args);
+ Node0 ->
+ Node = binary_to_atom(Node0, utf8),
+ case rpc:call(Node, Mod, Fun, Args) of
+ {badrpc, _} = Error ->
+ Msg = io_lib:format("Node ~p could not be contacted: ~p",
+ [Node, Error]),
+ rabbit_log:warning(Msg, []),
+ rabbit_mgmt_util:bad_request(list_to_binary(Msg), ReqData, Context);
+ Any ->
+ Any
+ end
+ end.