summaryrefslogtreecommitdiff
path: root/priv/schema
diff options
context:
space:
mode:
authorDaniil Fedotov <dfedotov@pivotal.io>2016-11-23 16:17:21 +0000
committerDaniil Fedotov <dfedotov@pivotal.io>2016-11-23 16:17:21 +0000
commit3542d80dfc102170c591639361d41288a853e3c7 (patch)
tree7bc03fa60098d0380edf5d95a41d44b41eded8cb /priv/schema
parentc135b70c4690ddf3fdbafb9e0a8191cb2312eaae (diff)
parent90d640207e1f6d8d0956019fd799412677e8a965 (diff)
downloadrabbitmq-server-git-3542d80dfc102170c591639361d41288a853e3c7.tar.gz
Merge branch 'master' into rabbitmq-server-567
Diffstat (limited to 'priv/schema')
-rw-r--r--priv/schema/rabbitmq.schema58
1 files changed, 51 insertions, 7 deletions
diff --git a/priv/schema/rabbitmq.schema b/priv/schema/rabbitmq.schema
index 150a26b60d..f31ec5416c 100644
--- a/priv/schema/rabbitmq.schema
+++ b/priv/schema/rabbitmq.schema
@@ -757,6 +757,39 @@ end}.
{mapping, "mirroring_sync_batch_size", "rabbit.mirroring_sync_batch_size",
[{datatype, bytesize}, {validators, ["size_less_than_2G"]}]}.
+%% Peer discovery backend used by autoclustering.
+%%
+
+{mapping, "autocluster.peer_discovery_backend", "rabbit.autocluster.peer_discovery_backend", [
+ {datatype, atom}
+]}.
+
+%% Own node type used by autoclustering.
+%%
+
+{mapping, "autocluster.node_type", "rabbit.autocluster.node_type", [
+ {datatype, {enum, [disc, disk, ram]}}
+]}.
+
+{translation, "rabbit.autocluster.node_type",
+fun(Conf) ->
+ %% if peer discovery backend isn't configured, don't generate
+ %% node type
+ case cuttlefish:conf_get("autocluster.peer_discovery_backend", Conf, undefined) of
+ undefined -> cuttlefish:unset();
+ _Backend ->
+ case cuttlefish:conf_get("autocluster.node_type", Conf) of
+ disc -> disc;
+ %% always cast to `disc`
+ disk -> disc;
+ ram -> ram;
+ _Other -> disc
+ end
+ end
+end}.
+
+%% Classic config-driven autocluster backend.
+%%
%% Make clustering happen *automatically* at startup - only applied
%% to nodes that have just been reset or started for the first time.
%% See http://www.rabbitmq.com/clustering.html#auto-config for
@@ -767,11 +800,6 @@ end}.
{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) ->
Nodes = [V || {_, V} <- cuttlefish_variable:filter_by_prefix("autocluster.classic_config.nodes", Conf)],
@@ -779,15 +807,29 @@ fun(Conf) ->
case Nodes of
[] -> cuttlefish:unset();
Other ->
- case cuttlefish:conf_get("autocluster.classic_config.node_type", Conf, disc) of
+ case cuttlefish:conf_get("autocluster.node_type", Conf, disc) of
disc -> {Other, disc};
- % Always cast to `disc`
+ %% Always cast to `disc`
disk -> {Other, disc};
ram -> {Other, ram}
end
end
end}.
+%% DNS (A records and reverse lookups)-based peer discovery.
+%%
+
+{mapping, "autocluster.dns.hostname", "rabbit.autocluster.peer_discovery_dns.hostname",
+ [{datatype, string}]}.
+
+{translation, "rabbit.autocluster.peer_discovery_dns.hostname",
+fun(Conf) ->
+ case cuttlefish:conf_get("autocluster.dns.hostname", Conf, undefined) of
+ undefined -> cuttlefish:unset();
+ Value -> list_to_binary(Value)
+ end
+end}.
+
%% Interval (in milliseconds) at which we send keepalive messages
%% to other cluster members. Note that this is not the same thing
@@ -799,6 +841,8 @@ end}.
{mapping, "cluster_keepalive_interval", "rabbit.cluster_keepalive_interval",
[{datatype, integer}]}.
+%% Queue master locator
+%%
{mapping, "queue_master_locator", "rabbit.queue_master_locator",
[{datatype, string}]}.