From 07f8a93af3c6dc140d86d5d82f6bd4311ac5d42c Mon Sep 17 00:00:00 2001 From: DDDHuang <44492639+DDDHuang@users.noreply.github.com> Date: Fri, 1 Jul 2022 16:35:18 +0800 Subject: [PATCH] fix: update mgmt bpapi version --- .../src/emqx_management.appup.src | 4 ++ apps/emqx_management/src/emqx_mgmt.erl | 12 ++--- .../src/emqx_mgmt_api_configs.erl | 2 +- .../src/emqx_mgmt_api_listeners.erl | 2 +- .../src/proto/emqx_management_proto_v2.erl | 47 ++++++++++++++++++- 5 files changed, 58 insertions(+), 9 deletions(-) diff --git a/apps/emqx_management/src/emqx_management.appup.src b/apps/emqx_management/src/emqx_management.appup.src index 743ef3c73..d56a03fb2 100644 --- a/apps/emqx_management/src/emqx_management.appup.src +++ b/apps/emqx_management/src/emqx_management.appup.src @@ -6,6 +6,8 @@ {add_module,emqx_management_proto_v2}, {load_module,emqx_mgmt_api_clients,brutal_purge,soft_purge,[]}, {load_module,emqx_mgmt_api_publish,brutal_purge,soft_purge,[]}, + {load_module,emqx_mgmt_api_listeners,brutal_purge,soft_purge,[]}, + {load_module,emqx_mgmt_api_configs,brutal_purge,soft_purge,[]}, {load_module,emqx_mgmt_util,brutal_purge,soft_purge,[]}, {load_module,emqx_mgmt,brutal_purge,soft_purge,[]} ]}, @@ -15,6 +17,8 @@ {delete_module,emqx_management_proto_v2}, {load_module,emqx_mgmt_api_clients,brutal_purge,soft_purge,[]}, {load_module,emqx_mgmt_api_publish,brutal_purge,soft_purge,[]}, + {load_module,emqx_mgmt_api_listeners,brutal_purge,soft_purge,[]}, + {load_module,emqx_mgmt_api_configs,brutal_purge,soft_purge,[]}, {load_module,emqx_mgmt_util,brutal_purge,soft_purge,[]}, {load_module,emqx_mgmt,brutal_purge,soft_purge,[]} ]}, diff --git a/apps/emqx_management/src/emqx_mgmt.erl b/apps/emqx_management/src/emqx_mgmt.erl index 4e5e7c27e..cdf3bf504 100644 --- a/apps/emqx_management/src/emqx_mgmt.erl +++ b/apps/emqx_management/src/emqx_mgmt.erl @@ -153,7 +153,7 @@ get_sys_memory() -> end. node_info(Node) -> - wrap_rpc(emqx_management_proto_v1:node_info(Node)). + wrap_rpc(emqx_management_proto_v2:node_info(Node)). stopped_node_info(Node) -> #{name => Node, node_status => 'Stopped'}. @@ -173,7 +173,7 @@ broker_info() -> Info#{node => node(), otp_release => otp_rel(), node_status => 'Running'}. broker_info(Node) -> - wrap_rpc(emqx_management_proto_v1:broker_info(Node)). + wrap_rpc(emqx_management_proto_v2:broker_info(Node)). %%-------------------------------------------------------------------- %% Metrics and Stats @@ -357,7 +357,7 @@ do_call_client(ClientId, Req) -> %% @private call_client(Node, ClientId, Req) -> - wrap_rpc(emqx_management_proto_v1:call_client(Node, ClientId, Req)). + wrap_rpc(emqx_management_proto_v2:call_client(Node, ClientId, Req)). %%-------------------------------------------------------------------- %% Subscriptions @@ -376,7 +376,7 @@ do_list_subscriptions() -> end. list_subscriptions(Node) -> - wrap_rpc(emqx_management_proto_v1:list_subscriptions(Node)). + wrap_rpc(emqx_management_proto_v2:list_subscriptions(Node)). list_subscriptions_via_topic(Topic, FormatFun) -> lists:append([ @@ -404,7 +404,7 @@ subscribe(ClientId, TopicTables) -> subscribe(mria_mnesia:running_nodes(), ClientId, TopicTables). subscribe([Node | Nodes], ClientId, TopicTables) -> - case wrap_rpc(emqx_management_proto_v1:subscribe(Node, ClientId, TopicTables)) of + case wrap_rpc(emqx_management_proto_v2:subscribe(Node, ClientId, TopicTables)) of {error, _} -> subscribe(Nodes, ClientId, TopicTables); {subscribe, Res} -> {subscribe, Res, Node} end; @@ -431,7 +431,7 @@ unsubscribe(ClientId, Topic) -> -spec unsubscribe([node()], emqx_types:clientid(), emqx_types:topic()) -> {unsubscribe, _} | {error, channel_not_found}. unsubscribe([Node | Nodes], ClientId, Topic) -> - case wrap_rpc(emqx_management_proto_v1:unsubscribe(Node, ClientId, Topic)) of + case wrap_rpc(emqx_management_proto_v2:unsubscribe(Node, ClientId, Topic)) of {error, _} -> unsubscribe(Nodes, ClientId, Topic); Re -> Re end; diff --git a/apps/emqx_management/src/emqx_mgmt_api_configs.erl b/apps/emqx_management/src/emqx_mgmt_api_configs.erl index dd8e173ce..0d3063383 100644 --- a/apps/emqx_management/src/emqx_mgmt_api_configs.erl +++ b/apps/emqx_management/src/emqx_mgmt_api_configs.erl @@ -304,7 +304,7 @@ configs(get, Params, _Req) -> Node = maps:get(node, Params, node()), case lists:member(Node, mria_mnesia:running_nodes()) andalso - emqx_management_proto_v1:get_full_config(Node) + emqx_management_proto_v2:get_full_config(Node) of false -> Message = list_to_binary(io_lib:format("Bad node ~p, reason not found", [Node])), diff --git a/apps/emqx_management/src/emqx_mgmt_api_listeners.erl b/apps/emqx_management/src/emqx_mgmt_api_listeners.erl index fc01764aa..35fcd3bca 100644 --- a/apps/emqx_management/src/emqx_mgmt_api_listeners.erl +++ b/apps/emqx_management/src/emqx_mgmt_api_listeners.erl @@ -445,7 +445,7 @@ list_listeners() -> [list_listeners(Node) || Node <- mria_mnesia:running_nodes()]. list_listeners(Node) -> - wrap_rpc(emqx_management_proto_v1:list_listeners(Node)). + wrap_rpc(emqx_management_proto_v2:list_listeners(Node)). listener_status_by_id(NodeL) -> Listeners = maps:to_list(listener_status_by_id(NodeL, #{})), diff --git a/apps/emqx_management/src/proto/emqx_management_proto_v2.erl b/apps/emqx_management/src/proto/emqx_management_proto_v2.erl index 6769f0365..34da390b5 100644 --- a/apps/emqx_management/src/proto/emqx_management_proto_v2.erl +++ b/apps/emqx_management/src/proto/emqx_management_proto_v2.erl @@ -21,7 +21,18 @@ -export([ introduced_in/0, - unsubscribe_batch/3 + node_info/1, + broker_info/1, + list_subscriptions/1, + + list_listeners/1, + subscribe/3, + unsubscribe/3, + unsubscribe_batch/3, + + call_client/3, + + get_full_config/1 ]). -include_lib("emqx/include/bpapi.hrl"). @@ -33,3 +44,37 @@ introduced_in() -> {unsubscribe, _} | {error, _} | {badrpc, _}. unsubscribe_batch(Node, ClientId, Topics) -> rpc:call(Node, emqx_mgmt, do_unsubscribe_batch, [ClientId, Topics]). + +-spec node_info(node()) -> map() | {badrpc, _}. +node_info(Node) -> + rpc:call(Node, emqx_mgmt, node_info, []). + +-spec broker_info(node()) -> map() | {badrpc, _}. +broker_info(Node) -> + rpc:call(Node, emqx_mgmt, broker_info, []). + +-spec list_subscriptions(node()) -> [map()] | {badrpc, _}. +list_subscriptions(Node) -> + rpc:call(Node, emqx_mgmt, do_list_subscriptions, []). + +-spec list_listeners(node()) -> map() | {badrpc, _}. +list_listeners(Node) -> + rpc:call(Node, emqx_mgmt_api_listeners, do_list_listeners, []). + +-spec subscribe(node(), emqx_types:clientid(), emqx_types:topic_filters()) -> + {subscribe, _} | {error, atom()} | {badrpc, _}. +subscribe(Node, ClientId, TopicTables) -> + rpc:call(Node, emqx_mgmt, do_subscribe, [ClientId, TopicTables]). + +-spec unsubscribe(node(), emqx_types:clientid(), emqx_types:topic()) -> + {unsubscribe, _} | {error, _} | {badrpc, _}. +unsubscribe(Node, ClientId, Topic) -> + rpc:call(Node, emqx_mgmt, do_unsubscribe, [ClientId, Topic]). + +-spec call_client(node(), emqx_types:clientid(), term()) -> term(). +call_client(Node, ClientId, Req) -> + rpc:call(Node, emqx_mgmt, do_call_client, [ClientId, Req]). + +-spec get_full_config(node()) -> map() | list() | {badrpc, _}. +get_full_config(Node) -> + rpc:call(Node, emqx_mgmt_api_configs, get_full_config, []).