refactor(emqx_schema): use hoconsc:map type

This commit is contained in:
Zaiming Shi 2021-09-04 08:03:01 +02:00
parent a9cca84595
commit bbd1c142de
1 changed files with 20 additions and 31 deletions

View File

@ -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.<br>"
"For per-listener overrides see <code>authentication</code> "
"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).