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

fix(cluster link api): clientid is not required when updating

Fixes https://emqx.atlassian.net/browse/EMQX-13183
Thales Macedo Garitezi 1 год назад
Родитель
Сommit
c30039e5d2

+ 1 - 1
apps/emqx_cluster_link/src/emqx_cluster_link_schema.erl

@@ -55,7 +55,7 @@ fields("link") ->
         {name, ?HOCON(binary(), #{required => true, desc => ?DESC(link_name)})},
         {server,
             emqx_schema:servers_sc(#{required => true, desc => ?DESC(server)}, ?MQTT_HOST_OPTS)},
-        {clientid, ?HOCON(binary(), #{desc => ?DESC(clientid)})},
+        {clientid, ?HOCON(binary(), #{required => false, desc => ?DESC(clientid)})},
         {username, ?HOCON(binary(), #{required => false, desc => ?DESC(username)})},
         {password, emqx_schema_secret:mk(#{required => false, desc => ?DESC(password)})},
         {ssl, #{

+ 9 - 0
apps/emqx_cluster_link/test/emqx_cluster_link_api_SUITE.erl

@@ -835,3 +835,12 @@ t_duplicate_topic_filters(_Config) ->
         []
     ),
     ok.
+
+%% Verifies that some fields are not required when updating a link, such as:
+%%  - clientid
+t_optional_fields_update(_Config) ->
+    Name = <<"mylink">>,
+    Params0 = maps:without([<<"clientid">>], link_params()),
+    {201, _} = create_link(Name, Params0),
+    ?assertMatch({200, _}, update_link(Name, Params0)),
+    ok.

+ 1 - 0
changes/ee/fix-13888.en.md

@@ -0,0 +1 @@
+Fixed an issue that prevented updating a cluster link without clientid via its HTTP API.