Merge pull request #14622 from rabbitmq/rabbitmq-server-11304
Introduce a configurable directory for 3rd party plugins that's not deleted during the Mnesia => Khepri migration
This commit is contained in:
commit
149b5e30ad
|
@ -1066,7 +1066,8 @@ mnesia_and_msg_store_files() ->
|
|||
rabbit_node_monitor:classic_filename(),
|
||||
rabbit_node_monitor:quorum_filename(),
|
||||
rabbit_feature_flags:enabled_feature_flags_list_file(),
|
||||
rabbit_khepri:dir()],
|
||||
rabbit_khepri:dir(),
|
||||
rabbit_plugins:user_provided_plugins_data_dir()],
|
||||
IgnoredFiles = [filename:basename(File) || File <- IgnoredFiles0],
|
||||
?LOG_DEBUG("Files and directories found in node's data directory: ~ts, of them to be ignored: ~ts",
|
||||
[string:join(lists:usort(List0), ", "), string:join(lists:usort(IgnoredFiles), ", ")]),
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
-export([validate_plugins/1, format_invalid_plugins/1]).
|
||||
-export([is_strictly_plugin/1, strictly_plugins/2, strictly_plugins/1]).
|
||||
-export([plugins_dir/0, plugin_names/1, plugins_expand_dir/0, enabled_plugins_file/0]).
|
||||
-export([user_provided_plugins_data_dir/0]).
|
||||
-export([is_enabled/1, is_enabled_on_node/2, enabled_plugins/0]).
|
||||
-export([which_plugin/1]).
|
||||
|
||||
|
@ -93,6 +94,15 @@ plugins_dir() ->
|
|||
filename:join([rabbit:data_dir(), "plugins_dir_stub"])
|
||||
end.
|
||||
|
||||
user_provided_plugins_data_dir() ->
|
||||
case application:get_env(rabbit, user_provided_plugins_data_dir) of
|
||||
{ok, PluginsDataDir} ->
|
||||
PluginsDataDir;
|
||||
_ ->
|
||||
DataDir = rabbit_mnesia:dir(),
|
||||
filename:join([DataDir, "user_provided_plugins_data_dir"])
|
||||
end.
|
||||
|
||||
-spec enabled_plugins_file() -> file:filename().
|
||||
enabled_plugins_file() ->
|
||||
case application:get_env(rabbit, enabled_plugins_file) of
|
||||
|
|
|
@ -124,6 +124,11 @@ from_mnesia_to_khepri(Config) ->
|
|||
Maintenance = rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_db_maintenance, get, [Server]),
|
||||
?assertNot(undefined == Maintenance),
|
||||
|
||||
PluginsDataDir = rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_plugins, user_provided_plugins_data_dir, []),
|
||||
ok = file:make_dir(PluginsDataDir),
|
||||
PluginDataFile = filename:join(PluginsDataDir, "test.txt"),
|
||||
ok = file:write_file(PluginDataFile, "test content"),
|
||||
|
||||
%% 2)
|
||||
Servers = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
|
||||
ok = rabbit_ct_broker_helpers:enable_feature_flag(Config, Servers, khepri_db),
|
||||
|
@ -156,5 +161,8 @@ from_mnesia_to_khepri(Config) ->
|
|||
MaintenanceK = rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_db_maintenance, get, [Server]),
|
||||
?assertEqual(MaintenanceK, Maintenance),
|
||||
|
||||
%% plugin data file should be preserved
|
||||
?assertEqual({ok, <<"test content">>}, file:read_file(PluginDataFile)),
|
||||
|
||||
ok.
|
||||
|
||||
|
|
Loading…
Reference in New Issue