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

fix: update mgmt bpapi version

DDDHuang 3 лет назад
Родитель
Сommit
07f8a93af3

+ 4 - 0
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,[]}
    ]},

+ 6 - 6
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;

+ 1 - 1
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])),

+ 1 - 1
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, #{})),

+ 46 - 1
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, []).