8000 fix: Retry and timeout values do not propagate in requests during pag… · googleapis/python-datastore@5e773cb · GitHub
[go: up one dir, main page]

Skip to content

Commit 5e773cb

Browse files
fix: Retry and timeout values do not propagate in requests during pagination (#555)
* chore: Update gapic-generator-python to v1.18.4 PiperOrigin-RevId: 657207628 Source-Link: googleapis/googleapis@33fe71e Source-Link: googleapis/googleapis-gen@e02739d Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiZTAyNzM5ZDEyMmVkMTViZDVlZjU3NzFjNTdmMTJhODNkNDdhMWRkYSJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com> Co-authored-by: Kevin Zheng <147537668+gkevinzheng@users.noreply.github.com>
1 parent 4982f9a commit 5e773cb

File tree

5 files changed

+50
-3
lines changed

5 files changed

+50
-3
lines changed

google/cloud/datastore_admin_v1/services/datastore_admin/async_client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1093,6 +1093,8 @@ async def sample_list_indexes():
10931093
method=rpc,
10941094
request=request,
10951095
response=response,
1096+
retry=retry,
1097+
timeout=timeout,
10961098
metadata=metadata,
10971099
)
10981100

google/cloud/datastore_admin_v1/services/datastore_admin/client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1476,6 +1476,8 @@ def sample_list_indexes():
14761476
method=rpc,
14771477
request=request,
14781478
response=response,
1479+
retry=retry,
1480+
timeout=timeout,
14791481
metadata=metadata,
14801482
)
14811483

google/cloud/datastore_admin_v1/services/datastore_admin/pagers.py

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515
#
16+
from google.api_core import gapic_v1
17+
from google.api_core import retry as retries
18+
from google.api_core import retry_async as retries_async
1619
from typing import (
1720
Any,
1821
AsyncIterator,
@@ -22,8 +25,18 @@
2225
Tuple,
2326
Optional,
2427
Iterator,
28+
Union,
2529
)
2630

31+
try:
32+
OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
33+
OptionalAsyncRetry = Union[
34+
retries_async.AsyncRetry, gapic_v1.method._MethodDefault, None
35+
]
36+
except AttributeError: # pragma: NO COVER
37+
OptionalRetry = Union[retries.Retry, object, None] # type: ignore
38+
OptionalAsyncRetry = Union[retries_async.AsyncRetry, object, None] # type: ignore
39+
2740
from google.cloud.datastore_admin_v1.types import datastore_admin
2841
from google.cloud.datastore_admin_v1.types import index
2942

@@ -52,6 +65,8 @@ def __init__(
5265
request: datastore_admin.ListIndexesRequest,
5366
response: datastore_admin.ListIndexesResponse,
5467
*,
68+
retry: OptionalRetry = gapic_v1.method.DEFAULT,
69+
timeout: Union[float, object] = gapic_v1.method.DEFAULT,
5570
metadata: Sequence[Tuple[str, str]] = ()
5671
):
5772
"""Instantiate the pager.
@@ -63,12 +78,17 @@ def __init__(
6378
The initial request object.
6479
response (google.cloud.datastore_admin_v1.types.ListIndexesResponse):
6580
The initial response object.
81+
retry (google.api_core.retry.Retry): Designation of what errors,
82+
if any, should be retried.
83+
timeout (float): The timeout for this request.
6684
metadata (Sequence[Tuple[str, str]]): Strings which should be
6785
sent along with the request as metadata.
6886
"""
6987
self._method = method
7088
self._request = datastore_admin.ListIndexesRequest(request)
7189
self._response = response
90+
self._retry = retry
91+
self._timeout = timeout
7292
self._metadata = metadata
7393

7494
def __getattr__(self, name: str) -> Any:
@@ -79,7 +99,12 @@ def pages(self) -> Iterator[datastore_admin.ListIndexesResponse]:
7999
yield self._response
80100
while self._response.next_page_token:
81101
self._request.page_token = self._response.next_page_token
82-
self._response = self._method(self._request, metadata=self._metadata)
102+
self._response = self._method(
103+
self._request,
104+
retry=self._retry,
105+
timeout=self._timeout,
106+
metadata=self._metadata,
107+
)
83108
yield self._response
84109

85110
def __iter__(self) -> Iterator[index.Index]:
@@ -114,6 +139,8 @@ def __init__(
114139
request: datastore_admin.ListIndexesRequest,
115140
response: datastore_admin.ListIndexesResponse,
116141
*,
142+
retry: OptionalAsyncRetry = gapic_v1.method.DEFAULT,
143+
timeout: Union[float, object] = gapic_v1.method.DEFAULT,
117144
metadata: Sequence[Tuple[str, str]] = ()
118145
):
119146
"""Instantiates the pager.
@@ -125,12 +152,17 @@ def __init__(
125152
The initial request object.
126153
response (google.cloud.datastore_admin_v1.types.ListIndexesResponse):
127154
The initial response object.
155+
retry (google.api_core.retry.AsyncRetry): Designation of what errors,
156+
if any, should be retried.
157+
timeout (float): The timeout for this request.
128158
metadata (Sequence[Tuple[str, str]]): Strings which should be
129159
sent along with the request as metadata.
130160
"""
131161
self._method = method
132162
self._request = datastore_admin.ListIndexesRequest(request)
133163
self._response = response
164+
self._retry = retry
165+
self._timeout = timeout
134166
self._metadata = metadata
135167

136168
def __getattr__(self, name: str) -> Any:
@@ -141,7 +173,12 @@ async def pages(self) -> AsyncIterator[datastore_admin.ListIndexesResponse]:
141173
yield self._response
142174
while self._response.next_page_token:
143175
self._request.page_token = self._response.next_page_token
144-
self._response = await self._method(self._request, metadata=self._metadata)
176+
self._response = await self._method(
177+
self._request,
178+
retry=self._retry,
179+
timeout=self._timeout,
180+
metadata=self._metadata,
181+
)
145182
yield self._response
146183

147184
def __aiter__(self) -> AsyncIterator[index.Index]:

tests/unit/gapic/datastore_admin_v1/test_datastore_admin.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
from google.api_core import operation_async # type: ignore
4848
from google.api_core import operations_v1
4949
from google.api_core import path_template
50+
from google.api_core import retry as retries
5051
from google.auth import credentials as ga_credentials
5152
from google.auth.exceptions import MutualTLSChannelError
5253
from google.cloud.datastore_admin_v1.services.datastore_admin import (
@@ -3119,12 +3120,16 @@ def test_list_indexes_pager(transport_name: str = "grpc"):
31193120
)
31203121

31213122
expected_metadata = ()
3123+
retry = retries.Retry()
3124+
timeout = 5
31223125
expected_metadata = tuple(expected_metadata) + (
31233126
gapic_v1.routing_header.to_grpc_metadata((("project_id", ""),)),
31243127
)
3125-
pager = client.list_indexes(request={})
3128+
pager = client.list_indexes(request={}, retry=retry, timeout=timeout)
31263129

31273130
assert pager._metadata == expected_metadata
3131+
assert pager._retry == retry
3132+
assert pager._timeout == timeout
31283133

31293134
results = list(pager)
31303135
assert len(results) == 6

tests/unit/gapic/datastore_v1/test_datastore.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
from google.api_core import grpc_helpers
4444
from google.api_core import grpc_helpers_async
4545
from google.api_core import path_template
46+
from google.api_core import retry as retries
4647
from google.auth import credentials as ga_credentials
4748
from google.auth.exceptions import MutualTLSChannelError
4849
from google.cloud.datastore_v1.services.datastore import DatastoreAsyncClient

0 commit comments

Comments
 (0)
0