From 4e80d669b005d709ff7cb8ca29c9cc564f058238 Mon Sep 17 00:00:00 2001 From: Thales Macedo Garitezi Date: Tue, 15 Aug 2023 17:03:24 -0300 Subject: [PATCH] fix(influxdb_bridge): avoid double-parsing write syntax during probe Fixes https://emqx.atlassian.net/browse/EMQX-10771 --- .../src/emqx_bridge_influxdb.app.src | 2 +- apps/emqx_bridge_influxdb/src/emqx_bridge_influxdb.erl | 3 +++ .../src/emqx_bridge_influxdb_connector.erl | 4 +++- .../test/emqx_bridge_influxdb_SUITE.erl | 10 ++++++++++ changes/ee/fix-11453.en.md | 1 + 5 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 changes/ee/fix-11453.en.md diff --git a/apps/emqx_bridge_influxdb/src/emqx_bridge_influxdb.app.src b/apps/emqx_bridge_influxdb/src/emqx_bridge_influxdb.app.src index a612c225b..2a0eef72e 100644 --- a/apps/emqx_bridge_influxdb/src/emqx_bridge_influxdb.app.src +++ b/apps/emqx_bridge_influxdb/src/emqx_bridge_influxdb.app.src @@ -1,6 +1,6 @@ {application, emqx_bridge_influxdb, [ {description, "EMQX Enterprise InfluxDB Bridge"}, - {vsn, "0.1.3"}, + {vsn, "0.1.4"}, {registered, []}, {applications, [ kernel, diff --git a/apps/emqx_bridge_influxdb/src/emqx_bridge_influxdb.erl b/apps/emqx_bridge_influxdb/src/emqx_bridge_influxdb.erl index b178f77e0..47eeecb4e 100644 --- a/apps/emqx_bridge_influxdb/src/emqx_bridge_influxdb.erl +++ b/apps/emqx_bridge_influxdb/src/emqx_bridge_influxdb.erl @@ -168,6 +168,9 @@ write_syntax(format) -> write_syntax(_) -> undefined. +to_influx_lines(Lines = [#{} | _]) -> + %% already parsed/converted (e.g.: bridge_probe, after hocon_tconf:check_plain) + Lines; to_influx_lines(RawLines) -> try influx_lines(str(RawLines), []) diff --git a/apps/emqx_bridge_influxdb/src/emqx_bridge_influxdb_connector.erl b/apps/emqx_bridge_influxdb/src/emqx_bridge_influxdb_connector.erl index be5ed6b1c..b39d46b59 100644 --- a/apps/emqx_bridge_influxdb/src/emqx_bridge_influxdb_connector.erl +++ b/apps/emqx_bridge_influxdb/src/emqx_bridge_influxdb_connector.erl @@ -66,7 +66,9 @@ on_start(InstId, Config) -> on_stop(InstId, _State) -> case emqx_resource:get_allocated_resources(InstId) of #{?influx_client := Client} -> - influxdb:stop_client(Client); + Res = influxdb:stop_client(Client), + ?tp(influxdb_client_stopped, #{instance_id => InstId}), + Res; _ -> ok end. diff --git a/apps/emqx_bridge_influxdb/test/emqx_bridge_influxdb_SUITE.erl b/apps/emqx_bridge_influxdb/test/emqx_bridge_influxdb_SUITE.erl index 3976d187a..c0d63002b 100644 --- a/apps/emqx_bridge_influxdb/test/emqx_bridge_influxdb_SUITE.erl +++ b/apps/emqx_bridge_influxdb/test/emqx_bridge_influxdb_SUITE.erl @@ -124,6 +124,9 @@ init_per_group(InfluxDBType, Config0) when {influxdb_config, InfluxDBConfig}, {influxdb_config_string, ConfigString}, {ehttpc_pool_name, EHttpcPoolName}, + {bridge_type, influxdb_api_v1}, + {bridge_name, Name}, + {bridge_config, InfluxDBConfig}, {influxdb_name, Name} | Config ]; @@ -193,6 +196,9 @@ init_per_group(InfluxDBType, Config0) when {influxdb_config, InfluxDBConfig}, {influxdb_config_string, ConfigString}, {ehttpc_pool_name, EHttpcPoolName}, + {bridge_type, influxdb_api_v2}, + {bridge_name, Name}, + {bridge_config, InfluxDBConfig}, {influxdb_name, Name} | Config ]; @@ -570,6 +576,10 @@ t_start_ok(Config) -> ), ok. +t_start_stop(Config) -> + ok = emqx_bridge_testlib:t_start_stop(Config, influxdb_client_stopped), + ok. + t_start_already_started(Config) -> Type = influxdb_type_bin(?config(influxdb_type, Config)), Name = ?config(influxdb_name, Config), diff --git a/changes/ee/fix-11453.en.md b/changes/ee/fix-11453.en.md new file mode 100644 index 000000000..428f51d5b --- /dev/null +++ b/changes/ee/fix-11453.en.md @@ -0,0 +1 @@ +Fixed an issue which would yield false negatives when testing the connectivity of InfluxDB bridges.