diff options
author | Christophe Romain <christophe.romain@process-one.net> | 2015-11-20 09:53:53 +0100 |
---|---|---|
committer | Christophe Romain <christophe.romain@process-one.net> | 2015-11-20 10:39:27 +0100 |
commit | 67a70b9107a051209a58ad332b23a0aaa424359c (patch) | |
tree | 1fab276e1f2d0ae3178c6ed268c05ac13d13f963 /src/ejabberd_admin.erl | |
parent | set 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.erl | 31 |
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 %%% |