From 941440800bacf06e4fca33739375614ce079b0d5 Mon Sep 17 00:00:00 2001 From: DDDHuang <44492639+DDDHuang@users.noreply.github.com> Date: Wed, 13 Jul 2022 15:22:13 +0800 Subject: [PATCH] fix(cli): subscriptions with sub options, qos rh rap nl; admins response data format --- .../emqx_dashboard/src/emqx_dashboard.app.src | 2 +- .../emqx_dashboard/src/emqx_dashboard_cli.erl | 24 +++++++++++++++---- .../src/emqx_management.app.src | 2 +- apps/emqx_management/src/emqx_mgmt_cli.erl | 7 +++++- 4 files changed, 27 insertions(+), 8 deletions(-) diff --git a/apps/emqx_dashboard/src/emqx_dashboard.app.src b/apps/emqx_dashboard/src/emqx_dashboard.app.src index c694ab9f8..c3b7b4f13 100644 --- a/apps/emqx_dashboard/src/emqx_dashboard.app.src +++ b/apps/emqx_dashboard/src/emqx_dashboard.app.src @@ -2,7 +2,7 @@ {application, emqx_dashboard, [ {description, "EMQX Web Dashboard"}, % strict semver, bump manually! - {vsn, "5.0.2"}, + {vsn, "5.0.3"}, {modules, []}, {registered, [emqx_dashboard_sup]}, {applications, [kernel, stdlib, mnesia, minirest, emqx]}, diff --git a/apps/emqx_dashboard/src/emqx_dashboard_cli.erl b/apps/emqx_dashboard/src/emqx_dashboard_cli.erl index 677121d93..6f99b761b 100644 --- a/apps/emqx_dashboard/src/emqx_dashboard_cli.erl +++ b/apps/emqx_dashboard/src/emqx_dashboard_cli.erl @@ -32,14 +32,22 @@ admins(["add", Username, Password, Desc]) -> {ok, _} -> emqx_ctl:print("ok~n"); {error, Reason} -> - emqx_ctl:print("Error: ~p~n", [Reason]) + print_error(Reason) end; admins(["passwd", Username, Password]) -> - Status = emqx_dashboard_admin:change_password(bin(Username), bin(Password)), - emqx_ctl:print("~p~n", [Status]); + case emqx_dashboard_admin:change_password(bin(Username), bin(Password)) of + {ok, _} -> + emqx_ctl:print("ok~n"); + {error, Reason} -> + print_error(Reason) + end; admins(["del", Username]) -> - Status = emqx_dashboard_admin:remove_user(bin(Username)), - emqx_ctl:print("~p~n", [Status]); + case emqx_dashboard_admin:remove_user(bin(Username)) of + {ok, _} -> + emqx_ctl:print("ok~n"); + {error, Reason} -> + print_error(Reason) + end; admins(_) -> emqx_ctl:usage( [ @@ -53,3 +61,9 @@ unload() -> emqx_ctl:unregister_command(admins). bin(S) -> iolist_to_binary(S). + +print_error(Reason) when is_binary(Reason) -> + emqx_ctl:print("Error: ~s~n", [Reason]). +%% Maybe has more types of error, but there is only binary now. So close it for dialyzer. +% print_error(Reason) -> +% emqx_ctl:print("Error: ~p~n", [Reason]). diff --git a/apps/emqx_management/src/emqx_management.app.src b/apps/emqx_management/src/emqx_management.app.src index 1cc0a477b..e5b769b6f 100644 --- a/apps/emqx_management/src/emqx_management.app.src +++ b/apps/emqx_management/src/emqx_management.app.src @@ -2,7 +2,7 @@ {application, emqx_management, [ {description, "EMQX Management API and CLI"}, % strict semver, bump manually! - {vsn, "5.0.1"}, + {vsn, "5.0.2"}, {modules, []}, {registered, [emqx_management_sup]}, {applications, [kernel, stdlib, emqx_plugins, minirest, emqx]}, diff --git a/apps/emqx_management/src/emqx_mgmt_cli.erl b/apps/emqx_management/src/emqx_mgmt_cli.erl index 0f60317fa..e6730a18c 100644 --- a/apps/emqx_management/src/emqx_mgmt_cli.erl +++ b/apps/emqx_management/src/emqx_mgmt_cli.erl @@ -780,7 +780,12 @@ print({emqx_topic, #route{topic = Topic, dest = {_, Node}}}) -> print({emqx_topic, #route{topic = Topic, dest = Node}}) -> emqx_ctl:print("~ts -> ~ts~n", [Topic, Node]); print({emqx_suboption, {{Pid, Topic}, Options}}) when is_pid(Pid) -> - emqx_ctl:print("~ts -> ~ts~n", [maps:get(subid, Options), Topic]). + SubId = maps:get(subid, Options), + QoS = maps:get(qos, Options, 0), + NL = maps:get(nl, Options, 0), + RH = maps:get(rh, Options, 0), + RAP = maps:get(rap, Options, 0), + emqx_ctl:print("~ts -> topic:~ts qos:~p nl:~p rh:~p rap:~p~n", [SubId, Topic, QoS, NL, RH, RAP]). format(_, undefined) -> undefined;