Browse Source

refactor: change failure log configuration schema

Thales Macedo Garitezi 1 year ago
parent
commit
c478e375f6

+ 3 - 3
apps/emqx_message_validation/src/emqx_message_validation.erl

@@ -216,7 +216,7 @@ evaluate_sql_check(Check, Validation, Message) ->
     } = Check,
     #{
         name := Name,
-        log_failure_at := FailureLogLevel
+        log_failure := #{level := FailureLogLevel}
     } = Validation,
     {Data, _} = emqx_rule_events:eventmsg_publish(Message),
     try emqx_rule_runtime:evaluate_select(Fields, Data, Conditions) of
@@ -255,7 +255,7 @@ evaluate_schema_check(Check, Validation, #message{payload = Data}) ->
     #{schema := SerdeName} = Check,
     #{
         name := Name,
-        log_failure_at := FailureLogLevel
+        log_failure := #{level := FailureLogLevel}
     } = Validation,
     ExtraArgs =
         case Check of
@@ -406,7 +406,7 @@ run_validations(Validations, Message) ->
         Fun = fun(Validation, Acc) ->
             #{
                 name := Name,
-                log_failure_at := FailureLogLevel
+                log_failure := #{level := FailureLogLevel}
             } = Validation,
             case run_validation(Validation, Message) of
                 ok ->

+ 11 - 3
apps/emqx_message_validation/src/emqx_message_validation_schema.erl

@@ -78,10 +78,10 @@ fields(validation) ->
                 hoconsc:enum([drop, disconnect]),
                 #{desc => ?DESC("failure_action"), required => true}
             )},
-        {log_failure_at,
+        {log_failure,
             mk(
-                hoconsc:enum([error, warning, notice, info, debug]),
-                #{desc => ?DESC("log_failure_at"), default => info}
+                ref(log_failure),
+                #{desc => ?DESC("log_failure_at"), default => #{}}
             )},
         {checks,
             mk(
@@ -100,6 +100,14 @@ fields(validation) ->
                 }
             )}
     ];
+fields(log_failure) ->
+    [
+        {level,
+            mk(
+                hoconsc:enum([error, warning, notice, info, debug]),
+                #{desc => ?DESC("log_failure_at"), default => info}
+            )}
+    ];
 fields(check_sql) ->
     [
         {type, mk(sql, #{default => sql, desc => ?DESC("check_sql_type")})},

+ 1 - 1
apps/emqx_message_validation/test/emqx_message_validation_http_api_SUITE.erl

@@ -108,7 +108,7 @@ validation(Name, Checks, Overrides) ->
         <<"topics">> => <<"t/+">>,
         <<"strategy">> => <<"all_pass">>,
         <<"failure_action">> => <<"drop">>,
-        <<"log_failure_at">> => <<"warning">>,
+        <<"log_failure">> => #{<<"level">> => <<"warning">>},
         <<"checks">> => Checks
     },
     emqx_utils_maps:deep_merge(Default, Overrides).

+ 2 - 2
apps/emqx_message_validation/test/emqx_message_validation_tests.erl

@@ -38,7 +38,7 @@ validation(Name, Checks, Overrides) ->
         <<"topics">> => <<"t/+">>,
         <<"strategy">> => <<"all_pass">>,
         <<"failure_action">> => <<"drop">>,
-        <<"log_failure_at">> => <<"warning">>,
+        <<"log_failure">> => #{<<"level">> => <<"warning">>},
         <<"checks">> => Checks
     },
     emqx_utils_maps:deep_merge(Default, Overrides).
@@ -54,7 +54,7 @@ sql_check(SQL) ->
 
 eval_sql(Message, SQL) ->
     {ok, Check} = emqx_message_validation:parse_sql_check(SQL),
-    Validation = #{log_failure_at => warning, name => <<"validation">>},
+    Validation = #{log_failure => #{level => warning}, name => <<"validation">>},
     emqx_message_validation:evaluate_sql_check(Check, Validation, Message).
 
 message() ->