Browse Source

fix: delete plugin from configure when uninstall

Zhongwen Deng 3 years atrás
parent
commit
35d066e3d5

+ 1 - 1
apps/emqx_management/src/emqx_mgmt_api_plugins.erl

@@ -421,7 +421,7 @@ delete_package(Name) ->
     case emqx_plugins:ensure_stopped(Name) of
         ok ->
             _ = emqx_plugins:ensure_disabled(Name),
-            _ = emqx_plugins:purge(Name),
+            _ = emqx_plugins:ensure_uninstalled(Name),
             _ = emqx_plugins:delete_package(Name);
         Error ->
             Error

+ 8 - 1
apps/emqx_plugins/src/emqx_plugins.erl

@@ -127,9 +127,16 @@ ensure_uninstalled(NameVsn) ->
                 hint => "disable_the_plugin_first"
             }};
         _ ->
-            purge(NameVsn)
+            purge(NameVsn),
+            ensure_delete(NameVsn)
     end.
 
+ensure_delete(NameVsn0) ->
+    NameVsn = bin(NameVsn0),
+    List = configured(),
+    put_configured(lists:filter(fun(#{name_vsn := N1}) -> bin(N1) =/= NameVsn end, List)),
+    ok.
+
 %% @doc Ensure a plugin is enabled to the end of the plugins list.
 -spec ensure_enabled(name_vsn()) -> ok | {error, any()}.
 ensure_enabled(NameVsn) ->