Skip to content

Commit 456c5a1

Browse files
committed
added exponential backoff
1 parent bead166 commit 456c5a1

File tree

1 file changed

+26
-9
lines changed

1 file changed

+26
-9
lines changed

kms/api-client/snippets_test.py

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import time
1717
from os import environ
1818

19-
from google.api_core.exceptions import GoogleAPICallError
19+
from google.api_core.exceptions import GoogleAPICallError, Aborted
2020
from google.cloud import kms_v1
2121
from google.cloud.kms_v1 import enums
2222
from google.iam.v1.policy_pb2 import Policy
@@ -68,6 +68,7 @@ class TestKMSSnippets:
6868
parent = 'projects/{}/locations/{}'.format(project_id, location)
6969
keyring_path = '{}/keyRings/{}'.format(parent, keyring_id)
7070
version = '1'
71+
try_limit = 10
7172

7273
symId = 'symmetric'
7374

@@ -177,10 +178,18 @@ def test_key_policy(self):
177178
self.symId,
178179
self.member,
179180
self.role)
180-
policy = snippets.get_crypto_key_policy(self.project_id,
181-
self.location,
182-
self.keyring_id,
183-
self.symId)
181+
try_number = 0
182+
policy = None
183+
while policy is None and try_number < self.try_limit:
184+
try:
185+
time.sleep(2*try_number)
186+
policy = snippets.get_crypto_key_policy(self.project_id,
187+
self.location,
188+
self.keyring_id,
189+
self.symId)
190+
except Aborted:
191+
# aborted by backend. Try again
192+
try_number += 1
184193
found = False
185194
for b in list(policy.bindings):
186195
if b.role == self.role and self.member in b.members:
@@ -193,10 +202,18 @@ def test_key_policy(self):
193202
self.symId,
194203
self.member,
195204
self.role)
196-
policy = snippets.get_crypto_key_policy(self.project_id,
197-
self.location,
198-
self.keyring_id,
199-
self.symId)
205+
try_number = 0
206+
policy = None
207+
while policy is None and try_number < self.try_limit:
208+
try:
209+
time.sleep(2*try_number)
210+
policy = snippets.get_crypto_key_policy(self.project_id,
211+
self.location,
212+
self.keyring_id,
213+
self.symId)
214+
except Aborted:
215+
# aborted by backend. Try again
216+
try_number += 1
200217
found = False
201218
for b in list(policy.bindings):
202219
if b.role == self.role and self.member in b.members:

0 commit comments

Comments
 (0)