diff options
| author | Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> | 2021-08-11 15:29:34 +0200 |
|---|---|---|
| committer | Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> | 2021-08-11 15:50:40 +0200 |
| commit | 46b8321bd9fd1933c5b4fae75ffcc5abb72634c7 (patch) | |
| tree | 9186a224dc11a00a7d6196d662c31f66eb60e10f | |
| parent | 33c6cbf239be00eb280bb630d4c8e92ca900e17c (diff) | |
| download | rabbitmq-server-git-46b8321bd9fd1933c5b4fae75ffcc5abb72634c7.tar.gz | |
Add support for $RABBITMQ_DEFAULT_{USER,PASS,VHOST} env vars
They are the equivalent of the `default_{user,pass,vhost}` configuration
settings. Each set environment variable will take precedence over its
configuration file counterpart.
Fixes docker-library/rabbitmq#508.
| -rw-r--r-- | deps/rabbit/src/rabbit.erl | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/deps/rabbit/src/rabbit.erl b/deps/rabbit/src/rabbit.erl index c5f023b22b..23719c517b 100644 --- a/deps/rabbit/src/rabbit.erl +++ b/deps/rabbit/src/rabbit.erl @@ -7,6 +7,7 @@ -module(rabbit). +-include_lib("eunit/include/eunit.hrl"). -include_lib("kernel/include/logger.hrl"). -include_lib("rabbit_common/include/logging.hrl"). @@ -1047,10 +1048,10 @@ maybe_insert_default_data() -> end. insert_default_data() -> - {ok, DefaultUser} = application:get_env(default_user), - {ok, DefaultPass} = application:get_env(default_pass), + DefaultUser = get_default_data_param(default_user), + DefaultPass = get_default_data_param(default_pass), {ok, DefaultTags} = application:get_env(default_user_tags), - {ok, DefaultVHost} = application:get_env(default_vhost), + DefaultVHost = get_default_data_param(default_vhost), {ok, [DefaultConfigurePerm, DefaultWritePerm, DefaultReadPerm]} = application:get_env(default_permissions), @@ -1077,6 +1078,18 @@ insert_default_data() -> ?INTERNAL_USER), ok. +get_default_data_param(Param) -> + #{var_origins := Origins} = Context = rabbit_prelaunch:get_context(), + case maps:get(Param, Origins, default) of + environment -> + Value = maps:get(Param, Context), + ?assert(is_binary(Value)), + Value; + default -> + {ok, Value} = application:get_env(Param), + Value + end. + %%--------------------------------------------------------------------------- %% logging |
