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 =
|
InvalidConfigs =
|
||||||
[
|
[
|
||||||
AuthConfig#{mongo_type => <<"unknown">>},
|
AuthConfig#{mongo_type => <<"unknown">>},
|
||||||
AuthConfig#{selector => <<"{ \"username\": \"${username}\" }">>}
|
AuthConfig#{selector => <<"{ \"username\": \"${username}\" }">>},
|
||||||
|
AuthConfig#{w_mode => <<"unknown">>}
|
||||||
],
|
],
|
||||||
|
|
||||||
lists:foreach(
|
lists:foreach(
|
||||||
|
@ -247,6 +248,7 @@ raw_mongo_auth_config() ->
|
||||||
database => <<"mqtt">>,
|
database => <<"mqtt">>,
|
||||||
collection => <<"users">>,
|
collection => <<"users">>,
|
||||||
server => mongo_server(),
|
server => mongo_server(),
|
||||||
|
w_mode => <<"unsafe">>,
|
||||||
|
|
||||||
selector => #{<<"username">> => <<"${username}">>},
|
selector => #{<<"username">> => <<"${username}">>},
|
||||||
password_hash_field => <<"password_hash">>,
|
password_hash_field => <<"password_hash">>,
|
||||||
|
|
|
@ -160,6 +160,7 @@ raw_mongo_auth_config(SpecificSSLOpts) ->
|
||||||
database => <<"mqtt">>,
|
database => <<"mqtt">>,
|
||||||
collection => <<"users">>,
|
collection => <<"users">>,
|
||||||
server => mongo_server(),
|
server => mongo_server(),
|
||||||
|
w_mode => <<"unsafe">>,
|
||||||
|
|
||||||
selector => #{<<"username">> => <<"${username}">>},
|
selector => #{<<"username">> => <<"${username}">>},
|
||||||
password_hash_field => <<"password_hash">>,
|
password_hash_field => <<"password_hash">>,
|
||||||
|
|
|
@ -73,6 +73,7 @@ set_special_configs(_App) ->
|
||||||
<<"enable">> => true,
|
<<"enable">> => true,
|
||||||
<<"mongo_type">> => <<"single">>,
|
<<"mongo_type">> => <<"single">>,
|
||||||
<<"server">> => <<"127.0.0.1:27017">>,
|
<<"server">> => <<"127.0.0.1:27017">>,
|
||||||
|
<<"w_mode">> => <<"unsafe">>,
|
||||||
<<"pool_size">> => 1,
|
<<"pool_size">> => 1,
|
||||||
<<"database">> => <<"mqtt">>,
|
<<"database">> => <<"mqtt">>,
|
||||||
<<"ssl">> => #{<<"enable">> => false},
|
<<"ssl">> => #{<<"enable">> => false},
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
<<"enable">> => true,
|
<<"enable">> => true,
|
||||||
<<"mongo_type">> => <<"single">>,
|
<<"mongo_type">> => <<"single">>,
|
||||||
<<"server">> => <<?MONGO_SINGLE_HOST>>,
|
<<"server">> => <<?MONGO_SINGLE_HOST>>,
|
||||||
|
<<"w_mode">> => <<"unsafe">>,
|
||||||
<<"pool_size">> => 1,
|
<<"pool_size">> => 1,
|
||||||
<<"database">> => <<"mqtt">>,
|
<<"database">> => <<"mqtt">>,
|
||||||
<<"ssl">> => #{<<"enable">> => false},
|
<<"ssl">> => #{<<"enable">> => false},
|
||||||
|
|
|
@ -34,7 +34,6 @@
|
||||||
, on_jsonify/1
|
, on_jsonify/1
|
||||||
]).
|
]).
|
||||||
|
|
||||||
|
|
||||||
%% ecpool callback
|
%% ecpool callback
|
||||||
-export([connect/1]).
|
-export([connect/1]).
|
||||||
|
|
||||||
|
@ -55,17 +54,21 @@ fields(single) ->
|
||||||
[ {mongo_type, #{type => single,
|
[ {mongo_type, #{type => single,
|
||||||
default => single}}
|
default => single}}
|
||||||
, {server, fun server/1}
|
, {server, fun server/1}
|
||||||
|
, {w_mode, fun w_mode/1}
|
||||||
] ++ mongo_fields();
|
] ++ mongo_fields();
|
||||||
fields(rs) ->
|
fields(rs) ->
|
||||||
[ {mongo_type, #{type => rs,
|
[ {mongo_type, #{type => rs,
|
||||||
default => rs}}
|
default => rs}}
|
||||||
, {servers, fun servers/1}
|
, {servers, fun servers/1}
|
||||||
|
, {w_mode, fun w_mode/1}
|
||||||
|
, {r_mode, fun r_mode/1}
|
||||||
, {replica_set_name, fun replica_set_name/1}
|
, {replica_set_name, fun replica_set_name/1}
|
||||||
] ++ mongo_fields();
|
] ++ mongo_fields();
|
||||||
fields(sharded) ->
|
fields(sharded) ->
|
||||||
[ {mongo_type, #{type => sharded,
|
[ {mongo_type, #{type => sharded,
|
||||||
default => sharded}}
|
default => sharded}}
|
||||||
, {servers, fun servers/1}
|
, {servers, fun servers/1}
|
||||||
|
, {w_mode, fun w_mode/1}
|
||||||
] ++ mongo_fields();
|
] ++ mongo_fields();
|
||||||
fields(topology) ->
|
fields(topology) ->
|
||||||
[ {pool_size, fun emqx_connector_schema_lib:pool_size/1}
|
[ {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(validator) -> [?NOT_EMPTY("the value of the field 'servers' cannot be empty")];
|
||||||
servers(_) -> undefined.
|
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(type) -> emqx_schema:duration_ms();
|
||||||
duration(nullable) -> true;
|
duration(nullable) -> true;
|
||||||
duration(_) -> undefined.
|
duration(_) -> undefined.
|
||||||
|
|
Loading…
Reference in New Issue