From bbd1c142dea2575bc59b458bc5da9d43cf728b4b Mon Sep 17 00:00:00 2001 From: Zaiming Shi Date: Sat, 4 Sep 2021 08:03:01 +0200 Subject: [PATCH] refactor(emqx_schema): use hoconsc:map type --- apps/emqx/src/emqx_schema.erl | 51 ++++++++++++++--------------------- 1 file changed, 20 insertions(+), 31 deletions(-) diff --git a/apps/emqx/src/emqx_schema.erl b/apps/emqx/src/emqx_schema.erl index 0c9f19d79..64ccbc58f 100644 --- a/apps/emqx/src/emqx_schema.erl +++ b/apps/emqx/src/emqx_schema.erl @@ -76,7 +76,11 @@ namespace() -> undefined. roots() -> - ["zones", + [{"zones", + sc(map("name", ref("zone")), + #{ desc => "A zones is a set configs grouped per the zone's name, there is a builtin zone named 'default' " + "The name of a zone can be bound to listners to apply zone settings to connections accepted by the bound listener." + })}, "mqtt", "flapping_detect", "force_shutdown", @@ -94,8 +98,14 @@ roots() -> "stats", "sysmon", "alarm", + {"authentication", + sc(hoconsc:lazy(hoconsc:array(map())), + #{ desc => "Default authentication configs for all MQTT listeners.
" + "For per-listener overrides see authentication " + "in listener configs" + })}, "authorization", - {"authentication", sc(hoconsc:lazy(hoconsc:array(map())), #{})} + "flapping_detect" ]. fields("stats") -> @@ -270,14 +280,7 @@ fields("mqtt") -> })} ]; -fields("zones") -> - [ {"$name", - sc(ref("zone_settings"), - #{ - } - )}]; - -fields("zone_settings") -> +fields("zone") -> Fields = ["mqtt", "stats", "flapping_detect", "force_shutdown", "conn_congestion", "rate_limit", "quota", "force_gc"], [{F, ref(emqx_zone_schema, F)} || F <- Fields]; @@ -375,53 +378,37 @@ fields("force_gc") -> fields("listeners") -> [ {"tcp", - sc(ref("tcp_listeners"), + sc(map(name, ref("mqtt_tcp_listener")), #{ desc => "TCP listeners" , nullable => {true, recursive} }) } , {"ssl", - sc(ref("ssl_listeners"), + sc(map(name, ref("mqtt_ssl_listener")), #{ desc => "SSL listeners" , nullable => {true, recursive} }) } , {"ws", - sc(ref("ws_listeners"), + sc(map(name, ref("mqtt_ws_listener")), #{ desc => "HTTP websocket listeners" , nullable => {true, recursive} }) } , {"wss", - sc(ref("wss_listeners"), + sc(map(name, ref("mqtt_wss_listener")), #{ desc => "HTTPS websocket listeners" , nullable => {true, recursive} }) } , {"quic", - sc(ref("quic_listeners"), + sc(map(ref("mqtt_quic_listener")), #{ desc => "QUIC listeners" , nullable => {true, recursive} }) } ]; -fields("tcp_listeners") -> - [ {"$name", ref("mqtt_tcp_listener")} - ]; -fields("ssl_listeners") -> - [ {"$name", ref("mqtt_ssl_listener")} - ]; -fields("ws_listeners") -> - [ {"$name", ref("mqtt_ws_listener")} - ]; -fields("wss_listeners") -> - [ {"$name", ref("mqtt_wss_listener")} - ]; -fields("quic_listeners") -> - [ {"$name", ref("mqtt_quic_listener")} - ]; - fields("mqtt_tcp_listener") -> [ {"tcp", sc(ref("tcp_opts"), @@ -1016,6 +1003,8 @@ ceiling(X) -> sc(Type, Meta) -> hoconsc:mk(Type, Meta). +map(Name, Type) -> hoconsc:map(Name, Type). + ref(Field) -> hoconsc:ref(?MODULE, Field). ref(Module, Field) -> hoconsc:ref(Module, Field).