Skip to content

Commit eeea517

Browse files
committed
Store tags in global parameters
1 parent f5ef64a commit eeea517

File tree

4 files changed

+43
-10
lines changed

4 files changed

+43
-10
lines changed

deps/rabbit/src/rabbit.erl

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
-include_lib("kernel/include/logger.hrl").
1212
-include_lib("rabbit_common/include/logging.hrl").
1313

14+
-feature(maybe_expr, enable).
15+
1416
-behaviour(application).
1517

1618
-export([start/0, boot/0, stop/0,
@@ -38,7 +40,7 @@
3840

3941
%%---------------------------------------------------------------------------
4042
%% Boot steps.
41-
-export([maybe_insert_default_data/0, boot_delegate/0, recover/0,
43+
-export([maybe_set_cluster_tags/0, maybe_insert_default_data/0, boot_delegate/0, recover/0,
4244
pg_local_amqp_session/0,
4345
pg_local_amqp_connection/0]).
4446

@@ -208,6 +210,12 @@
208210
{requires, recovery},
209211
{enables, routing_ready}]}).
210212

213+
214+
-rabbit_boot_step({cluster_tags,
215+
[{description, "Set cluster tags"},
216+
{mfa, {?MODULE, maybe_set_cluster_tags, []}},
217+
{requires, core_initialized}]}).
218+
211219
-rabbit_boot_step({routing_ready,
212220
[{description, "message delivery logic ready"},
213221
{requires, [core_initialized, recovery]}]}).
@@ -1138,6 +1146,24 @@ pg_local_amqp_connection() ->
11381146
pg_local_scope(Prefix) ->
11391147
list_to_atom(io_lib:format("~s_~s", [Prefix, node()])).
11401148

1149+
1150+
-spec maybe_set_cluster_tags() -> 'ok'.
1151+
1152+
maybe_set_cluster_tags() ->
1153+
maybe
1154+
not_found ?= rabbit_runtime_parameters:lookup_global(cluster_tags),
1155+
Tags = application:get_env(rabbit, cluster_tags, []),
1156+
false ?= Tags == [],
1157+
?LOG_INFO("Setting cluster tags...",
1158+
#{domain => ?RMQLOG_DOMAIN_GLOBAL}),
1159+
rabbit_runtime_parameters:set_global(cluster_tags, Tags, <<"internal_user">>)
1160+
else
1161+
_ ->
1162+
% Cluster tags are either already set (Other node, earlier start, CLI)
1163+
% Do nothing?
1164+
ok
1165+
end.
1166+
11411167
-spec maybe_insert_default_data() -> 'ok'.
11421168

11431169
maybe_insert_default_data() ->

deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/cluster_status_command.ex

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -398,12 +398,12 @@ defmodule RabbitMQ.CLI.Ctl.Commands.ClusterStatusCommand do
398398
defp cluster_tags(node, timeout) do
399399
case :rabbit_misc.rpc_call(
400400
node,
401-
:application,
402-
:get_env,
403-
[:rabbit, :cluster_tags],
401+
:rabbit_runtime_parameters,
402+
:value_global,
403+
[:cluster_tags],
404404
timeout) do
405-
{:ok, tags} -> tags
406-
_ -> []
405+
:not_found -> []
406+
tags -> tags
407407
end
408408
end
409409

deps/rabbitmq_management/src/rabbit_mgmt_wm_overview.erl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,4 +185,8 @@ transform_retention_intervals([{MaxAgeInSeconds, _}|Rest], Acc) ->
185185
transform_retention_intervals(Rest, [AccVal|Acc]).
186186

187187
cluster_tags() ->
188-
application:get_env(rabbit, cluster_tags, []).
188+
case rabbit_runtime_parameters:value_global(cluster_tags) of
189+
not_found ->
190+
[];
191+
Tags -> Tags
192+
end.

deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -288,8 +288,9 @@ init_per_testcase(Testcase = disabled_qq_replica_opers_test, Config) ->
288288
rabbit_ct_helpers:testcase_started(Config, Testcase);
289289
init_per_testcase(Testcase = cluster_tags_test, Config) ->
290290
Tags = [{<<"az">>, <<"us-east-3">>}, {<<"region">>,<<"us-east">>}, {<<"environment">>,<<"production">>}],
291-
rabbit_ct_broker_helpers:rpc_all(Config,
292-
application, set_env, [rabbit, cluster_tags, Tags]),
291+
rpc(
292+
Config, rabbit_runtime_parameters, set_global,
293+
[cluster_tags, Tags, none]),
293294
rabbit_ct_helpers:testcase_started(Config, Testcase);
294295
init_per_testcase(queues_detailed_test, Config) ->
295296
IsEnabled = rabbit_ct_broker_helpers:is_feature_flag_enabled(
@@ -358,7 +359,9 @@ end_per_testcase0(disabled_qq_replica_opers_test, Config) ->
358359
rpc(Config, application, unset_env, [rabbitmq_management, restrictions]),
359360
Config;
360361
end_per_testcase0(cluster_tags_test, Config) ->
361-
rpc(Config, application, unset_env, [rabbit, cluster_tags]),
362+
rpc(
363+
Config, rabbit_runtime_parameters, clear_global,
364+
[cluster_tags, none]),
362365
Config;
363366
end_per_testcase0(Testcase, Config)
364367
when Testcase == list_deprecated_features_test;

0 commit comments

Comments
 (0)