summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rabbitmq.conf.d/rabbitmq.conf6
-rw-r--r--rabbitmq.conf.d/rabbitmq.conf.example4
-rw-r--r--schema/rabbitmq.management.schema121
3 files changed, 108 insertions, 23 deletions
diff --git a/rabbitmq.conf.d/rabbitmq.conf b/rabbitmq.conf.d/rabbitmq.conf
index a9e23b2908..06e470d6e0 100644
--- a/rabbitmq.conf.d/rabbitmq.conf
+++ b/rabbitmq.conf.d/rabbitmq.conf
@@ -297,14 +297,14 @@ mirroring_sync_batch_size = 4096
## See http://www.rabbitmq.com/clustering.html#auto-config for
## further details.
##
-# cluster_nodes.disc.rabbit = rabbit@my.host.com
+# cluster_nodes.disc.1 = rabbit@my.host.com
## You can define multiple nodes
-# cluster_nodes.disc.hare = hare@my.host.com
+# cluster_nodes.disc.2 = 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
+# cluster_nodes.ram.1 = rabbit@my.host.com
## Interval (in milliseconds) at which we send keepalive messages
## to other cluster members. Note that this is not the same thing
diff --git a/rabbitmq.conf.d/rabbitmq.conf.example b/rabbitmq.conf.d/rabbitmq.conf.example
index 073c28e557..7afc852633 100644
--- a/rabbitmq.conf.d/rabbitmq.conf.example
+++ b/rabbitmq.conf.d/rabbitmq.conf.example
@@ -283,8 +283,8 @@
# cluster_partition_handling.pause_if_all_down.recover = ignore
## Node names to check
-# cluster_partition_handling.pause_if_all_down.node.rabbit = rabbit@localhost
-# cluster_partition_handling.pause_if_all_down.node.hare = hare@localhost
+# cluster_partition_handling.pause_if_all_down.node.1 = rabbit@localhost
+# cluster_partition_handling.pause_if_all_down.node.2 = hare@localhost
## Mirror sync batch size, in messages. Increasing this will speed
## up syncing but total batch size in bytes must not exceed 2 GiB.
diff --git a/schema/rabbitmq.management.schema b/schema/rabbitmq.management.schema
index b806252217..0623ec7dd7 100644
--- a/schema/rabbitmq.management.schema
+++ b/schema/rabbitmq.management.schema
@@ -33,21 +33,6 @@
%% {certfile, "/path/to/cert.pem"},
%% {keyfile, "/path/to/key.pem"}]}]},
-{mapping, "management.listener.ssl_opts.cacertfile", "rabbitmq_management.listener.ssl_opts.cacertfile",
- [{datatype, string},
- {validators, ["file_accessible"]}]}.
-
-{mapping, "management.listener.ssl_opts.certfile", "rabbitmq_management.listener.ssl_opts.certfile",
- [{datatype, string},
- {validators, ["file_accessible"]}]}.
-
-{mapping, "management.listener.ssl_opts.keyfile", "rabbitmq_management.listener.ssl_opts.keyfile",
- [{datatype, string},
- {validators, ["file_accessible"]}]}.
-
-{mapping, "management.listener.ssl_opts.$option", "rabbitmq_management.listener.ssl_opts.$option",
- [{datatype, atom}]}.
-
{mapping, "management.listener.port", "rabbitmq_management.listener.port",
[{datatype, integer}]}.
@@ -58,6 +43,108 @@
{mapping, "management.listener.ssl", "rabbitmq_management.listener.ssl",
[{datatype, {enum, [true, false]}}]}.
+
+%% SSL options section ========================================================
+
+{mapping, "management.listener.ssl_opts.verify", "rabbitmq_management.listener.ssl_opts.verify", [
+ {datatype, {enum, [verify_peer, verify_none]}}]}.
+
+{mapping, "management.listener.ssl_opts.fail_if_no_peer_cert", "rabbitmq_management.listener.ssl_opts.fail_if_no_peer_cert", [
+ {datatype, {enum, [true, false]}}]}.
+
+{mapping, "management.listener.ssl_opts.cacertfile", "rabbitmq_management.listener.ssl_opts.cacertfile",
+ [{datatype, string}, {validators, ["file_accessible"]}]}.
+
+{mapping, "management.listener.ssl_opts.certfile", "rabbitmq_management.listener.ssl_opts.certfile",
+ [{datatype, string}, {validators, ["file_accessible"]}]}.
+
+{mapping, "management.listener.ssl_opts.cacerts.$name", "rabbitmq_management.listener.ssl_opts.cacerts",
+ [{datatype, string}]}.
+
+{translation, "rabbitmq_management.listener.ssl_opts.cacerts",
+fun(Conf) ->
+ Settings = cuttlefish_variable:filter_by_prefix("management.listener.ssl_opts.cacerts", Conf),
+ [ list_to_binary(V) || {_, V} <- Settings ]
+end}.
+
+{mapping, "management.listener.ssl_opts.cert", "rabbitmq_management.listener.ssl_opts.cert",
+ [{datatype, string}]}.
+
+{translation, "rabbitmq_management.listener.ssl_opts.cert",
+fun(Conf) ->
+ list_to_binary(cuttlefish:conf_get("management.listener.ssl_opts.cert", Conf))
+end}.
+
+{mapping, "management.listener.ssl_opts.client_renegotiation", "rabbitmq_management.listener.ssl_opts.client_renegotiation",
+ [{datatype, {enum, [true, false]}}]}.
+
+{mapping, "management.listener.ssl_opts.crl_check", "rabbitmq_management.listener.ssl_opts.crl_check",
+ [{datatype, [{enum, [true, false, peer, best_effort]}]}]}.
+
+{mapping, "management.listener.ssl_opts.depth", "rabbitmq_management.listener.ssl_opts.depth",
+ [{datatype, integer}, {validators, ["byte"]}]}.
+
+{mapping, "management.listener.ssl_opts.dh", "rabbitmq_management.listener.ssl_opts.dh",
+ [{datatype, string}]}.
+
+{translation, "rabbitmq_management.listener.ssl_opts.dh",
+fun(Conf) ->
+ list_to_binary(cuttlefish:conf_get("management.listener.ssl_opts.dh", Conf))
+end}.
+
+{mapping, "management.listener.ssl_opts.dhfile", "rabbitmq_management.listener.ssl_opts.dhfile",
+ [{datatype, string}, {validators, ["file_accessible"]}]}.
+
+{mapping, "management.listener.ssl_opts.honor_cipher_order", "rabbitmq_management.listener.ssl_opts.honor_cipher_order",
+ [{datatype, {enum, [true, false]}}]}.
+
+{mapping, "management.listener.ssl_opts.key.RSAPrivateKey", "rabbitmq_management.listener.ssl_opts.key",
+ [{datatype, string}]}.
+
+{mapping, "management.listener.ssl_opts.key.DSAPrivateKey", "rabbitmq_management.listener.ssl_opts.key",
+ [{datatype, string}]}.
+
+{mapping, "management.listener.ssl_opts.key.PrivateKeyInfo", "rabbitmq_management.listener.ssl_opts.key",
+ [{datatype, string}]}.
+
+{translation, "rabbitmq_management.listener.ssl_opts.key",
+fun(Conf) ->
+ case cuttlefish_variable:filter_by_prefix("management.listener.ssl_opts.key", Conf) of
+ [{[_,_,Key], Val}|_] -> {list_to_atom(Key), list_to_binary(Val)};
+ _ -> undefined
+ end
+end}.
+
+{mapping, "management.listener.ssl_opts.keyfile", "rabbitmq_management.listener.ssl_opts.keyfile",
+ [{datatype, string}, {validators, ["file_accessible"]}]}.
+
+{mapping, "management.listener.ssl_opts.log_alert", "rabbitmq_management.listener.ssl_opts.log_alert",
+ [{datatype, {enum, [true, false]}}]}.
+
+{mapping, "management.listener.ssl_opts.password", "rabbitmq_management.listener.ssl_opts.password",
+ [{datatype, string}]}.
+
+{mapping, "management.listener.ssl_opts.psk_identity", "rabbitmq_management.listener.ssl_opts.psk_identity",
+ [{datatype, string}]}.
+
+{mapping, "management.listener.ssl_opts.reuse_sessions", "rabbitmq_management.listener.ssl_opts.reuse_sessions",
+ [{datatype, {enum, [true, false]}}]}.
+
+{mapping, "management.listener.ssl_opts.secure_renegotiate", "rabbitmq_management.listener.ssl_opts.secure_renegotiate",
+ [{datatype, {enum, [true, false]}}]}.
+
+{mapping, "management.listener.ssl_opts.versions.$version", "rabbitmq_management.listener.ssl_opts.versions",
+ [{datatype, atom}]}.
+
+{translation, "rabbitmq_management.listener.ssl_opts.versions",
+fun(Conf) ->
+ Settings = cuttlefish_variable:filter_by_prefix("management.listener.ssl_opts.cacerts", Conf),
+ [ V || {_, V} <- Settings ]
+end}.
+
+%% ===========================================================================
+
+
%% One of 'basic', 'detailed' or 'none'. See
%% http://www.rabbitmq.com/management.html#fine-stats for more details.
%% {rates_mode, basic},
@@ -86,7 +173,7 @@ fun(Conf) ->
Detailed = cuttlefish_variable:filter_by_prefix("management.sample_retention_policies.detailed", Conf),
TranslateKey = fun("minute") -> 60;
("hour") -> 3600;
- ("24hours") -> 86400;
+ ("day") -> 86400;
(Other) -> list_to_integer(Other)
end,
TranslatePolicy = fun(Section) ->
@@ -97,8 +184,6 @@ fun(Conf) ->
{detailed, TranslatePolicy(Detailed)}]
end}.
-
-
{validator, "file_accessible", "file exists",
fun(File) ->
ReadFile = file:read_file_info(File),