aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ejabberd_admin.erl18
-rw-r--r--src/ejabberd_ctl.erl3
2 files changed, 21 insertions, 0 deletions
diff --git a/src/ejabberd_admin.erl b/src/ejabberd_admin.erl
index 82c35e40e..d044f1270 100644
--- a/src/ejabberd_admin.erl
+++ b/src/ejabberd_admin.erl
@@ -50,6 +50,7 @@
set_master/1,
backup_mnesia/1, restore_mnesia/1,
dump_mnesia/1, dump_table/2, load_mnesia/1,
+ mnesia_info/0, mnesia_table_info/1,
install_fallback_mnesia/1,
dump_to_textfile/1, dump_to_textfile/2,
mnesia_change_nodename/4,
@@ -357,6 +358,16 @@ get_commands_spec() ->
args_desc = ["Full path to the text file"],
args_example = ["/var/lib/ejabberd/database.txt"],
args = [{file, string}], result = {res, restuple}},
+ #ejabberd_commands{name = mnesia_info, tags = [mnesia],
+ desc = "Dump info on global Mnesia state",
+ module = ?MODULE, function = mnesia_info,
+ args = [], result = {res, string}},
+ #ejabberd_commands{name = mnesia_table_info, tags = [mnesia],
+ desc = "Dump info on Mnesia table state",
+ module = ?MODULE, function = mnesia_table_info,
+ args_desc = ["Mnesia table name"],
+ args_example = ["roster"],
+ args = [{table, string}], result = {res, string}},
#ejabberd_commands{name = install_fallback, tags = [mnesia],
desc = "Install the database from a fallback file",
module = ?MODULE, function = install_fallback_mnesia,
@@ -716,6 +727,13 @@ load_mnesia(Path) ->
{cannot_load, String}
end.
+mnesia_info() ->
+ lists:flatten(io_lib:format("~p", [mnesia:system_info(all)])).
+
+mnesia_table_info(Table) ->
+ ATable = list_to_atom(Table),
+ lists:flatten(io_lib:format("~p", [mnesia:table_info(ATable, all)])).
+
install_fallback_mnesia(Path) ->
case mnesia:install_fallback(Path) of
ok ->
diff --git a/src/ejabberd_ctl.erl b/src/ejabberd_ctl.erl
index 9cc4f83c0..f4a898c15 100644
--- a/src/ejabberd_ctl.erl
+++ b/src/ejabberd_ctl.erl
@@ -190,6 +190,9 @@ process(["restart"], _Version) ->
init:restart(),
?STATUS_SUCCESS;
+%% TODO: Mnesia operations should not be hardcoded in ejabberd_ctl module.
+%% For now, I leave them there to avoid breaking those commands for people that
+%% may be using it (as format of response is going to change).
process(["mnesia"], _Version) ->
print("~p~n", [mnesia:system_info(all)]),
?STATUS_SUCCESS;