summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <klishinm@vmware.com>2021-11-16 19:02:39 +0300
committerGitHub <noreply@github.com>2021-11-16 19:02:39 +0300
commit846dde599c7aca06eca633600f9ed222bcd22b40 (patch)
tree74cccd449d09c2581ee6d563c886a24c04e0cd11
parent2aa163b930e7c04a8ca7b186dc1564758c9c4e3e (diff)
parentd836d840149e395082be1d33c3a487197a3640af (diff)
downloadrabbitmq-server-git-846dde599c7aca06eca633600f9ed222bcd22b40.tar.gz
Merge pull request #3743 from rabbitmq/mergify/bp/v3.9.x/pr-3740
Distribution listener settings support in rabbitmq.conf (backport #3740)
-rw-r--r--deps/rabbit/priv/schema/rabbit.schema33
-rw-r--r--deps/rabbit/test/config_schema_SUITE_data/rabbit.snippets22
2 files changed, 54 insertions, 1 deletions
diff --git a/deps/rabbit/priv/schema/rabbit.schema b/deps/rabbit/priv/schema/rabbit.schema
index be584c18fe..d146276a30 100644
--- a/deps/rabbit/priv/schema/rabbit.schema
+++ b/deps/rabbit/priv/schema/rabbit.schema
@@ -1803,6 +1803,37 @@ end}.
{validators, ["non_zero_positive_integer"]}
]}.
+{mapping, "distribution.listener.port_range.min", "kernel.inet_dist_listen_min", [
+ {datatype, [integer]},
+ {validators, ["non_zero_positive_integer"]}
+]}.
+
+{mapping, "distribution.listener.port_range.max", "kernel.inet_dist_listen_max", [
+ {datatype, [integer]},
+ {validators, ["non_zero_positive_integer"]}
+]}.
+
+{mapping, "distribution.listener.interface", "kernel.inet_dist_use_interface", [
+ {datatype, [string]},
+ {validators, ["is_ip"]}
+]}.
+
+{translation, "kernel.inet_dist_use_interface",
+ fun(Conf) ->
+ case cuttlefish:conf_get("distribution.listener.interface", Conf, undefined) of
+ undefined ->
+ cuttlefish:unset();
+ Value when is_list(Value) ->
+ case inet:parse_address(Value) of
+ {ok, Parsed} -> Parsed;
+ {error, _} -> cuttlefish:invalid("should be a valid IP address")
+ end;
+ _ ->
+ cuttlefish:invalid("should be a valid IP address")
+ end
+ end
+}.
+
% ==========================
% sysmon_handler section
% ==========================
@@ -2104,7 +2135,7 @@ fun(File) ->
end
end}.
-{validator, "is_ip", "string is a valid IP address",
+{validator, "is_ip", "value should be a valid IP address",
fun(IpStr) ->
Res = inet:parse_address(IpStr),
element(1, Res) == ok
diff --git a/deps/rabbit/test/config_schema_SUITE_data/rabbit.snippets b/deps/rabbit/test/config_schema_SUITE_data/rabbit.snippets
index 214a2d1e66..e41ae8cd6d 100644
--- a/deps/rabbit/test/config_schema_SUITE_data/rabbit.snippets
+++ b/deps/rabbit/test/config_schema_SUITE_data/rabbit.snippets
@@ -72,6 +72,28 @@ ssl_options.fail_if_no_peer_cert = true",
{num_acceptors,
"num_acceptors.ssl = 1",[{rabbit,[{num_ssl_acceptors,1}]}],[]},
+ {distribution_listener,
+ "distribution.listener.interface = 192.168.0.1
+ distribution.listener.port_range.min = 25679
+ distribution.listener.port_range.max = 25679",
+ [{kernel, [
+ {inet_dist_listen_min, 25679},
+ {inet_dist_listen_max, 25679},
+ {inet_dist_use_interface, {192,168,0,1}}
+ ]}],
+ []},
+
+ {distribution_listener_ipv6,
+ "distribution.listener.interface = ::1
+ distribution.listener.port_range.min = 25679
+ distribution.listener.port_range.max = 25679",
+ [{kernel, [
+ {inet_dist_listen_min, 25679},
+ {inet_dist_listen_max, 25679},
+ {inet_dist_use_interface, {0,0,0,0,0,0,0,1}}
+ ]}],
+ []},
+
{socket_writer_gc_threshold,
"socket_writer.gc_threshold = 999666111", [{rabbit, [{writer_gc_threshold, 999666111}]}],[]},