16
16
import time
17
17
from os import environ
18
18
19
- from google .api_core .exceptions import GoogleAPICallError
19
+ from google .api_core .exceptions import GoogleAPICallError , Aborted
20
20
from google .cloud import kms_v1
21
21
from google .cloud .kms_v1 import enums
22
22
from google .iam .v1 .policy_pb2 import Policy
@@ -68,6 +68,7 @@ class TestKMSSnippets:
68
68
parent = 'projects/{}/locations/{}' .format (project_id , location )
69
69
keyring_path = '{}/keyRings/{}' .format (parent , keyring_id )
70
70
version = '1'
71
+ try_limit = 10
71
72
72
73
symId = 'symmetric'
73
74
@@ -177,10 +178,18 @@ def test_key_policy(self):
177
178
self .symId ,
178
179
self .member ,
179
180
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
184
193
found = False
185
194
for b in list (policy .bindings ):
186
195
if b .role == self .role and self .member in b .members :
@@ -193,10 +202,18 @@ def test_key_policy(self):
193
202
self .symId ,
194
203
self .member ,
195
204
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
200
217
found = False
201
218
for b in list (policy .bindings ):
202
219
if b .role == self .role and self .member in b .members :
0 commit comments