Merge pull request #12739 from rabbitmq/fix-khepri-reset

Fix RabbitMQ reset when using Khepri
This commit is contained in:
Jean-Sébastien Pédron 2024-11-15 17:40:16 +01:00 committed by GitHub
commit 44e74ceb96
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 27 additions and 6 deletions

View File

@ -585,16 +585,36 @@ remove_down_member(NodeToRemove) ->
%% @private
reset() ->
%% Rabbit should be stopped, but Khepri needs to be running. Restart it.
ok = setup(),
ok = khepri_cluster:reset(?RA_CLUSTER_NAME),
ok = khepri:stop(?RA_CLUSTER_NAME).
case rabbit:is_running() of
false ->
%% Rabbit should be stopped, but Khepri needs to be running.
%% Restart it.
ok = setup(),
ok = khepri_cluster:reset(?RA_CLUSTER_NAME),
ok = khepri:stop(?RA_CLUSTER_NAME),
_ = file:delete(rabbit_guid:filename()),
ok;
true ->
throw({error, rabbitmq_unexpectedly_running})
end.
%% @private
force_reset() ->
DataDir = maps:get(data_dir, ra_system:fetch(coordination)),
ok = rabbit_file:recursive_delete(filelib:wildcard(DataDir ++ "/*")).
case rabbit:is_running() of
false ->
ok = khepri:stop(?RA_CLUSTER_NAME),
DataDir = maps:get(data_dir, ra_system:fetch(?RA_SYSTEM)),
ok = rabbit_ra_systems:ensure_ra_system_stopped(?RA_SYSTEM),
ok = rabbit_file:recursive_delete(
filelib:wildcard(DataDir ++ "/*")),
_ = file:delete(rabbit_guid:filename()),
ok;
true ->
throw({error, rabbitmq_unexpectedly_running})
end.
%% @private

View File

@ -16,6 +16,7 @@
all_ra_systems/0,
are_running/0,
ensure_ra_system_started/1,
ensure_ra_system_stopped/1,
ensure_started/0,
ensure_stopped/0]).