Skip to content

Commit 679a8cd

Browse files
authoredDec 18, 2024··
fix(specs): endpoint level timeout for ingestion (#4251)
1 parent 7b827d2 commit 679a8cd

File tree

8 files changed

+42
-4
lines changed

8 files changed

+42
-4
lines changed
 

‎clients/algoliasearch-client-python/algoliasearch/http/request_options.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ def merge(
5858
query_parameters: Optional[Dict[str, Any]] = None,
5959
headers: Optional[Dict[str, str]] = None,
6060
data: Optional[str] = None,
61+
timeouts: Dict[str, int] = {},
6162
user_request_options: Optional[Union[Self, Dict[str, Any]]] = None,
6263
) -> Self:
6364
"""
@@ -74,9 +75,9 @@ def merge(
7475
"headers": headers,
7576
"query_parameters": query_parameters,
7677
"timeouts": {
77-
"read": self._config.read_timeout,
78-
"write": self._config.write_timeout,
79-
"connect": self._config.connect_timeout,
78+
"read": timeouts.get("read", self._config.read_timeout),
79+
"write": timeouts.get("write", self._config.write_timeout),
80+
"connect": timeouts.get("connect", self._config.connect_timeout),
8081
},
8182
"data": data,
8283
}

‎specs/ingestion/paths/sources/discover.yml

+4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ post:
1010
- addObject
1111
- deleteIndex
1212
- editSettings
13+
x-timeouts:
14+
connect: 180000
15+
read: 180000
16+
write: 180000
1317
parameters:
1418
- $ref: '../../common/parameters.yml#/pathSourceID'
1519
responses:

‎specs/ingestion/paths/sources/validate.yml

+4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ post:
99
- addObject
1010
- deleteIndex
1111
- editSettings
12+
x-timeouts:
13+
connect: 180000
14+
read: 180000
15+
write: 180000
1216
requestBody:
1317
description: ''
1418
content:

‎specs/ingestion/paths/sources/validateID.yml

+4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ post:
99
- addObject
1010
- deleteIndex
1111
- editSettings
12+
x-timeouts:
13+
connect: 180000
14+
read: 180000
15+
write: 180000
1216
parameters:
1317
- $ref: '../../common/parameters.yml#/pathSourceID'
1418
requestBody:

‎specs/ingestion/paths/tasks/v2/pushTask.yml

+4
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ post:
88
- addObject
99
- deleteIndex
1010
- editSettings
11+
x-timeouts:
12+
connect: 180000
13+
read: 180000
14+
write: 180000
1115
parameters:
1216
- $ref: '../../../common/parameters.yml#/pathTaskID'
1317
- name: watch

‎templates/javascript/clients/api-single.mustache

+11
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,17 @@ export function create{{#lambda.titlecase}}{{clientName}}{{/lambda.titlecase}}({
159159
{{/vendorExtensions}}
160160
};
161161

162+
{{#vendorExtensions.x-timeouts}}
163+
requestOptions = {
164+
timeouts: {
165+
connect: {{connect}},
166+
read: {{read}},
167+
write: {{write}},
168+
...requestOptions?.timeouts,
169+
}
170+
}
171+
{{/vendorExtensions.x-timeouts}}
172+
162173
return transporter.request(request, requestOptions);
163174
},
164175

‎templates/python/api.mustache

+7
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,13 @@ class {{classname}}{{#isSyncClient}}Sync{{/isSyncClient}}:
180180
{{#queryParams.0}}query_parameters=_query_parameters,{{/queryParams.0}}
181181
{{#headerParams.0}}headers=_headers,{{/headerParams.0}}
182182
{{#bodyParam}}data=dumps(body_serializer(_data)),{{/bodyParam}}
183+
{{#vendorExtensions.x-timeouts}}
184+
timeouts={
185+
"read": {{read}},
186+
"write": {{write}},
187+
"connect": {{connect}},
188+
},
189+
{{/vendorExtensions.x-timeouts}}
183190
user_request_options=request_options,
184191
),
185192
{{#vendorExtensions}}

‎templates/ruby/api.mustache

+4-1
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,9 @@ module {{moduleName}}
138138
{{/headerParams}}
139139
header_params = header_params.merge(request_options[:header_params]) unless request_options[:header_params].nil?
140140
{{/vendorExtensions}}
141+
{{#vendorExtensions.x-timeouts}}
142+
request_options[:timeout] ||= {{#vendorExtensions.x-use-read-transporter}}{{vendorExtensions.x-timeouts.read}}{{/vendorExtensions.x-use-read-transporter}} {{^vendorExtensions.x-use-read-transporter}}{{vendorExtensions.x-timeouts.write}}{{/vendorExtensions.x-use-read-transporter}}
143+
{{/vendorExtensions.x-timeouts}}
141144

142145
post_body = request_options[:debug_body]{{#bodyParam}} || @api_client.object_to_http_body({{{paramName}}}){{/bodyParam}}
143146

@@ -187,4 +190,4 @@ module {{moduleName}}
187190
{{/isSearchClient}}
188191
end
189192
{{/operations}}
190-
end
193+
end

0 commit comments

Comments
 (0)
Please sign in to comment.