Просмотр исходного кода

Merge pull request #11688 from zmstone/0926-audit-eval-command

fix(audit): make 'emqx eval' command auditable
Zaiming (Stone) Shi 2 лет назад
Родитель
Сommit
5614fd50e0
2 измененных файлов с 12 добавлено и 3 удалено
  1. 3 2
      bin/nodetool
  2. 9 1
      scripts/test/emqx-boot.bats

+ 3 - 2
bin/nodetool

@@ -140,11 +140,12 @@ do(Args) ->
                     io:format("~p\n", [Other])
             end;
         ["eval" | ListOfArgs] ->
+            % parse args locally in the remsh node
             Parsed = parse_eval_args(ListOfArgs),
             % and evaluate it on the remote node
-            case rpc:call(TargetNode, emqx_ctl, eval_erl, [Parsed]) of
+            case rpc:call(TargetNode, emqx_ctl, run_command, [eval_erl, Parsed], infinity) of
                 {ok, Value} ->
-                    io:format("~p~n",[Value]);
+                    io:format("~p~n", [Value]);
                 {badrpc, Reason} ->
                     io:format("RPC to ~p failed: ~p~n", [TargetNode, Reason]),
                     halt(1)

+ 9 - 1
scripts/test/emqx-boot.bats

@@ -12,10 +12,18 @@
     [[ "$output" =~ "ERROR: Invalid node name,".+ ]]
 }
 
-@test "corrupted cluster config file" {
+@test "corrupted cluster-override.conf" {
     conffile="./_build/$PROFILE/rel/emqx/data/configs/cluster-override.conf"
     echo "{" > $conffile
     run ./_build/$PROFILE/rel/emqx/bin/emqx console
     [[ $status -ne 0 ]]
     rm -f $conffile
 }
+
+@test "corrupted cluster.hocon" {
+    conffile="./_build/$PROFILE/rel/emqx/data/configs/cluster.hocon"
+    echo "{" > $conffile
+    run ./_build/$PROFILE/rel/emqx/bin/emqx console
+    [[ $status -ne 0 ]]
+    rm -f $conffile
+}