1
0
Fork 0
mirror of https://github.com/processone/ejabberd synced 2025-10-05 10:39:29 +02:00

Integrate join/leave cluster as ejabberd command

This commit is contained in:
Christophe Romain 2015-11-20 09:53:53 +01:00
parent a497cdff5e
commit 67a70b9107
6 changed files with 82 additions and 276 deletions

View file

@ -33,6 +33,8 @@
stop_kindly/2, send_service_message_all_mucs/2,
registered_vhosts/0,
reload_config/0,
%% Cluster
join_cluster/1, leave_cluster/1, list_cluster/0,
%% Erlang
update_list/0, update/1,
%% Accounts
@ -146,6 +148,22 @@ commands() ->
args = [],
result = {res, rescode}},
#ejabberd_commands{name = join_cluster, tags = [cluster],
desc = "Join this node into the cluster handled by Node",
module = ?MODULE, function = join_cluster,
args = [{node, binary}],
result = {res, rescode}},
#ejabberd_commands{name = leave_cluster, tags = [cluster],
desc = "Remove node handled by Node from the cluster",
module = ?MODULE, function = leave_cluster,
args = [{node, binary}],
result = {res, rescode}},
#ejabberd_commands{name = list_cluster, tags = [cluster],
desc = "List nodes that are part of the cluster handled by Node",
module = ?MODULE, function = list_cluster,
args = [],
result = {nodes, {list, {node, atom}}}},
#ejabberd_commands{name = import_file, tags = [mnesia],
desc = "Import user data from jabberd14 spool file",
module = ?MODULE, function = import_file,
@ -373,6 +391,19 @@ reload_config() ->
acl:start(),
shaper:start().
%%%
%%% Cluster management
%%%
join_cluster(NodeBin) ->
ejabberd_cluster:join(list_to_atom(binary_to_list(NodeBin))).
leave_cluster(NodeBin) ->
ejabberd_cluster:leave(list_to_atom(binary_to_list(NodeBin))).
list_cluster() ->
ejabberd_cluster:get_nodes().
%%%
%%% Migration management
%%%