So during Katello tests, we fell over timeouts after 60s during GET /pulp/api/v3/content/rpm/modulemds/?limit=2000...
The timeout-value we set in Katello was 7200s (default 30s) and the default-value of pulp_rpm_client gem is supposed to be unlimited.
I looked into the code and saw that the timeout is not set at all in lib/pulp_rpm_client/api_client.rb
:
module PulpRpmClient
class ApiClient
def build_request(http_method, path, request, opts = {})
url = build_request_url(path)
http_method = http_method.to_sym.downcase
header_params = @default_headers.merge(opts[:header_params] || {})
query_params = opts[:query_params] || {}
form_params = opts[:form_params] || {}
update_params_for_auth! header_params, query_params, opts[:auth_names]
req_opts = {
:method => http_method,
:headers => header_params,
:params => query_params,
:params_encoding => @config.params_encoding,
:timeout => @config.timeout,
:verbose => @config.debugging
}
if [:post, :patch, :put, :delete].include?(http_method)
req_body = build_request_body(header_params, form_params, opts[:body])
req_opts.update :body => req_body
if @config.debugging
@config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
end
end
request.headers = header_params
request.body = req_body
request.url url
request.params = query_params
download_file(request) if opts[:return_type] == 'File'
request
end
The req_opts
variable is defined but never assigned to the request
!
In pulp_dep_client-2.16.2
it is assigned with:
request.options = OpenStruct.new(req_opts)
That line is missing in pulp_rpm_client
. Were they build with different versions of the OpenAPIGenerator?
Apparently this has been fixed with pulp_rpm_client 3.17.5. Is there a way to fix the 3.16 version as well?