From b53bdd1450093c2f9dc301a8ed945459f3d4e058 Mon Sep 17 00:00:00 2001 From: zhanghongtong Date: Fri, 26 Feb 2021 09:34:57 +0800 Subject: [PATCH] chore(emqx_management): remove emqx_modules dependency on emqx_management --- .../src/emqx_mgmt_data_backup.erl | 22 ++++++++++--------- lib-ce/emqx_modules/src/emqx_modules_api.erl | 6 ++--- lib-ce/emqx_modules/src/emqx_modules_app.erl | 1 + 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/apps/emqx_management/src/emqx_mgmt_data_backup.erl b/apps/emqx_management/src/emqx_mgmt_data_backup.erl index ef8987603..0feb7b7f3 100644 --- a/apps/emqx_management/src/emqx_mgmt_data_backup.erl +++ b/apps/emqx_management/src/emqx_mgmt_data_backup.erl @@ -28,8 +28,6 @@ , import_schemas/1 , import_confs/2 ]). --else. --export([ import_resources_and_rules/3 ]). -endif. -export([ export_rules/0 @@ -39,6 +37,7 @@ , export_users/0 , export_auth_mnesia/0 , export_acl_mnesia/0 + , import_resources_and_rules/3 , import_rules/1 , import_resources/1 , import_blacklist/1 @@ -245,6 +244,7 @@ import_resources_and_rules(Resources, Rules, FromVersion) NActions = apply_new_config(Actions, Configs), import_rule(Rule#{<<"actions">> := NActions}) end, Rules); + import_resources_and_rules(Resources, Rules, _FromVersion) -> import_resources(Resources), import_rules(Rules). @@ -278,7 +278,10 @@ action_to_prop_list({action_instance, ActionInstId, Name, FallbackActions, Args} {name, Name}, {fallbacks, actions_to_prop_list(FallbackActions)}, {args, Args}]. - +-else. +import_resources_and_rules(Resources, Rules, _FromVersion) -> + import_resources(Resources), + import_rules(Rules). -endif. import_blacklist(Blacklist) -> @@ -516,23 +519,22 @@ import(Filename) -> end. do_import_data(Data, Version) -> + do_import_extra_data(Data, Version), + import_resources_and_rules(maps:get(<<"resources">>, Data, []), maps:get(<<"rules">>, Data, []), Version), import_blacklist(maps:get(<<"blacklist">>, Data, [])), import_applications(maps:get(<<"apps">>, Data, [])), import_users(maps:get(<<"users">>, Data, [])), import_auth_clientid(maps:get(<<"auth_clientid">>, Data, [])), import_auth_username(maps:get(<<"auth_username">>, Data, [])), import_auth_mnesia(maps:get(<<"auth_mnesia">>, Data, []), Version), - import_acl_mnesia(maps:get(<<"acl_mnesia">>, Data, []), Version), - do_import_extra_data(Data, Version). + import_acl_mnesia(maps:get(<<"acl_mnesia">>, Data, []), Version). -ifdef(EMQX_ENTERPRISE). do_import_extra_data(Data, Version) -> import_confs(maps:get(<<"configs">>, Data, []), maps:get(<<"listeners_state">>, Data, [])), - import_resources(maps:get(<<"resources">>, Data, [])), - import_rules(maps:get(<<"rules">>, Data, [])), import_modules(maps:get(<<"modules">>, Data, [])), - import_schemas(maps:get(<<"schemas">>, Data, [])). + import_schemas(maps:get(<<"schemas">>, Data, [])), + ok. -else. -do_import_extra_data(Data, Version) -> - import_resources_and_rules(maps:get(<<"resources">>, Data, []), maps:get(<<"rules">>, Data, []), Version). +do_import_extra_data(_Data, _Version) -> ok. -endif. diff --git a/lib-ce/emqx_modules/src/emqx_modules_api.erl b/lib-ce/emqx_modules/src/emqx_modules_api.erl index 6b8a67406..5f4641ade 100644 --- a/lib-ce/emqx_modules/src/emqx_modules_api.erl +++ b/lib-ce/emqx_modules/src/emqx_modules_api.erl @@ -86,7 +86,7 @@ load(#{node := Node, module := Module}, _Params) -> return(do_load_module(Node, Module)); load(#{module := Module}, _Params) -> - Results = [do_load_module(Node, Module) || {Node, _Info} <- emqx_mgmt:list_nodes()], + Results = [do_load_module(Node, Module) || Node <- ekka_mnesia:running_nodes()], case lists:filter(fun(Item) -> Item =/= ok end, Results) of [] -> return(ok); @@ -98,7 +98,7 @@ unload(#{node := Node, module := Module}, _Params) -> return(do_unload_module(Node, Module)); unload(#{module := Module}, _Params) -> - Results = [do_unload_module(Node, Module) || {Node, _Info} <- emqx_mgmt:list_nodes()], + Results = [do_unload_module(Node, Module) || Node <- ekka_mnesia:running_nodes()], case lists:filter(fun(Item) -> Item =/= ok end, Results) of [] -> return(ok); @@ -113,7 +113,7 @@ reload(#{node := Node, module := Module}, _Params) -> end; reload(#{module := Module}, _Params) -> - Results = [reload_module(Node, Module) || {Node, _Info} <- emqx_mgmt:list_nodes()], + Results = [reload_module(Node, Module) || Node <- ekka_mnesia:running_nodes()], case lists:filter(fun(Item) -> Item =/= ok end, Results) of [] -> return(ok); diff --git a/lib-ce/emqx_modules/src/emqx_modules_app.erl b/lib-ce/emqx_modules/src/emqx_modules_app.erl index 34ff51267..6d82177d4 100644 --- a/lib-ce/emqx_modules/src/emqx_modules_app.erl +++ b/lib-ce/emqx_modules/src/emqx_modules_app.erl @@ -34,4 +34,5 @@ start(_Type, _Args) -> {ok, Pid}. stop(_State) -> + emqx_ctl:unregister_command(modules), emqx_modules:unload().