aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_admin.erl
diff options
context:
space:
mode:
authorChristophe Romain <christophe.romain@process-one.net>2015-11-20 09:53:53 +0100
committerChristophe Romain <christophe.romain@process-one.net>2015-11-20 10:39:27 +0100
commit67a70b9107a051209a58ad332b23a0aaa424359c (patch)
tree1fab276e1f2d0ae3178c6ed268c05ac13d13f963 /src/ejabberd_admin.erl
parentset dependencies versions for 15.10 (diff)
Integrate join/leave cluster as ejabberd command
Diffstat (limited to 'src/ejabberd_admin.erl')
-rw-r--r--src/ejabberd_admin.erl31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/ejabberd_admin.erl b/src/ejabberd_admin.erl
index 2068f10c8..c51a27545 100644
--- a/src/ejabberd_admin.erl
+++ b/src/ejabberd_admin.erl
@@ -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,
@@ -374,6 +392,19 @@ reload_config() ->
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
%%%