refactor: mongo_type and redis_type are not mandatory

the connector schemas are shared between authn, auth and bridges,
the difference is that authn and authz configs are unions like:

[
    {mongo_type = rs,
     ...
    }
    {another backend config}
]

however the brdige types are maps like, for example:

mongodb_rs.$name {
    mongo_type = rs
    ...
}

in which case, the mongo_type is not required.

in order to keep the schema static as much as possible,
this field is chanegd to 'required => false' with a default value.

However, for authn and authz, the union selector will still raise
exception if the there is no type provided.
This commit is contained in:
Zaiming (Stone) Shi 2023-01-08 09:51:26 +01:00
parent ffb09f0c4d
commit 0697c692ed
5 changed files with 24 additions and 24 deletions

View File

@ -2,8 +2,8 @@ emqx_connector_mongo {
single_mongo_type { single_mongo_type {
desc { desc {
en: "Standalone instance." en: "Standalone instance. Must be set to 'single' when MongoDB server is running in standalone mode."
zh: "Standalone模式。" zh: "Standalone 模式。当 MongoDB 服务运行在 standalone 模式下,该配置必须设置为 'single'。 "
} }
label: { label: {
en: "Standalone instance" en: "Standalone instance"
@ -13,8 +13,8 @@ emqx_connector_mongo {
rs_mongo_type { rs_mongo_type {
desc { desc {
en: "Replica set." en: "Replica set. Must be set to 'rs' when MongoDB server is running in 'replica set' mode."
zh: "Replica set模式。" zh: "Replica set模式。当 MongoDB 服务运行在 replica-set 模式下,该配置必须设置为 'rs'。"
} }
label: { label: {
en: "Replica set" en: "Replica set"
@ -24,8 +24,8 @@ emqx_connector_mongo {
sharded_mongo_type { sharded_mongo_type {
desc { desc {
en: "Sharded cluster." en: "Sharded cluster. Must be set to 'sharded' when MongoDB server is running in 'sharded' mode."
zh: "Sharded cluster模式。" zh: "Sharded cluster模式。当 MongoDB 服务运行在 sharded 模式下,该配置必须设置为 'sharded'。"
} }
label: { label: {
en: "Sharded cluster" en: "Sharded cluster"

View File

@ -2,8 +2,8 @@ emqx_connector_redis {
single { single {
desc { desc {
en: "Single mode" en: "Single mode. Must be set to 'single' when Redis server is running in single mode."
zh: "单机模式。" zh: "单机模式。当 Redis 服务运行在单机模式下,该配置必须设置为 'single'。"
} }
label: { label: {
en: "Single Mode" en: "Single Mode"
@ -13,8 +13,8 @@ emqx_connector_redis {
cluster { cluster {
desc { desc {
en: "Cluster mode" en: "Cluster mode. Must be set to 'cluster' when Redis server is running in clustered mode."
zh: "集群模式。" zh: "集群模式。当 Redis 服务运行在集群模式下,该配置必须设置为 'cluster'。"
} }
label: { label: {
en: "Cluster Mode" en: "Cluster Mode"
@ -24,8 +24,8 @@ emqx_connector_redis {
sentinel { sentinel {
desc { desc {
en: "Sentinel mode" en: "Sentinel mode. Must be set to 'sentinel' when Redis server is running in sentinel mode."
zh: "哨兵模式。" zh: "哨兵模式。当 Redis 服务运行在哨兵模式下,该配置必须设置为 'sentinel'。"
} }
label: { label: {
en: "Sentinel Mode" en: "Sentinel Mode"

View File

@ -67,7 +67,7 @@ fields(single) ->
[ [
{mongo_type, #{ {mongo_type, #{
type => single, type => single,
required => true, default => single,
desc => ?DESC("single_mongo_type") desc => ?DESC("single_mongo_type")
}}, }},
{server, server()}, {server, server()},
@ -77,7 +77,7 @@ fields(rs) ->
[ [
{mongo_type, #{ {mongo_type, #{
type => rs, type => rs,
required => true, default => rs,
desc => ?DESC("rs_mongo_type") desc => ?DESC("rs_mongo_type")
}}, }},
{servers, servers()}, {servers, servers()},
@ -89,7 +89,7 @@ fields(sharded) ->
[ [
{mongo_type, #{ {mongo_type, #{
type => sharded, type => sharded,
required => true, default => sharded,
desc => ?DESC("sharded_mongo_type") desc => ?DESC("sharded_mongo_type")
}}, }},
{servers, servers()}, {servers, servers()},

View File

@ -63,7 +63,8 @@ fields(single) ->
{server, server()}, {server, server()},
{redis_type, #{ {redis_type, #{
type => single, type => single,
required => true, default => single,
required => false,
desc => ?DESC("single") desc => ?DESC("single")
}} }}
] ++ ] ++
@ -74,7 +75,8 @@ fields(cluster) ->
{servers, servers()}, {servers, servers()},
{redis_type, #{ {redis_type, #{
type => cluster, type => cluster,
required => true, default => cluster,
required => false,
desc => ?DESC("cluster") desc => ?DESC("cluster")
}} }}
] ++ ] ++
@ -85,7 +87,8 @@ fields(sentinel) ->
{servers, servers()}, {servers, servers()},
{redis_type, #{ {redis_type, #{
type => sentinel, type => sentinel,
required => true, default => sentinel,
required => false,
desc => ?DESC("sentinel") desc => ?DESC("sentinel")
}}, }},
{sentinel, #{ {sentinel, #{

View File

@ -151,7 +151,6 @@ mongo_config(MongoHost, MongoPort0, rs = Type) ->
" servers = [~p]\n" " servers = [~p]\n"
" w_mode = safe\n" " w_mode = safe\n"
" database = mqtt\n" " database = mqtt\n"
" mongo_type = rs\n"
"}", "}",
[Name, Servers] [Name, Servers]
), ),
@ -168,7 +167,6 @@ mongo_config(MongoHost, MongoPort0, sharded = Type) ->
" servers = [~p]\n" " servers = [~p]\n"
" w_mode = safe\n" " w_mode = safe\n"
" database = mqtt\n" " database = mqtt\n"
" mongo_type = sharded\n"
"}", "}",
[Name, Servers] [Name, Servers]
), ),
@ -185,7 +183,6 @@ mongo_config(MongoHost, MongoPort0, single = Type) ->
" server = ~p\n" " server = ~p\n"
" w_mode = safe\n" " w_mode = safe\n"
" database = mqtt\n" " database = mqtt\n"
" mongo_type = single\n"
"}", "}",
[Name, Server] [Name, Server]
), ),