fix(statsd schema): a field is not 'required' when it has 'default'
This commit is contained in:
parent
981f75dc73
commit
b30f2ea58b
|
@ -2369,7 +2369,11 @@ non_empty_string(_) -> {error, invalid_string}.
|
||||||
%% hosts can be successfully parsed.
|
%% hosts can be successfully parsed.
|
||||||
%% 3. parsing: Done at runtime in each module which uses this config
|
%% 3. parsing: Done at runtime in each module which uses this config
|
||||||
servers_sc(Meta0, ParseOpts) ->
|
servers_sc(Meta0, ParseOpts) ->
|
||||||
Required = maps:get(required, Meta0, true),
|
%% if this filed has a default value
|
||||||
|
%% then it is not NOT required
|
||||||
|
%% NOTE: maps:is_key is not the solution beause #{default => undefined} is legit
|
||||||
|
HasDefault = (maps:get(default, Meta0, undefined) =/= undefined),
|
||||||
|
Required = maps:get(required, Meta0, not HasDefault),
|
||||||
Meta = #{
|
Meta = #{
|
||||||
required => Required,
|
required => Required,
|
||||||
converter => fun convert_servers/2,
|
converter => fun convert_servers/2,
|
||||||
|
|
|
@ -41,7 +41,6 @@ fields("statsd") ->
|
||||||
boolean(),
|
boolean(),
|
||||||
#{
|
#{
|
||||||
default => false,
|
default => false,
|
||||||
required => true,
|
|
||||||
desc => ?DESC(enable)
|
desc => ?DESC(enable)
|
||||||
}
|
}
|
||||||
)},
|
)},
|
||||||
|
@ -56,25 +55,22 @@ desc(_) -> undefined.
|
||||||
|
|
||||||
server() ->
|
server() ->
|
||||||
Meta = #{
|
Meta = #{
|
||||||
required => true,
|
default => <<"127.0.0.1:8125">>,
|
||||||
desc => ?DESC(?FUNCTION_NAME)
|
desc => ?DESC(?FUNCTION_NAME)
|
||||||
},
|
},
|
||||||
emqx_schema:servers_sc(Meta, ?SERVER_PARSE_OPTS).
|
emqx_schema:servers_sc(Meta, ?SERVER_PARSE_OPTS).
|
||||||
|
|
||||||
sample_interval(type) -> emqx_schema:duration_ms();
|
sample_interval(type) -> emqx_schema:duration_ms();
|
||||||
sample_interval(required) -> true;
|
|
||||||
sample_interval(default) -> "30s";
|
sample_interval(default) -> "30s";
|
||||||
sample_interval(desc) -> ?DESC(?FUNCTION_NAME);
|
sample_interval(desc) -> ?DESC(?FUNCTION_NAME);
|
||||||
sample_interval(_) -> undefined.
|
sample_interval(_) -> undefined.
|
||||||
|
|
||||||
flush_interval(type) -> emqx_schema:duration_ms();
|
flush_interval(type) -> emqx_schema:duration_ms();
|
||||||
flush_interval(required) -> true;
|
|
||||||
flush_interval(default) -> "30s";
|
flush_interval(default) -> "30s";
|
||||||
flush_interval(desc) -> ?DESC(?FUNCTION_NAME);
|
flush_interval(desc) -> ?DESC(?FUNCTION_NAME);
|
||||||
flush_interval(_) -> undefined.
|
flush_interval(_) -> undefined.
|
||||||
|
|
||||||
tags(type) -> map();
|
tags(type) -> map();
|
||||||
tags(required) -> false;
|
|
||||||
tags(default) -> #{};
|
tags(default) -> #{};
|
||||||
tags(desc) -> ?DESC(?FUNCTION_NAME);
|
tags(desc) -> ?DESC(?FUNCTION_NAME);
|
||||||
tags(_) -> undefined.
|
tags(_) -> undefined.
|
||||||
|
|
Loading…
Reference in New Issue