ソースを参照

fix(mgmt_api): update listener on specific node.

JimMoen 4 年 前
コミット
54b3dd8718
1 ファイル変更7 行追加2 行削除
  1. 7 2
      apps/emqx_management/src/emqx_mgmt_api_listeners.erl

+ 7 - 2
apps/emqx_management/src/emqx_mgmt_api_listeners.erl

@@ -248,8 +248,13 @@ crud_listener_by_id_on_node(get, #{bindings := #{id := Id, node := Node}}) ->
         Listener ->
             {200, format(Listener)}
     end;
-crud_listener_by_id_on_node(put, #{bindings := #{id := Id, node := Node, body := Conf}}) ->
-    return_listeners(emqx_mgmt:update_listener(atom(Node), Id, Conf));
+crud_listener_by_id_on_node(put, #{bindings := #{id := Id, node := Node}, body := Conf}) ->
+    case emqx_mgmt:update_listener(atom(Node), Id, Conf) of
+        {error, Reason} ->
+            {500, #{code => 'UNKNOW_ERROR', message => err_msg(Reason)}};
+        Listener ->
+            {200, format(Listener)}
+    end;
 crud_listener_by_id_on_node(delete, #{bindings := #{id := Id, node := Node}}) ->
     case emqx_mgmt:remove_listener(atom(Node), Id) of
         ok -> {200};