Просмотр исходного кода

fix(event_message): update config in cluster

DDDHuang 4 лет назад
Родитель
Сommit
f0330d9334

+ 1 - 1
apps/emqx_modules/src/emqx_delayed_api.erl

@@ -240,7 +240,7 @@ update_config_(Config) ->
             {200, NewDelayed};
         {error, Reason} ->
             Message = list_to_binary(
-                          io_lib:format("Update delayed message config failed ~p", [Reason])),
+                          io_lib:format("Update config failed ~p", [Reason])),
             {500, ?INTERNAL_ERROR, Message}
     end.
 

+ 9 - 2
apps/emqx_modules/src/emqx_event_message.erl

@@ -44,8 +44,15 @@ list() ->
 
 update(Params) ->
     disable(),
-    {ok, _} = emqx:update_config([event_message], Params),
-    enable().
+    case emqx_conf:update([event_message],
+                        Params,
+                        #{rawconf_with_defaults => true, override_to => cluster}) of
+        {ok, #{config := NewEventMessage}} ->
+            enable(),
+            {ok, NewEventMessage};
+        {error, Reason} ->
+            {error, Reason}
+    end.
 
 enable() ->
     lists:foreach(fun({_Topic, false}) -> ok;

+ 7 - 2
apps/emqx_modules/src/emqx_event_message_api.erl

@@ -53,5 +53,10 @@ event_message(get, _Params) ->
     {200, emqx_event_message:list()};
 
 event_message(put, #{body := Body}) ->
-    _ = emqx_event_message:update(Body),
-    {200, emqx_event_message:list()}.
+    case emqx_event_message:update(Body) of
+        {ok, NewConfig} ->
+            {200, NewConfig};
+        {error, Reason} ->
+            Message = list_to_binary(io_lib:format("Update config failed ~p", [Reason])),
+            {500, 'INTERNAL_ERROR', Message}
+    end.