diff options
author | Thuan Duong Ba <thuandb@amazon.com> | 2021-09-20 22:38:54 -0700 |
---|---|---|
committer | Michael Klishin <michael@clojurewerkz.org> | 2021-09-21 19:39:22 +0300 |
commit | 7aedc45d1fe674e262fd6dda53c2530fe59be8cb (patch) | |
tree | afbda78b419f33152c636befb131b7586b3ba8ff | |
parent | 6dbdc991c3111aa4ffa12a150b1402cf5c5e798e (diff) | |
download | rabbitmq-server-git-7aedc45d1fe674e262fd6dda53c2530fe59be8cb.tar.gz |
convert property map to proplists and vice versa for uri obfucation in shovel config
-rw-r--r-- | deps/rabbitmq_shovel/src/rabbit_shovel_dyn_worker_sup_sup.erl | 9 | ||||
-rw-r--r-- | deps/rabbitmq_shovel/src/rabbit_shovel_parameters.erl | 2 | ||||
-rw-r--r-- | deps/rabbitmq_shovel/test/parameters_SUITE.erl | 18 |
3 files changed, 18 insertions, 11 deletions
diff --git a/deps/rabbitmq_shovel/src/rabbit_shovel_dyn_worker_sup_sup.erl b/deps/rabbitmq_shovel/src/rabbit_shovel_dyn_worker_sup_sup.erl index 7774b11f7b..56805aee00 100644 --- a/deps/rabbitmq_shovel/src/rabbit_shovel_dyn_worker_sup_sup.erl +++ b/deps/rabbitmq_shovel/src/rabbit_shovel_dyn_worker_sup_sup.erl @@ -11,6 +11,7 @@ -export([start_link/0, init/1, adjust/2, stop_child/1, cleanup_specs/0]). -import(rabbit_misc, [pget/2]). +-import(proplists, [to_map/1, from_map/1]). -include("rabbit_shovel.hrl"). -include_lib("rabbit_common/include/rabbit.hrl"). @@ -42,7 +43,7 @@ start_child({VHost, ShovelName} = Name, Def) -> rabbit_log_shovel:debug("Starting a mirrored supervisor named '~s' in virtual host '~s'", [ShovelName, VHost]), Result = case mirrored_supervisor:start_child( ?SUPERVISOR, - {Name, {rabbit_shovel_dyn_worker_sup, start_link, [Name, rabbit_shovel_parameters:obfuscate_uris_parameters(Def)]}, + {Name, {rabbit_shovel_dyn_worker_sup, start_link, [Name, get_obfuscate_uris_parameters(Def)]}, transient, ?WORKER_WAIT, worker, [rabbit_shovel_dyn_worker_sup]}) of {ok, _Pid} -> ok; {error, {already_started, _Pid}} -> ok @@ -51,6 +52,12 @@ start_child({VHost, ShovelName} = Name, Def) -> rabbit_shovel_locks:unlock(LockId), Result. +get_obfuscate_uris_parameters(Def) -> + case Def of + M when is_map(M) -> to_map(rabbit_shovel_parameters:obfuscate_uris_parameters(from_map(Def))); + _ -> rabbit_shovel_parameters:obfuscate_uris_parameters(Def) + end. + child_exists(Name) -> lists:any(fun ({N, _, _, _}) -> N =:= Name end, mirrored_supervisor:which_children(?SUPERVISOR)). diff --git a/deps/rabbitmq_shovel/src/rabbit_shovel_parameters.erl b/deps/rabbitmq_shovel/src/rabbit_shovel_parameters.erl index 3ff3046f0b..58c4230a65 100644 --- a/deps/rabbitmq_shovel/src/rabbit_shovel_parameters.erl +++ b/deps/rabbitmq_shovel/src/rabbit_shovel_parameters.erl @@ -442,7 +442,7 @@ get_uris(Key, Def) -> [binary_to_list(URI) || URI <- URIs]. get_unencrypted_uris(Key, Def) -> - ObfuscatedURIs = pget(Key, Def), + ObfuscatedURIs = pget(Key, Def), URIs = [credentials_obfuscation:decrypt(ObfuscatedURI) || ObfuscatedURI <- ObfuscatedURIs], [binary_to_list(URI) || URI <- URIs]. diff --git a/deps/rabbitmq_shovel/test/parameters_SUITE.erl b/deps/rabbitmq_shovel/test/parameters_SUITE.erl index 77bf881f90..28de7d8315 100644 --- a/deps/rabbitmq_shovel/test/parameters_SUITE.erl +++ b/deps/rabbitmq_shovel/test/parameters_SUITE.erl @@ -43,9 +43,18 @@ groups() -> %% ------------------------------------------------------------------- init_per_suite(Config) -> + {ok, _} = application:ensure_all_started(credentials_obfuscation), + Secret = crypto:strong_rand_bytes(128), + ok = credentials_obfuscation:set_secret(Secret), Config. end_per_suite(Config) -> + case application:stop(credentials_obfuscation) of + ok -> + ok; + {error, {not_started, credentials_obfuscation}} -> + ok + end, Config. init_per_group(_, Config) -> @@ -55,18 +64,9 @@ end_per_group(_, Config) -> Config. init_per_testcase(_Testcase, Config) -> - {ok, _} = application:ensure_all_started(credentials_obfuscation), - Secret = crypto:strong_rand_bytes(128), - ok = credentials_obfuscation:set_secret(Secret), Config. end_per_testcase(_Testcase, Config) -> - case application:stop(credentials_obfuscation) of - ok -> - ok; - {error, {not_started, credentials_obfuscation}} -> - ok - end, Config. |