add broker, bridges, listeners commands. fix issue #63
This commit is contained in:
parent
c52857f398
commit
31c8ea3b73
|
@ -31,6 +31,7 @@
|
||||||
-behavior(supervisor).
|
-behavior(supervisor).
|
||||||
|
|
||||||
-export([start_link/0,
|
-export([start_link/0,
|
||||||
|
bridges/0,
|
||||||
start_bridge/2, start_bridge/3,
|
start_bridge/2, start_bridge/3,
|
||||||
stop_bridge/2]).
|
stop_bridge/2]).
|
||||||
|
|
||||||
|
@ -49,6 +50,11 @@
|
||||||
start_link() ->
|
start_link() ->
|
||||||
supervisor:start_link({local, ?MODULE}, ?MODULE, []).
|
supervisor:start_link({local, ?MODULE}, ?MODULE, []).
|
||||||
|
|
||||||
|
-spec bridges() -> [{tuple(), pid()}].
|
||||||
|
bridges() ->
|
||||||
|
[{{Node, SubTopic}, Pid} || {{bridge, Node, SubTopic}, Pid, worker, _}
|
||||||
|
<- supervisor:which_children(?MODULE)].
|
||||||
|
|
||||||
%%------------------------------------------------------------------------------
|
%%------------------------------------------------------------------------------
|
||||||
%% @doc
|
%% @doc
|
||||||
%% Start a bridge.
|
%% Start a bridge.
|
||||||
|
|
|
@ -36,16 +36,11 @@
|
||||||
-define(PRINT(Format, Args),
|
-define(PRINT(Format, Args),
|
||||||
io:format(Format, Args)).
|
io:format(Format, Args)).
|
||||||
|
|
||||||
-export([status/1,
|
-export([status/1, cluster/1,
|
||||||
cluster/1,
|
listeners/1,
|
||||||
useradd/1,
|
useradd/1, userdel/1,
|
||||||
userdel/1]).
|
broker/1,
|
||||||
|
bridges/1, start_bridge/1, stop_bridge/1]).
|
||||||
%TODO: add comment
|
|
||||||
% bridge
|
|
||||||
% metrics
|
|
||||||
% broker
|
|
||||||
% sockets
|
|
||||||
|
|
||||||
status([]) ->
|
status([]) ->
|
||||||
{InternalStatus, _ProvidedStatus} = init:get_status(),
|
{InternalStatus, _ProvidedStatus} = init:get_status(),
|
||||||
|
@ -84,6 +79,41 @@ useradd([Username, Password]) ->
|
||||||
userdel([Username]) ->
|
userdel([Username]) ->
|
||||||
?PRINT("~p", [emqttd_auth:delete(list_to_binary(Username))]).
|
?PRINT("~p", [emqttd_auth:delete(list_to_binary(Username))]).
|
||||||
|
|
||||||
|
broker([]) ->
|
||||||
|
Funs = [sysdescr, version, uptime, datetime],
|
||||||
|
[?PRINT("~s: ~s~n", [Fun, emqttd_broker:Fun()]) || Fun <- Funs];
|
||||||
|
|
||||||
|
broker(["stats"]) ->
|
||||||
|
[?PRINT("~s: ~p~n", [Stat, Val]) || {Stat, Val} <- emqttd_broker:getstats()];
|
||||||
|
|
||||||
|
broker(["metrics"]) ->
|
||||||
|
[?PRINT("~s: ~p~n", [Metric, Val]) || {Metric, Val} <- emqttd_metrics:all()].
|
||||||
|
|
||||||
|
listeners([]) ->
|
||||||
|
lists:foreach(fun({{Protocol, Port}, Pid}) ->
|
||||||
|
?PRINT("listener ~s:~p~n", [Protocol, Port]),
|
||||||
|
?PRINT(" acceptor_pool: ~p~n", [esockd:get_acceptor_pool(Pid)]),
|
||||||
|
?PRINT(" max_clients: ~p~n", [esockd:get_max_clients(Pid)]),
|
||||||
|
?PRINT(" current_clients: ~p~n", [esockd:get_current_clients(Pid)])
|
||||||
|
end, esockd:listeners()).
|
||||||
|
|
||||||
|
bridges([]) ->
|
||||||
|
lists:foreach(fun({{Node, Topic}, _Pid}) ->
|
||||||
|
?PRINT("bridge: ~s ~s~n", [Node, Topic])
|
||||||
|
end, emqttd_bridge_sup:bridges()).
|
||||||
|
|
||||||
|
start_bridge([SNode, Topic]) ->
|
||||||
|
case emqttd_bridge_sup:start_bridge(list_to_atom(SNode), list_to_binary(Topic)) of
|
||||||
|
{ok, _} -> ?PRINT_MSG("bridge is started.~n");
|
||||||
|
{error, Error} -> ?PRINT("error: ~p~n", [Error])
|
||||||
|
end.
|
||||||
|
|
||||||
|
stop_bridge([SNode, Topic]) ->
|
||||||
|
case emqttd_bridge_sup:stop_bridge(list_to_atom(SNode), list_to_binary(Topic)) of
|
||||||
|
ok -> ?PRINT_MSG("bridge is stopped.~n");
|
||||||
|
{error, Error} -> ?PRINT("error: ~p~n", [Error])
|
||||||
|
end.
|
||||||
|
|
||||||
node_name(SNode) ->
|
node_name(SNode) ->
|
||||||
SNode1 =
|
SNode1 =
|
||||||
case string:tokens(SNode, "@") of
|
case string:tokens(SNode, "@") of
|
||||||
|
@ -101,3 +131,4 @@ node_name(SNode) ->
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
list_to_atom(SNode1).
|
list_to_atom(SNode1).
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue