fix: keep eval command backward compatible with v4
Keeps "eval" command evaluating only Erlang expressions, even on Elixir node. Fixes: https://emqx.atlassian.net/browse/EMQX-8947
This commit is contained in:
parent
0af226dd5b
commit
161435d29d
|
@ -29,7 +29,7 @@ esac
|
|||
is_node_up() {
|
||||
local node="$1"
|
||||
docker exec -i "$node" \
|
||||
bash -c "emqx eval-erl \"['emqx@node1.emqx.io','emqx@node2.emqx.io'] = maps:get(running_nodes, ekka_cluster:info()).\"" > /dev/null 2>&1
|
||||
bash -c "emqx eval \"['emqx@node1.emqx.io','emqx@node2.emqx.io'] = maps:get(running_nodes, ekka_cluster:info()).\"" > /dev/null 2>&1
|
||||
}
|
||||
|
||||
is_node_listening() {
|
||||
|
|
24
bin/emqx
24
bin/emqx
|
@ -159,9 +159,6 @@ usage() {
|
|||
echo "Print EMQX installation root dir"
|
||||
;;
|
||||
eval)
|
||||
echo "Evaluate an Erlang or Elixir expression in the EMQX node"
|
||||
;;
|
||||
eval-erl)
|
||||
echo "Evaluate an Erlang expression in the EMQX node, even on Elixir node"
|
||||
;;
|
||||
eval-ex)
|
||||
|
@ -231,7 +228,7 @@ usage() {
|
|||
echo " Install Info: ertspath | root_dir"
|
||||
echo " Runtime Status: pid | ping"
|
||||
echo " Validate Config: check_config"
|
||||
echo " Advanced: console_clean | escript | rpc | rpcterms | eval | eval-erl | eval-ex"
|
||||
echo " Advanced: console_clean | escript | rpc | rpcterms | eval | eval-ex"
|
||||
echo ''
|
||||
echo "Execute '$REL_NAME COMMAND help' for more information"
|
||||
;;
|
||||
|
@ -1265,25 +1262,6 @@ case "${COMMAND}" in
|
|||
eval)
|
||||
assert_node_alive
|
||||
|
||||
shift
|
||||
if [ "$IS_ELIXIR" = "yes" ]
|
||||
then
|
||||
"$REL_DIR/elixir" \
|
||||
--hidden \
|
||||
--name "rand-$(relx_gen_id)-$NAME" \
|
||||
--cookie "$COOKIE" \
|
||||
--boot "$REL_DIR/start_clean" \
|
||||
--boot-var RELEASE_LIB "$ERTS_LIB_DIR" \
|
||||
--vm-args "$REL_DIR/remote.vm.args" \
|
||||
--erl "-start_epmd false -epmd_module ekka_epmd" \
|
||||
--rpc-eval "$NAME" "$@"
|
||||
else
|
||||
relx_nodetool "eval" "$@"
|
||||
fi
|
||||
;;
|
||||
eval-erl)
|
||||
assert_node_alive
|
||||
|
||||
shift
|
||||
relx_nodetool "eval" "$@"
|
||||
;;
|
||||
|
|
|
@ -49,7 +49,7 @@ done
|
|||
# Collect system info:
|
||||
{
|
||||
collect "$RUNNER_BIN_DIR"/emqx_ctl broker
|
||||
collect "$RUNNER_BIN_DIR"/emqx eval-erl "'emqx_node_dump:sys_info()'"
|
||||
collect "$RUNNER_BIN_DIR"/emqx eval "'emqx_node_dump:sys_info()'"
|
||||
|
||||
collect uname -a
|
||||
collect uptime
|
||||
|
@ -64,7 +64,7 @@ done
|
|||
|
||||
# Collect information about the configuration:
|
||||
{
|
||||
collect "$RUNNER_BIN_DIR"/emqx eval-erl "'emqx_node_dump:app_env_dump()'"
|
||||
collect "$RUNNER_BIN_DIR"/emqx eval "'emqx_node_dump:app_env_dump()'"
|
||||
} > "${CONF_DUMP}"
|
||||
|
||||
# Collect license info:
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Keeps `eval` command backward compatible with v4 by evaluating only Erlang expressions, even on Elixir node. For Elixir expressions, use `eval-ex` command.
|
Loading…
Reference in New Issue