Merge pull request #6663 from tigercl/fix/mongo-rw-mode
fix(mongo): add r_mode and w_mode options
This commit is contained in:
commit
08120b9a99
|
@ -82,7 +82,8 @@ t_create_invalid(_Config) ->
|
|||
InvalidConfigs =
|
||||
[
|
||||
AuthConfig#{mongo_type => <<"unknown">>},
|
||||
AuthConfig#{selector => <<"{ \"username\": \"${username}\" }">>}
|
||||
AuthConfig#{selector => <<"{ \"username\": \"${username}\" }">>},
|
||||
AuthConfig#{w_mode => <<"unknown">>}
|
||||
],
|
||||
|
||||
lists:foreach(
|
||||
|
@ -247,6 +248,7 @@ raw_mongo_auth_config() ->
|
|||
database => <<"mqtt">>,
|
||||
collection => <<"users">>,
|
||||
server => mongo_server(),
|
||||
w_mode => <<"unsafe">>,
|
||||
|
||||
selector => #{<<"username">> => <<"${username}">>},
|
||||
password_hash_field => <<"password_hash">>,
|
||||
|
|
|
@ -160,6 +160,7 @@ raw_mongo_auth_config(SpecificSSLOpts) ->
|
|||
database => <<"mqtt">>,
|
||||
collection => <<"users">>,
|
||||
server => mongo_server(),
|
||||
w_mode => <<"unsafe">>,
|
||||
|
||||
selector => #{<<"username">> => <<"${username}">>},
|
||||
password_hash_field => <<"password_hash">>,
|
||||
|
|
|
@ -73,6 +73,7 @@ set_special_configs(_App) ->
|
|||
<<"enable">> => true,
|
||||
<<"mongo_type">> => <<"single">>,
|
||||
<<"server">> => <<"127.0.0.1:27017">>,
|
||||
<<"w_mode">> => <<"unsafe">>,
|
||||
<<"pool_size">> => 1,
|
||||
<<"database">> => <<"mqtt">>,
|
||||
<<"ssl">> => #{<<"enable">> => false},
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
<<"enable">> => true,
|
||||
<<"mongo_type">> => <<"single">>,
|
||||
<<"server">> => <<?MONGO_SINGLE_HOST>>,
|
||||
<<"w_mode">> => <<"unsafe">>,
|
||||
<<"pool_size">> => 1,
|
||||
<<"database">> => <<"mqtt">>,
|
||||
<<"ssl">> => #{<<"enable">> => false},
|
||||
|
|
|
@ -34,7 +34,6 @@
|
|||
, on_jsonify/1
|
||||
]).
|
||||
|
||||
|
||||
%% ecpool callback
|
||||
-export([connect/1]).
|
||||
|
||||
|
@ -55,17 +54,21 @@ fields(single) ->
|
|||
[ {mongo_type, #{type => single,
|
||||
default => single}}
|
||||
, {server, fun server/1}
|
||||
, {w_mode, fun w_mode/1}
|
||||
] ++ mongo_fields();
|
||||
fields(rs) ->
|
||||
[ {mongo_type, #{type => rs,
|
||||
default => rs}}
|
||||
, {servers, fun servers/1}
|
||||
, {w_mode, fun w_mode/1}
|
||||
, {r_mode, fun r_mode/1}
|
||||
, {replica_set_name, fun replica_set_name/1}
|
||||
] ++ mongo_fields();
|
||||
fields(sharded) ->
|
||||
[ {mongo_type, #{type => sharded,
|
||||
default => sharded}}
|
||||
, {servers, fun servers/1}
|
||||
, {w_mode, fun w_mode/1}
|
||||
] ++ mongo_fields();
|
||||
fields(topology) ->
|
||||
[ {pool_size, fun emqx_connector_schema_lib:pool_size/1}
|
||||
|
@ -271,6 +274,14 @@ servers(type) -> binary();
|
|||
servers(validator) -> [?NOT_EMPTY("the value of the field 'servers' cannot be empty")];
|
||||
servers(_) -> undefined.
|
||||
|
||||
w_mode(type) -> hoconsc:enum([unsafe, safe]);
|
||||
w_mode(default) -> unsafe;
|
||||
w_mode(_) -> undefined.
|
||||
|
||||
r_mode(type) -> hoconsc:enum([master, slave_ok]);
|
||||
r_mode(default) -> master;
|
||||
r_mode(_) -> undefined.
|
||||
|
||||
duration(type) -> emqx_schema:duration_ms();
|
||||
duration(nullable) -> true;
|
||||
duration(_) -> undefined.
|
||||
|
|
Loading…
Reference in New Issue