summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/rabbitmq.conf.example16
-rw-r--r--priv/schema/rabbitmq.schema24
-rw-r--r--test/config_schema_SUITE_data/schema/rabbitmq.schema24
-rw-r--r--test/config_schema_SUITE_data/snippets.config5
4 files changed, 43 insertions, 26 deletions
diff --git a/docs/rabbitmq.conf.example b/docs/rabbitmq.conf.example
index 7e60c53da4..f03145b447 100644
--- a/docs/rabbitmq.conf.example
+++ b/docs/rabbitmq.conf.example
@@ -307,14 +307,14 @@
## See http://www.rabbitmq.com/clustering.html#auto-config for
## further details.
##
-# cluster_nodes.disc.rabbit = rabbit@my.host.com
-
-## You can define multiple nodes
-# cluster_nodes.disc.hare = hare@my.host.com
-
-## There can be also ram nodes.
-## Ram nodes should not be defined together with disk nodes
-# cluster_nodes.ram.rabbit = rabbit@my.host.com
+# autocluster.classic_config.nodes.node1 = rabbit1@hostname
+# autocluster.classic_config.nodes.node2 = rabbit2@hostname
+# autocluster.classic_config.nodes.node3 = rabbit3@hostname
+# autocluster.classic_config.nodes.node4 = rabbit4@hostname
+
+## This node's type can be configured. If you are not sure
+## what node type to use, always use 'disc'.
+# autocluster.classic_config.node_type = disc
## Interval (in milliseconds) at which we send keepalive messages
## to other cluster members. Note that this is not the same thing
diff --git a/priv/schema/rabbitmq.schema b/priv/schema/rabbitmq.schema
index bf9cccbcb8..f6b18de72f 100644
--- a/priv/schema/rabbitmq.schema
+++ b/priv/schema/rabbitmq.schema
@@ -764,20 +764,28 @@ end}.
%%
%% {cluster_nodes, {['rabbit@my.host.com'], disc}},
-{mapping, "cluster_nodes.disc.$node", "rabbit.cluster_nodes",
+{mapping, "autocluster.classic_config.nodes.$node", "rabbit.cluster_nodes",
[{datatype, atom}]}.
-{mapping, "cluster_nodes.ram.$node", "rabbit.cluster_nodes",
+{mapping, "autocluster.classic_config.nodes.$node", "rabbit.cluster_nodes",
[{datatype, atom}]}.
+{mapping, "autocluster.classic_config.node_type", "rabbit.cluster_nodes", [
+ {datatype, {enum, [disc, disk, ram]}},
+ {default, disc}
+]}.
+
{translation, "rabbit.cluster_nodes",
fun(Conf) ->
- DiskNodes = [ V || {_, V} <- cuttlefish_variable:filter_by_prefix("cluster_nodes.disc", Conf)],
- RamNodes = [ V || {_, V} <- cuttlefish_variable:filter_by_prefix("cluster_nodes.ram", Conf)],
-
- case {DiskNodes, RamNodes} of
- {_, []} -> {DiskNodes, disc};
- {[], _} -> {RamNodes, ram}
+ Nodes = [V || {_, V} <- cuttlefish_variable:filter_by_prefix("autocluster.classic_config.nodes", Conf)],
+
+ case Nodes of
+ [] -> cuttlefish:unset();
+ Other ->
+ case cuttlefish:conf_get("autocluster.classic_config.node_type", Conf, disc) of
+ disc -> {Other, disc};
+ ram -> {Other, ram}
+ end
end
end}.
diff --git a/test/config_schema_SUITE_data/schema/rabbitmq.schema b/test/config_schema_SUITE_data/schema/rabbitmq.schema
index bf9cccbcb8..f6b18de72f 100644
--- a/test/config_schema_SUITE_data/schema/rabbitmq.schema
+++ b/test/config_schema_SUITE_data/schema/rabbitmq.schema
@@ -764,20 +764,28 @@ end}.
%%
%% {cluster_nodes, {['rabbit@my.host.com'], disc}},
-{mapping, "cluster_nodes.disc.$node", "rabbit.cluster_nodes",
+{mapping, "autocluster.classic_config.nodes.$node", "rabbit.cluster_nodes",
[{datatype, atom}]}.
-{mapping, "cluster_nodes.ram.$node", "rabbit.cluster_nodes",
+{mapping, "autocluster.classic_config.nodes.$node", "rabbit.cluster_nodes",
[{datatype, atom}]}.
+{mapping, "autocluster.classic_config.node_type", "rabbit.cluster_nodes", [
+ {datatype, {enum, [disc, disk, ram]}},
+ {default, disc}
+]}.
+
{translation, "rabbit.cluster_nodes",
fun(Conf) ->
- DiskNodes = [ V || {_, V} <- cuttlefish_variable:filter_by_prefix("cluster_nodes.disc", Conf)],
- RamNodes = [ V || {_, V} <- cuttlefish_variable:filter_by_prefix("cluster_nodes.ram", Conf)],
-
- case {DiskNodes, RamNodes} of
- {_, []} -> {DiskNodes, disc};
- {[], _} -> {RamNodes, ram}
+ Nodes = [V || {_, V} <- cuttlefish_variable:filter_by_prefix("autocluster.classic_config.nodes", Conf)],
+
+ case Nodes of
+ [] -> cuttlefish:unset();
+ Other ->
+ case cuttlefish:conf_get("autocluster.classic_config.node_type", Conf, disc) of
+ disc -> {Other, disc};
+ ram -> {Other, ram}
+ end
end
end}.
diff --git a/test/config_schema_SUITE_data/snippets.config b/test/config_schema_SUITE_data/snippets.config
index abfc28441e..45d9d73936 100644
--- a/test/config_schema_SUITE_data/snippets.config
+++ b/test/config_schema_SUITE_data/snippets.config
@@ -94,8 +94,9 @@ default_permissions.write = .*",
{default_permissions, [<<".*">>, <<".*">>, <<".*">>]}]}],[]}
,
{13,
-"cluster_nodes.disc.1 = rabbit@hostname1
-cluster_nodes.disc.2 = rabbit@hostname2",
+"autocluster.classic_config.nodes.peer1 = rabbit@hostname1
+autocluster.classic_config.nodes.peer2 = rabbit@hostname2
+autocluster.classic_config.node_type = disc",
[{rabbit, [
{cluster_nodes, {[rabbit@hostname2,rabbit@hostname1], disc}}
]}],[]}