diff --git a/deps/rabbit/src/rabbit_core_ff.erl b/deps/rabbit/src/rabbit_core_ff.erl index e8817e1751ac..fc255f6a4b0b 100644 --- a/deps/rabbit/src/rabbit_core_ff.erl +++ b/deps/rabbit/src/rabbit_core_ff.erl @@ -148,8 +148,7 @@ {khepri_db, #{desc => "New Raft-based metadata store.", doc_url => "https://www.rabbitmq.com/docs/next/metadata-store", - stability => experimental, - experiment_level => supported, + stability => stable, depends_on => [feature_flags_v2, direct_exchange_routing_v2, maintenance_mode_status, diff --git a/deps/rabbit/test/rabbitmq_4_0_deprecations_SUITE.erl b/deps/rabbit/test/rabbitmq_4_0_deprecations_SUITE.erl index 0ee0a53e363c..ba5cc5a49880 100644 --- a/deps/rabbit/test/rabbitmq_4_0_deprecations_SUITE.erl +++ b/deps/rabbit/test/rabbitmq_4_0_deprecations_SUITE.erl @@ -296,6 +296,11 @@ join_when_ram_node_type_is_permitted_by_default_khepri(Config) -> [NodeA, NodeB] = rabbit_ct_broker_helpers:get_node_configs( Config, nodename), + IsPermitted = rabbit_ct_broker_helpers:rpc( + Config, NodeA, + rabbit_deprecated_features, is_permitted, + [ram_node_type]), + ok = rabbit_control_helper:command(stop_app, NodeA), ?assertMatch( {error, 70, @@ -305,6 +310,12 @@ join_when_ram_node_type_is_permitted_by_default_khepri(Config) -> [atom_to_list(NodeB)], [{"--ram", true}])), ok = rabbit_control_helper:command(start_app, NodeA), + ?assertEqual( + IsPermitted, + rabbit_ct_broker_helpers:rpc( + Config, NodeA, + rabbit_deprecated_features, is_permitted, [ram_node_type])), + ?assertEqual([NodeA], get_all_nodes(Config, NodeA)), ?assertEqual([NodeB], get_all_nodes(Config, NodeB)), ?assertEqual([NodeA], get_disc_nodes(Config, NodeA)), @@ -357,6 +368,11 @@ join_when_ram_node_type_is_not_permitted_from_conf_khepri(Config) -> [NodeA, NodeB] = rabbit_ct_broker_helpers:get_node_configs( Config, nodename), + IsPermitted = rabbit_ct_broker_helpers:rpc( + Config, NodeA, + rabbit_deprecated_features, is_permitted, + [ram_node_type]), + ok = rabbit_control_helper:command(stop_app, NodeA), ?assertMatch( {error, 70, @@ -366,6 +382,12 @@ join_when_ram_node_type_is_not_permitted_from_conf_khepri(Config) -> [atom_to_list(NodeB)], [{"--ram", true}])), ok = rabbit_control_helper:command(start_app, NodeA), + ?assertEqual( + IsPermitted, + rabbit_ct_broker_helpers:rpc( + Config, NodeA, + rabbit_deprecated_features, is_permitted, [ram_node_type])), + ?assertEqual([NodeA], get_all_nodes(Config, NodeA)), ?assertEqual([NodeB], get_all_nodes(Config, NodeB)), ?assertEqual([NodeA], get_disc_nodes(Config, NodeA)), diff --git a/deps/rabbitmq_cli/test/ctl/force_reset_command_test.exs b/deps/rabbitmq_cli/test/ctl/force_reset_command_test.exs index 9a26f90f53fe..50048ad61f69 100644 --- a/deps/rabbitmq_cli/test/ctl/force_reset_command_test.exs +++ b/deps/rabbitmq_cli/test/ctl/force_reset_command_test.exs @@ -31,14 +31,23 @@ defmodule ForceResetCommandTest do end test "run: force reset request to an active node with a stopped rabbit app succeeds", context do - add_vhost("some_vhost") - # ensure the vhost really does exist - assert vhost_exists?("some_vhost") - stop_rabbitmq_app() - assert :ok == @command.run([], context[:opts]) - start_rabbitmq_app() - # check that the created vhost no longer exists - assert match?([_], list_vhosts()) + node = get_rabbit_hostname() + case :rabbit_misc.rpc_call(node, :rabbit_khepri, :is_enabled, []) do + true -> + stop_rabbitmq_app() + assert {:error, ~c"Forced reset is unsupported with Khepri"} == @command.run([], context[:opts]) + start_rabbitmq_app() + + false -> + add_vhost("some_vhost") + # ensure the vhost really does exist + assert vhost_exists?("some_vhost") + stop_rabbitmq_app() + assert :ok == @command.run([], context[:opts]) + start_rabbitmq_app() + # check that the created vhost no longer exists + assert match?([_], list_vhosts()) + end end test "run: reset request to an active node with a running rabbit app fails", context do @@ -49,7 +58,7 @@ defmodule ForceResetCommandTest do case :rabbit_misc.rpc_call(node, :rabbit_khepri, :is_enabled, []) do true -> - assert match?({:error, :rabbitmq_unexpectedly_running}, ret) + assert match?({:error, ~c"Forced reset is unsupported with Khepri"}, ret) false -> assert match?({:error, :mnesia_unexpectedly_running}, ret)