diff --git a/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub.app.src b/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub.app.src index 9faf65860..c7dcea5c0 100644 --- a/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub.app.src +++ b/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub.app.src @@ -1,6 +1,6 @@ {application, emqx_bridge_gcp_pubsub, [ {description, "EMQX Enterprise GCP Pub/Sub Bridge"}, - {vsn, "0.1.6"}, + {vsn, "0.1.7"}, {registered, []}, {applications, [ kernel, diff --git a/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub.erl b/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub.erl index b3792da71..6da1e3197 100644 --- a/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub.erl +++ b/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub.erl @@ -191,7 +191,10 @@ fields(consumer_topic_mapping) -> )} ]; fields("consumer_resource_opts") -> - ResourceFields = emqx_resource_schema:fields("creation_opts"), + ResourceFields = + emqx_resource_schema:create_opts( + [{health_check_interval, #{default => <<"30s">>}}] + ), SupportedFields = [ auto_restart_interval, health_check_interval, diff --git a/apps/emqx_resource/src/emqx_resource.app.src b/apps/emqx_resource/src/emqx_resource.app.src index 283262e99..fdd760de0 100644 --- a/apps/emqx_resource/src/emqx_resource.app.src +++ b/apps/emqx_resource/src/emqx_resource.app.src @@ -1,7 +1,7 @@ %% -*- mode: erlang -*- {application, emqx_resource, [ {description, "Manager for all external resources"}, - {vsn, "0.1.21"}, + {vsn, "0.1.22"}, {registered, []}, {mod, {emqx_resource_app, []}}, {applications, [ diff --git a/apps/emqx_resource/src/emqx_resource_manager.erl b/apps/emqx_resource/src/emqx_resource_manager.erl index 2e4822a2f..27936851e 100644 --- a/apps/emqx_resource/src/emqx_resource_manager.erl +++ b/apps/emqx_resource/src/emqx_resource_manager.erl @@ -179,7 +179,9 @@ create_dry_run(ResourceType, Config) -> false -> #{} end, ok = emqx_resource_manager_sup:ensure_child(ResId, <<"dry_run">>, ResourceType, Config, Opts), - case wait_for_ready(ResId, 5000) of + HealthCheckInterval = maps:get(health_check_interval, Opts, ?HEALTHCHECK_INTERVAL), + Timeout = emqx_utils:clamp(HealthCheckInterval, 5_000, 60_000), + case wait_for_ready(ResId, Timeout) of ok -> remove(ResId); {error, Reason} -> diff --git a/apps/emqx_resource/src/schema/emqx_resource_schema.erl b/apps/emqx_resource/src/schema/emqx_resource_schema.erl index b98f50a98..dcf3414e6 100644 --- a/apps/emqx_resource/src/schema/emqx_resource_schema.erl +++ b/apps/emqx_resource/src/schema/emqx_resource_schema.erl @@ -47,6 +47,7 @@ fields("resource_opts") -> fields("creation_opts") -> create_opts([]). +-spec create_opts([{atom(), hocon_schema:field_schema_map()}]) -> [{atom(), hocon_schema:field()}]. create_opts(Overrides) -> override( [ diff --git a/changes/ee/fix-11461.en.md b/changes/ee/fix-11461.en.md new file mode 100644 index 000000000..011e3e31e --- /dev/null +++ b/changes/ee/fix-11461.en.md @@ -0,0 +1 @@ +Made the timeout for testing bridges connectivity follow more closely the configured health check timeout.