diff options
| -rw-r--r-- | docs/rabbitmq.conf.example | 16 | ||||
| -rw-r--r-- | priv/schema/rabbitmq.schema | 24 | ||||
| -rw-r--r-- | test/config_schema_SUITE_data/schema/rabbitmq.schema | 24 | ||||
| -rw-r--r-- | test/config_schema_SUITE_data/snippets.config | 5 |
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}} ]}],[]} |
