From b2b9732edbfe4af80b67bbcda3f65ea6c63abd8f Mon Sep 17 00:00:00 2001 From: Thales Macedo Garitezi Date: Wed, 29 Mar 2023 09:30:06 -0300 Subject: [PATCH] fix(tdengine): make password a required field (rv5.0) Fixes https://emqx.atlassian.net/browse/EMQX-9395 ``` 2023-03-29T09:59:02.655495+00:00 [warning] msg: start_resource_failed, mfa: emqx_resource_manager:start_resource/2, line: 524, id: <<"bridge:tdengine:jimmoen-test-trigger">>, reason: {error,function_clause,[{emqx_ee_connector_tdengine,on_start,[<<"bridge:tdengine:jimmoen-test-trigger:1076">>,#{database => <<"db">>,enable => true,pool_size => 8,resource_opts => #{auto_restart_interval => 60000,batch_size => 1,batch_time => 0,health_check_interval => 15000,max_queue_bytes => 104857600,query_mode => sync,request_timeout => 15000,start_after_created => true,start_timeout => 5000,worker_pool_size => 16},server => "127.0.0.1",sql => <<"insert into mqtt.t_mqtt_msg(ts, msgid, mqtt_topic, qos, payload, arrived) values (${ts}, ${id}, ${topic}, ${qos}, ${payload}, ${timestamp})">>,username => <<"root">>}],[{file,"emqx_ee_connector_tdengine.erl"},{line,76}]},{emqx_resource,call_start,3,[{file,"emqx_resource.erl"},{line,359}]},{emqx_resource_manager,start_resource,2,[{file,"emqx_resource_manager.erl"},{line,513}]},{gen_statem,loop_state_callback,11,[{file,"gen_statem.erl"},{line,1205}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,226}]}]} ``` --- .ci/docker-compose-file/docker-compose.yaml | 3 +++ .../emqx_ee_connector/src/emqx_ee_connector.app.src | 2 +- .../src/emqx_ee_connector_tdengine.erl | 12 ++++++++++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.ci/docker-compose-file/docker-compose.yaml b/.ci/docker-compose-file/docker-compose.yaml index 5c37d971e..526c4c182 100644 --- a/.ci/docker-compose-file/docker-compose.yaml +++ b/.ci/docker-compose-file/docker-compose.yaml @@ -16,6 +16,9 @@ services: GITHUB_REF: ${GITHUB_REF} networks: - emqx_bridge + ports: + - 28083:18083 + - 2883:1883 volumes: - ../..:/emqx - /tmp/emqx-ci/emqx-shared-secret:/var/lib/secret diff --git a/lib-ee/emqx_ee_connector/src/emqx_ee_connector.app.src b/lib-ee/emqx_ee_connector/src/emqx_ee_connector.app.src index 6f40f7158..a005071da 100644 --- a/lib-ee/emqx_ee_connector/src/emqx_ee_connector.app.src +++ b/lib-ee/emqx_ee_connector/src/emqx_ee_connector.app.src @@ -1,6 +1,6 @@ {application, emqx_ee_connector, [ {description, "EMQX Enterprise connectors"}, - {vsn, "0.1.7"}, + {vsn, "0.1.8"}, {registered, []}, {applications, [ kernel, diff --git a/lib-ee/emqx_ee_connector/src/emqx_ee_connector_tdengine.erl b/lib-ee/emqx_ee_connector/src/emqx_ee_connector_tdengine.erl index 7ab0c5078..746ab5485 100644 --- a/lib-ee/emqx_ee_connector/src/emqx_ee_connector_tdengine.erl +++ b/lib-ee/emqx_ee_connector/src/emqx_ee_connector_tdengine.erl @@ -41,14 +41,16 @@ roots() -> fields(config) -> [ {server, server()} - | add_default_username(emqx_connector_schema_lib:relational_db_fields()) + | adjust_fields(emqx_connector_schema_lib:relational_db_fields()) ]. -add_default_username(Fields) -> +adjust_fields(Fields) -> lists:map( fun ({username, OrigUsernameFn}) -> {username, add_default_fn(OrigUsernameFn, <<"root">>)}; + ({password, OrigPasswordFn}) -> + {password, make_required_fn(OrigPasswordFn)}; (Field) -> Field end, @@ -61,6 +63,12 @@ add_default_fn(OrigFn, Default) -> (Field) -> OrigFn(Field) end. +make_required_fn(OrigFn) -> + fun + (required) -> true; + (Field) -> OrigFn(Field) + end. + server() -> Meta = #{desc => ?DESC("server")}, emqx_schema:servers_sc(Meta, ?TD_HOST_OPTIONS).