From e1d71b185c92a035e49df9849f92eac693fd247c Mon Sep 17 00:00:00 2001 From: Diana Parra Corbacho Date: Tue, 10 Jun 2025 18:13:15 +0200 Subject: [PATCH] CT broker helpers: use rabbitmq-plugins from the given node with a secondary umbrella --- .../src/rabbit_ct_broker_helpers.erl | 48 ++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/deps/rabbitmq_ct_helpers/src/rabbit_ct_broker_helpers.erl b/deps/rabbitmq_ct_helpers/src/rabbit_ct_broker_helpers.erl index 4118850a7914..3137590256a2 100644 --- a/deps/rabbitmq_ct_helpers/src/rabbit_ct_broker_helpers.erl +++ b/deps/rabbitmq_ct_helpers/src/rabbit_ct_broker_helpers.erl @@ -2375,9 +2375,55 @@ disable_plugin(Config, Node, Plugin) -> plugin_action(Config, Node, [disable, Plugin]). plugin_action(Config, Node, Args) -> - Rabbitmqplugins = ?config(rabbitmq_plugins_cmd, Config), NodeConfig = get_node_config(Config, Node), Nodename = ?config(nodename, NodeConfig), + %% We want to use the CLI from the given node if there is a secondary + %% umbrella being configured. + I = get_node_index(Config, Node), + CanUseSecondary = (I + 1) rem 2 =:= 0, + WithPlugins0 = rabbit_ct_helpers:get_config(Config, + broker_with_plugins), + WithPlugins = case is_list(WithPlugins0) of + true -> lists:nth(I + 1, WithPlugins0); + false -> WithPlugins0 + end, + UseSecondaryDist = case ?config(secondary_dist, Config) of + false -> false; + _ -> CanUseSecondary + end, + UseSecondaryUmbrella = case ?config(secondary_umbrella, Config) of + false -> + false; + _ -> + CanUseSecondary + end, + Rabbitmqplugins = case UseSecondaryUmbrella of + true -> + SrcDir = case WithPlugins of + false -> + ?config( + secondary_rabbit_srcdir, + Config); + _ -> + ?config( + secondary_current_srcdir, + Config) + end, + SecScriptsDir = filename:join( + [SrcDir, "sbin"]), + rabbit_misc:format( + "~ts/rabbitmq-plugins", [SecScriptsDir]); + false -> + case UseSecondaryDist of + true -> + SecondaryDist = ?config(secondary_dist, Config), + rabbit_misc:format( + "~ts/sbin/rabbitmq-plugins", [SecondaryDist]); + false -> + ?config(rabbitmq_plugins_cmd, Config) + end + end, + Env = [ {"RABBITMQ_SCRIPTS_DIR", filename:dirname(Rabbitmqplugins)}, {"RABBITMQ_PID_FILE", ?config(pid_file, NodeConfig)},