From e54f2f83b3222db496e04babc24c5dae02fdcce7 Mon Sep 17 00:00:00 2001 From: Stefan Strigler Date: Tue, 17 Jan 2023 09:59:52 +0100 Subject: [PATCH 1/4] test: use same default timeout as elsewhere --- apps/emqx_resource/src/emqx_resource_manager.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/emqx_resource/src/emqx_resource_manager.erl b/apps/emqx_resource/src/emqx_resource_manager.erl index 170dfe162..ab726976a 100644 --- a/apps/emqx_resource/src/emqx_resource_manager.erl +++ b/apps/emqx_resource/src/emqx_resource_manager.erl @@ -171,7 +171,7 @@ create_dry_run(ResourceType, Config) -> ok = emqx_resource_manager_sup:ensure_child( MgrId, ResId, <<"dry_run">>, ResourceType, Config, #{} ), - case wait_for_ready(ResId, 15000) of + case wait_for_ready(ResId, 5000) of ok -> remove(ResId); {error, Reason} -> From d164e5bc0f1ee78d3df23b7e6ac33c7ef447ce2a Mon Sep 17 00:00:00 2001 From: Stefan Strigler Date: Tue, 17 Jan 2023 09:59:32 +0100 Subject: [PATCH 2/4] fix: don't require ssl conf --- apps/emqx_bridge/src/emqx_bridge_resource.erl | 4 +++- apps/emqx_bridge/test/emqx_bridge_api_SUITE.erl | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/emqx_bridge/src/emqx_bridge_resource.erl b/apps/emqx_bridge/src/emqx_bridge_resource.erl index 4f8d248b2..3b6b3a431 100644 --- a/apps/emqx_bridge/src/emqx_bridge_resource.erl +++ b/apps/emqx_bridge/src/emqx_bridge_resource.erl @@ -251,7 +251,9 @@ maybe_clear_certs(TmpPath, #{ssl := SslConf} = Conf) -> case is_tmp_path_conf(TmpPath, SslConf) of true -> emqx_connector_ssl:clear_certs(TmpPath, Conf); false -> ok - end. + end; +maybe_clear_certs(_TmpPath, _ConfWithoutSsl) -> + ok. is_tmp_path_conf(TmpPath, #{certfile := Certfile}) -> is_tmp_path(TmpPath, Certfile); diff --git a/apps/emqx_bridge/test/emqx_bridge_api_SUITE.erl b/apps/emqx_bridge/test/emqx_bridge_api_SUITE.erl index a5d7968a2..6b0b3a941 100644 --- a/apps/emqx_bridge/test/emqx_bridge_api_SUITE.erl +++ b/apps/emqx_bridge/test/emqx_bridge_api_SUITE.erl @@ -86,6 +86,7 @@ init_per_testcase(_, Config) -> {ok, _} = emqx_cluster_rpc:start_link(node(), emqx_cluster_rpc, 1000), {Port, Sock, Acceptor} = start_http_server(fun handle_fun_200_ok/2), [{port, Port}, {sock, Sock}, {acceptor, Acceptor} | Config]. + end_per_testcase(_, Config) -> Sock = ?config(sock, Config), Acceptor = ?config(acceptor, Config), From 5fc31dcd9ee0851cb4165cf8bf4c924a36747e34 Mon Sep 17 00:00:00 2001 From: Stefan Strigler Date: Tue, 17 Jan 2023 15:27:58 +0100 Subject: [PATCH 3/4] fix: use atom keys in example to make sure they exist --- .../src/emqx_ee_bridge_gcp_pubsub.erl | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_gcp_pubsub.erl b/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_gcp_pubsub.erl index 83fe31b49..1bee9e789 100644 --- a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_gcp_pubsub.erl +++ b/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_gcp_pubsub.erl @@ -149,31 +149,31 @@ values(get) -> maps:merge(values(post), ?METRICS_EXAMPLE); values(post) -> #{ - <<"pubsub_topic">> => <<"mytopic">>, - <<"service_account_json">> => + pubsub_topic => <<"mytopic">>, + service_account_json => #{ - <<"auth_provider_x509_cert_url">> => + auth_provider_x509_cert_url => <<"https://www.googleapis.com/oauth2/v1/certs">>, - <<"auth_uri">> => + auth_uri => <<"https://accounts.google.com/o/oauth2/auth">>, - <<"client_email">> => + client_email => <<"test@myproject.iam.gserviceaccount.com">>, - <<"client_id">> => <<"123812831923812319190">>, - <<"client_x509_cert_url">> => + client_id => <<"123812831923812319190">>, + client_x509_cert_url => << "https://www.googleapis.com/robot/v1/" "metadata/x509/test%40myproject.iam.gserviceaccount.com" >>, - <<"private_key">> => + private_key => << "-----BEGIN PRIVATE KEY-----\n" "MIIEvQI..." >>, - <<"private_key_id">> => <<"kid">>, - <<"project_id">> => <<"myproject">>, - <<"token_uri">> => + private_key_id => <<"kid">>, + project_id => <<"myproject">>, + token_uri => <<"https://oauth2.googleapis.com/token">>, - <<"type">> => <<"service_account">> + type => <<"service_account">> } }; values(put) -> From f37b3e4bc410d201d71a96b64077e77e58bad8b8 Mon Sep 17 00:00:00 2001 From: Stefan Strigler Date: Tue, 17 Jan 2023 15:28:18 +0100 Subject: [PATCH 4/4] test: test against `bridges_probe` API --- .../emqx_ee_bridge/test/emqx_ee_bridge_gcp_pubsub_SUITE.erl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_gcp_pubsub_SUITE.erl b/lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_gcp_pubsub_SUITE.erl index 0eadf46ad..9977e70a7 100644 --- a/lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_gcp_pubsub_SUITE.erl +++ b/lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_gcp_pubsub_SUITE.erl @@ -196,13 +196,17 @@ create_bridge_http(Config, GCPPubSubConfigOverrides) -> Params = GCPPubSubConfig#{<<"type">> => TypeBin, <<"name">> => Name}, Path = emqx_mgmt_api_test_util:api_path(["bridges"]), AuthHeader = emqx_mgmt_api_test_util:auth_header_(), + ProbePath = emqx_mgmt_api_test_util:api_path(["bridges_probe"]), + ProbeResult = emqx_mgmt_api_test_util:request_api(post, ProbePath, "", AuthHeader, Params), ct:pal("creating bridge (via http): ~p", [Params]), + ct:pal("probe result: ~p", [ProbeResult]), Res = case emqx_mgmt_api_test_util:request_api(post, Path, "", AuthHeader, Params) of {ok, Res0} -> {ok, emqx_json:decode(Res0, [return_maps])}; Error -> Error end, ct:pal("bridge creation result: ~p", [Res]), + ?assertEqual(element(1, ProbeResult), element(1, Res)), Res. create_rule_and_action_http(Config) -> @@ -672,7 +676,7 @@ t_create_via_http(Config) -> create_bridge_http(Config), fun(Res, Trace) -> ?assertMatch({ok, _}, Res), - ?assertMatch([_], ?of_kind(gcp_pubsub_bridge_jwt_created, Trace)), + ?assertMatch([_, _], ?of_kind(gcp_pubsub_bridge_jwt_created, Trace)), ok end ),