From 7bc59969eb9c0f8245d3e4a3a48feb415ef88986 Mon Sep 17 00:00:00 2001 From: DDDHuang <44492639+DDDHuang@users.noreply.github.com> Date: Tue, 4 Jan 2022 11:01:14 +0800 Subject: [PATCH 1/4] fix(prometheus): update config in cluster --- .../src/emqx_prometheus_api.erl | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/apps/emqx_prometheus/src/emqx_prometheus_api.erl b/apps/emqx_prometheus/src/emqx_prometheus_api.erl index 9e8904a4e..f849589f4 100644 --- a/apps/emqx_prometheus/src/emqx_prometheus_api.erl +++ b/apps/emqx_prometheus/src/emqx_prometheus_api.erl @@ -67,16 +67,22 @@ prometheus(get, _Params) -> {200, emqx:get_raw_config([<<"prometheus">>], #{})}; prometheus(put, #{body := Body}) -> - {ok, Config} = emqx:update_config([prometheus], Body), - case maps:get(<<"enable">>, Body) of - true -> - _ = emqx_prometheus_sup:stop_child(?APP), - emqx_prometheus_sup:start_child(?APP, maps:get(config, Config)); - false -> - _ = emqx_prometheus_sup:stop_child(?APP), - ok - end, - {200, emqx:get_raw_config([<<"prometheus">>], #{})}. + case emqx:update_config([prometheus], + Body, + #{rawconf_with_defaults => true, override_to => cluster}) of + {ok, #{raw_config := NewConfig, config := Config}} -> + case maps:get(<<"enable">>, Body) of + true -> + _ = emqx_prometheus_sup:stop_child(?APP), + emqx_prometheus_sup:start_child(?APP, Config); + false -> + _ = emqx_prometheus_sup:stop_child(?APP) + end, + {200, NewConfig}; + {error, Reason} -> + Message = list_to_binary(io_lib:format("Update config failed ~p", [Reason])), + {500, 'INTERNAL_ERROR', Message} + end. stats(get, #{headers := Headers}) -> Type = From e908973a867d84068aca92cd2e7abdd45cf1fba3 Mon Sep 17 00:00:00 2001 From: DDDHuang <44492639+DDDHuang@users.noreply.github.com> Date: Tue, 4 Jan 2022 11:07:58 +0800 Subject: [PATCH 2/4] fix(statsd): update config bug --- apps/emqx_statsd/src/emqx_statsd_api.erl | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/apps/emqx_statsd/src/emqx_statsd_api.erl b/apps/emqx_statsd/src/emqx_statsd_api.erl index ab9416266..c7ac94003 100644 --- a/apps/emqx_statsd/src/emqx_statsd_api.erl +++ b/apps/emqx_statsd/src/emqx_statsd_api.erl @@ -61,10 +61,8 @@ statsd(put, #{body := Body}) -> {ok, #{raw_config := NewConfig, config := Config}} -> ok = emqx_statsd_sup:ensure_child_stopped(?APP), case maps:get(<<"enable">>, Body) of - true -> - ok = emqx_statsd_sup:ensure_child_started(?APP, maps:get(config, Config)); - false -> - ok + true -> emqx_statsd_sup:ensure_child_started(?APP, Config); + false -> ok end, {200, NewConfig}; {error, Reason} -> From 20c5343f9bd383c4f0808e093c68058fc353fe47 Mon Sep 17 00:00:00 2001 From: DDDHuang <44492639+DDDHuang@users.noreply.github.com> Date: Tue, 4 Jan 2022 13:57:23 +0800 Subject: [PATCH 3/4] fix(prometheus): dialyzer --- apps/emqx_prometheus/src/emqx_prometheus_api.erl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/emqx_prometheus/src/emqx_prometheus_api.erl b/apps/emqx_prometheus/src/emqx_prometheus_api.erl index f849589f4..dda8bbd13 100644 --- a/apps/emqx_prometheus/src/emqx_prometheus_api.erl +++ b/apps/emqx_prometheus/src/emqx_prometheus_api.erl @@ -71,12 +71,12 @@ prometheus(put, #{body := Body}) -> Body, #{rawconf_with_defaults => true, override_to => cluster}) of {ok, #{raw_config := NewConfig, config := Config}} -> - case maps:get(<<"enable">>, Body) of + case maps:get(<<"enable">>, Body, true) of true -> - _ = emqx_prometheus_sup:stop_child(?APP), - emqx_prometheus_sup:start_child(?APP, Config); + ok = emqx_prometheus_sup:stop_child(?APP), + ok = emqx_prometheus_sup:start_child(?APP, Config); false -> - _ = emqx_prometheus_sup:stop_child(?APP) + ok = emqx_prometheus_sup:stop_child(?APP) end, {200, NewConfig}; {error, Reason} -> From eabede04f3ab29771f29ba48377844fd28e1dc21 Mon Sep 17 00:00:00 2001 From: DDDHuang <44492639+DDDHuang@users.noreply.github.com> Date: Tue, 4 Jan 2022 15:00:50 +0800 Subject: [PATCH 4/4] fix(test): emqx_connector_api_SUITE add sleep --- apps/emqx_connector/test/emqx_connector_api_SUITE.erl | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/emqx_connector/test/emqx_connector_api_SUITE.erl b/apps/emqx_connector/test/emqx_connector_api_SUITE.erl index 12a3a8e23..4ecc61cec 100644 --- a/apps/emqx_connector/test/emqx_connector_api_SUITE.erl +++ b/apps/emqx_connector/test/emqx_connector_api_SUITE.erl @@ -221,6 +221,7 @@ t_mqtt_conn_bridge_ingress(_) -> %% ... and a MQTT bridge, using POST %% we bind this bridge to the connector created just now + timer:sleep(50), {ok, 201, Bridge} = request(post, uri(["bridges"]), ?MQTT_BRIDGE_INGRESS(ConnctorID)#{ <<"type">> => ?CONNECTR_TYPE,