mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-22 16:20:52 +01:00
Remove modules management from mod_configure
This commit is contained in:
parent
e1f3526466
commit
5eeb95c74f
@ -138,12 +138,6 @@ get_local_identity(Acc, _From, _To, Node, Lang) ->
|
|||||||
?INFO_IDENTITY(<<"ejabberd">>, <<"node">>, ENode, Lang);
|
?INFO_IDENTITY(<<"ejabberd">>, <<"node">>, ENode, Lang);
|
||||||
[<<"running nodes">>, _ENode, <<"DB">>] ->
|
[<<"running nodes">>, _ENode, <<"DB">>] ->
|
||||||
?INFO_COMMAND(?T("Database"), Lang);
|
?INFO_COMMAND(?T("Database"), Lang);
|
||||||
[<<"running nodes">>, _ENode, <<"modules">>,
|
|
||||||
<<"start">>] ->
|
|
||||||
?INFO_COMMAND(?T("Start Modules"), Lang);
|
|
||||||
[<<"running nodes">>, _ENode, <<"modules">>,
|
|
||||||
<<"stop">>] ->
|
|
||||||
?INFO_COMMAND(?T("Stop Modules"), Lang);
|
|
||||||
[<<"running nodes">>, _ENode, <<"backup">>,
|
[<<"running nodes">>, _ENode, <<"backup">>,
|
||||||
<<"backup">>] ->
|
<<"backup">>] ->
|
||||||
?INFO_COMMAND(?T("Backup"), Lang);
|
?INFO_COMMAND(?T("Backup"), Lang);
|
||||||
@ -230,10 +224,6 @@ get_local_features(Acc, From,
|
|||||||
?INFO_RESULT(Allow, [?NS_STATS], Lang);
|
?INFO_RESULT(Allow, [?NS_STATS], Lang);
|
||||||
[<<"running nodes">>, _ENode, <<"DB">>] ->
|
[<<"running nodes">>, _ENode, <<"DB">>] ->
|
||||||
?INFO_RESULT(Allow, [?NS_COMMANDS], Lang);
|
?INFO_RESULT(Allow, [?NS_COMMANDS], Lang);
|
||||||
[<<"running nodes">>, _ENode, <<"modules">>] ->
|
|
||||||
?INFO_RESULT(Allow, [], Lang);
|
|
||||||
[<<"running nodes">>, _ENode, <<"modules">>, _] ->
|
|
||||||
?INFO_RESULT(Allow, [?NS_COMMANDS], Lang);
|
|
||||||
[<<"running nodes">>, _ENode, <<"backup">>] ->
|
[<<"running nodes">>, _ENode, <<"backup">>] ->
|
||||||
?INFO_RESULT(Allow, [], Lang);
|
?INFO_RESULT(Allow, [], Lang);
|
||||||
[<<"running nodes">>, _ENode, <<"backup">>, _] ->
|
[<<"running nodes">>, _ENode, <<"backup">>, _] ->
|
||||||
@ -458,10 +448,6 @@ get_local_items(Acc, From, #jid{lserver = LServer} = To,
|
|||||||
?ITEMS_RESULT(Allow, LNode, {error, Err});
|
?ITEMS_RESULT(Allow, LNode, {error, Err});
|
||||||
[<<"running nodes">>, _ENode, <<"DB">>] ->
|
[<<"running nodes">>, _ENode, <<"DB">>] ->
|
||||||
?ITEMS_RESULT(Allow, LNode, {error, Err});
|
?ITEMS_RESULT(Allow, LNode, {error, Err});
|
||||||
[<<"running nodes">>, _ENode, <<"modules">>] ->
|
|
||||||
?ITEMS_RESULT(Allow, LNode, {error, Err});
|
|
||||||
[<<"running nodes">>, _ENode, <<"modules">>, _] ->
|
|
||||||
?ITEMS_RESULT(Allow, LNode, {error, Err});
|
|
||||||
[<<"running nodes">>, _ENode, <<"backup">>] ->
|
[<<"running nodes">>, _ENode, <<"backup">>] ->
|
||||||
?ITEMS_RESULT(Allow, LNode, {error, Err});
|
?ITEMS_RESULT(Allow, LNode, {error, Err});
|
||||||
[<<"running nodes">>, _ENode, <<"backup">>, _] ->
|
[<<"running nodes">>, _ENode, <<"backup">>, _] ->
|
||||||
@ -577,8 +563,6 @@ get_local_items({global, _Host},
|
|||||||
{result,
|
{result,
|
||||||
[?NODE(?T("Database"),
|
[?NODE(?T("Database"),
|
||||||
<<"running nodes/", ENode/binary, "/DB">>),
|
<<"running nodes/", ENode/binary, "/DB">>),
|
||||||
?NODE(?T("Modules"),
|
|
||||||
<<"running nodes/", ENode/binary, "/modules">>),
|
|
||||||
?NODE(?T("Backup Management"),
|
?NODE(?T("Backup Management"),
|
||||||
<<"running nodes/", ENode/binary, "/backup">>),
|
<<"running nodes/", ENode/binary, "/backup">>),
|
||||||
?NODE(?T("Import Users From jabberd14 Spool Files"),
|
?NODE(?T("Import Users From jabberd14 Spool Files"),
|
||||||
@ -587,27 +571,10 @@ get_local_items({global, _Host},
|
|||||||
<<"running nodes/", ENode/binary, "/restart">>),
|
<<"running nodes/", ENode/binary, "/restart">>),
|
||||||
?NODE(?T("Shut Down Service"),
|
?NODE(?T("Shut Down Service"),
|
||||||
<<"running nodes/", ENode/binary, "/shutdown">>)]};
|
<<"running nodes/", ENode/binary, "/shutdown">>)]};
|
||||||
get_local_items({vhost, _Host},
|
|
||||||
[<<"running nodes">>, ENode], Server, Lang) ->
|
|
||||||
{result,
|
|
||||||
[?NODE(?T("Modules"),
|
|
||||||
<<"running nodes/", ENode/binary, "/modules">>)]};
|
|
||||||
get_local_items(_Host,
|
get_local_items(_Host,
|
||||||
[<<"running nodes">>, _ENode, <<"DB">>], _Server,
|
[<<"running nodes">>, _ENode, <<"DB">>], _Server,
|
||||||
_Lang) ->
|
_Lang) ->
|
||||||
{result, []};
|
{result, []};
|
||||||
get_local_items(_Host,
|
|
||||||
[<<"running nodes">>, ENode, <<"modules">>], Server,
|
|
||||||
Lang) ->
|
|
||||||
{result,
|
|
||||||
[?NODE(?T("Start Modules"),
|
|
||||||
<<"running nodes/", ENode/binary, "/modules/start">>),
|
|
||||||
?NODE(?T("Stop Modules"),
|
|
||||||
<<"running nodes/", ENode/binary, "/modules/stop">>)]};
|
|
||||||
get_local_items(_Host,
|
|
||||||
[<<"running nodes">>, _ENode, <<"modules">>, _],
|
|
||||||
_Server, _Lang) ->
|
|
||||||
{result, []};
|
|
||||||
get_local_items(_Host,
|
get_local_items(_Host,
|
||||||
[<<"running nodes">>, ENode, <<"backup">>], Server,
|
[<<"running nodes">>, ENode, <<"backup">>], Server,
|
||||||
Lang) ->
|
Lang) ->
|
||||||
@ -758,8 +725,6 @@ adhoc_local_commands(Acc, From,
|
|||||||
case LNode of
|
case LNode of
|
||||||
[<<"running nodes">>, _ENode, <<"DB">>] ->
|
[<<"running nodes">>, _ENode, <<"DB">>] ->
|
||||||
?COMMANDS_RESULT(global, From, To, Request, Lang);
|
?COMMANDS_RESULT(global, From, To, Request, Lang);
|
||||||
[<<"running nodes">>, _ENode, <<"modules">>, _] ->
|
|
||||||
?COMMANDS_RESULT(LServer, From, To, Request, Lang);
|
|
||||||
[<<"running nodes">>, _ENode, <<"backup">>, _] ->
|
[<<"running nodes">>, _ENode, <<"backup">>, _] ->
|
||||||
?COMMANDS_RESULT(global, From, To, Request, Lang);
|
?COMMANDS_RESULT(global, From, To, Request, Lang);
|
||||||
[<<"running nodes">>, _ENode, <<"import">>, _] ->
|
[<<"running nodes">>, _ENode, <<"import">>, _] ->
|
||||||
@ -884,46 +849,6 @@ get_form(_Host, [<<"running nodes">>, ENode, <<"DB">>],
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
get_form(Host,
|
|
||||||
[<<"running nodes">>, ENode, <<"modules">>, <<"stop">>],
|
|
||||||
Lang) ->
|
|
||||||
case search_running_node(ENode) of
|
|
||||||
false ->
|
|
||||||
Txt = ?T("No running node found"),
|
|
||||||
{error, xmpp:err_item_not_found(Txt, Lang)};
|
|
||||||
Node ->
|
|
||||||
case ejabberd_cluster:call(Node, gen_mod, loaded_modules, [Host]) of
|
|
||||||
{badrpc, Reason} ->
|
|
||||||
?ERROR_MSG("RPC call gen_mod:loaded_modules(~s) on node "
|
|
||||||
"~s failed: ~p", [Host, Node, Reason]),
|
|
||||||
{error, xmpp:err_internal_server_error()};
|
|
||||||
Modules ->
|
|
||||||
SModules = lists:sort(Modules),
|
|
||||||
Title = <<(tr(Lang, ?T("Stop Modules at ")))/binary,
|
|
||||||
ENode/binary>>,
|
|
||||||
Instr = tr(Lang, ?T("Choose modules to stop")),
|
|
||||||
Fs = lists:map(fun(M) ->
|
|
||||||
S = misc:atom_to_binary(M),
|
|
||||||
?XFIELD(boolean, S, S, <<"0">>)
|
|
||||||
end, SModules),
|
|
||||||
{result, #xdata{title = Title,
|
|
||||||
type = form,
|
|
||||||
instructions = [Instr],
|
|
||||||
fields = [?HFIELD()|Fs]}}
|
|
||||||
end
|
|
||||||
end;
|
|
||||||
get_form(_Host,
|
|
||||||
[<<"running nodes">>, ENode, <<"modules">>,
|
|
||||||
<<"start">>],
|
|
||||||
Lang) ->
|
|
||||||
{result,
|
|
||||||
#xdata{title = <<(tr(Lang, ?T("Start Modules at ")))/binary, ENode/binary>>,
|
|
||||||
type = form,
|
|
||||||
instructions = [tr(Lang, ?T("Enter list of {Module, [Options]}"))],
|
|
||||||
fields = [?HFIELD(),
|
|
||||||
?XFIELD('text-multi',
|
|
||||||
?T("List of modules to start"), <<"modules">>,
|
|
||||||
<<"[].">>)]}};
|
|
||||||
get_form(_Host,
|
get_form(_Host,
|
||||||
[<<"running nodes">>, ENode, <<"backup">>,
|
[<<"running nodes">>, ENode, <<"backup">>,
|
||||||
<<"backup">>],
|
<<"backup">>],
|
||||||
@ -1196,65 +1121,6 @@ set_form(_From, _Host,
|
|||||||
end, XData#xdata.fields),
|
end, XData#xdata.fields),
|
||||||
{result, undefined}
|
{result, undefined}
|
||||||
end;
|
end;
|
||||||
set_form(_From, Host,
|
|
||||||
[<<"running nodes">>, ENode, <<"modules">>, <<"stop">>],
|
|
||||||
Lang, XData) ->
|
|
||||||
case search_running_node(ENode) of
|
|
||||||
false ->
|
|
||||||
Txt = ?T("No running node found"),
|
|
||||||
{error, xmpp:err_item_not_found(Txt, Lang)};
|
|
||||||
Node ->
|
|
||||||
lists:foreach(
|
|
||||||
fun(#xdata_field{var = Var, values = Vals}) ->
|
|
||||||
case Vals of
|
|
||||||
[<<"1">>] ->
|
|
||||||
Module = misc:binary_to_atom(Var),
|
|
||||||
ejabberd_cluster:call(Node, gen_mod, stop_module,
|
|
||||||
[Host, Module]);
|
|
||||||
_ -> ok
|
|
||||||
end
|
|
||||||
end, XData#xdata.fields),
|
|
||||||
{result, undefined}
|
|
||||||
end;
|
|
||||||
set_form(_From, Host,
|
|
||||||
[<<"running nodes">>, ENode, <<"modules">>,
|
|
||||||
<<"start">>],
|
|
||||||
Lang, XData) ->
|
|
||||||
case search_running_node(ENode) of
|
|
||||||
false ->
|
|
||||||
Txt = ?T("No running node found"),
|
|
||||||
{error, xmpp:err_item_not_found(Txt, Lang)};
|
|
||||||
Node ->
|
|
||||||
case xmpp_util:get_xdata_values(<<"modules">>, XData) of
|
|
||||||
[] ->
|
|
||||||
Txt = ?T("No 'modules' found in data form"),
|
|
||||||
{error, xmpp:err_bad_request(Txt, Lang)};
|
|
||||||
Strings ->
|
|
||||||
String = lists:foldl(fun (S, Res) ->
|
|
||||||
<<Res/binary, S/binary, "\n">>
|
|
||||||
end, <<"">>, Strings),
|
|
||||||
case erl_scan:string(binary_to_list(String)) of
|
|
||||||
{ok, Tokens, _} ->
|
|
||||||
case erl_parse:parse_term(Tokens) of
|
|
||||||
{ok, Modules} ->
|
|
||||||
lists:foreach(
|
|
||||||
fun ({Module, Args}) ->
|
|
||||||
ejabberd_cluster:call(
|
|
||||||
Node, gen_mod, start_module,
|
|
||||||
[Host, Module, Args])
|
|
||||||
end,
|
|
||||||
Modules),
|
|
||||||
{result, undefined};
|
|
||||||
_ ->
|
|
||||||
Txt = ?T("Parse failed"),
|
|
||||||
{error, xmpp:err_bad_request(Txt, Lang)}
|
|
||||||
end;
|
|
||||||
_ ->
|
|
||||||
Txt = ?T("Scan failed"),
|
|
||||||
{error, xmpp:err_bad_request(Txt, Lang)}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end;
|
|
||||||
set_form(_From, _Host,
|
set_form(_From, _Host,
|
||||||
[<<"running nodes">>, ENode, <<"backup">>,
|
[<<"running nodes">>, ENode, <<"backup">>,
|
||||||
<<"backup">>],
|
<<"backup">>],
|
||||||
|
Loading…
Reference in New Issue
Block a user