FIX ED-64: request_timeout is not actually a connection option (#24)

This commit is contained in:
Alexey 2021-03-29 15:53:32 +03:00 committed by GitHub
parent 133b0d5b49
commit 487395fa92
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 10 deletions

View File

@ -25,6 +25,8 @@
{opa, #{ {opa, #{
%% Endpoint of the OPA service %% Endpoint of the OPA service
endpoint => {{resolve, dns, "opa", #{pick => random}}, 8181}, endpoint => {{resolve, dns, "opa", #{pick => random}}, 8181},
% Timeout for making request and receiving response. (ms)
request_timeout => 1000,
%% Pool options, see gunner_pool:pool_opts() %% Pool options, see gunner_pool:pool_opts()
pool_opts => #{ pool_opts => #{
cleanup_interval => 1000, cleanup_interval => 1000,
@ -42,9 +44,7 @@
% Total timeout for estabilishing a connection. (ms) % Total timeout for estabilishing a connection. (ms)
connect_timeout => 1000, connect_timeout => 1000,
% Timeout for domain lookup query. (ms) % Timeout for domain lookup query. (ms)
domain_lookup_timeout => 1000, domain_lookup_timeout => 1000
% Timeout for making request and receiving response. (ms)
request_timeout => 1000
} }
} }
}}, }},

View File

@ -12,7 +12,8 @@
-type opts() :: #{ -type opts() :: #{
pool_opts := gunner:pool_opts(), pool_opts := gunner:pool_opts(),
endpoint := endpoint() endpoint := endpoint(),
request_timeout => timeout()
}. }.
-opaque client() :: #{ -opaque client() :: #{
@ -55,7 +56,7 @@ init(OpaClientOpts) ->
}, },
Client = genlib_map:compact(#{ Client = genlib_map:compact(#{
endpoint => maps:get(endpoint, OpaClientOpts), endpoint => maps:get(endpoint, OpaClientOpts),
request_timeout => get_request_timeout(PoolOpts), request_timeout => get_request_timeout(OpaClientOpts),
connect_timeout => get_connect_timeout(PoolOpts) connect_timeout => get_connect_timeout(PoolOpts)
}), }),
{Client, ChildSpec}. {Client, ChildSpec}.
@ -135,10 +136,9 @@ make_gunner_opts(RequestTimeout, #{connect_timeout := ConnectTimeout}) ->
make_gunner_opts(RequestTimeout, _Client) -> make_gunner_opts(RequestTimeout, _Client) ->
#{request_timeout => RequestTimeout}. #{request_timeout => RequestTimeout}.
-spec get_request_timeout(gunner:pool_opts()) -> timeout(). -spec get_request_timeout(opts()) -> timeout().
get_request_timeout(PoolOpts) -> get_request_timeout(Opts) ->
ClientOpts = maps:get(connection_opts, PoolOpts, #{}), maps:get(request_timeout, Opts, ?DEFAULT_REQUEST_TIMEOUT).
maps:get(request_timeout, ClientOpts, ?DEFAULT_REQUEST_TIMEOUT).
-spec get_connect_timeout(gunner:pool_opts()) -> timeout() | undefined. -spec get_connect_timeout(gunner:pool_opts()) -> timeout() | undefined.
get_connect_timeout(PoolOpts) -> get_connect_timeout(PoolOpts) ->

View File

@ -124,6 +124,7 @@ start_bouncer(Env, C) ->
}}, }},
{opa, #{ {opa, #{
endpoint => ?OPA_ENDPOINT_RESOLVE, endpoint => ?OPA_ENDPOINT_RESOLVE,
request_timeout => 1000,
pool_opts => #{ pool_opts => #{
connection_opts => #{ connection_opts => #{
transport => tcp transport => tcp