@@ -41,8 +41,9 @@ <h1>Source code for gen3.auth</h1><div class="highlight"><pre>
41
41
< span class ="kn "> import</ span > < span class ="nn "> time</ span >
42
42
< span class ="kn "> import</ span > < span class ="nn "> logging</ span >
43
43
< span class ="kn "> from</ span > < span class ="nn "> urllib.parse</ span > < span class ="kn "> import</ span > < span class ="n "> urlparse</ span >
44
+ < span class ="kn "> import</ span > < span class ="nn "> backoff</ span >
44
45
45
- < span class ="kn "> from</ span > < span class ="nn "> gen3.utils</ span > < span class ="kn "> import</ span > < span class ="n "> raise_for_status</ span >
46
+ < span class ="kn "> from</ span > < span class ="nn "> gen3.utils</ span > < span class ="kn "> import</ span > < span class ="n "> DEFAULT_BACKOFF_SETTINGS </ span > < span class =" p " > , </ span > < span class =" n " > raise_for_status</ span >
46
47
47
48
48
49
< span class ="k "> class</ span > < span class ="nc "> Gen3AuthError</ span > < span class ="p "> (</ span > < span class ="ne "> Exception</ span > < span class ="p "> ):</ span >
@@ -289,7 +290,7 @@ <h1>Source code for gen3.auth</h1><div class="highlight"><pre>
289
290
< span class ="k "> return</ span > < span class ="n "> _response</ span >
290
291
291
292
< div class ="viewcode-block " id ="Gen3Auth.refresh_access_token "> < a class ="viewcode-back " href ="../../auth.html#gen3.auth.Gen3Auth.refresh_access_token "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> refresh_access_token</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ):</ span >
292
- < span class ="sd "> """ Get a new access token """</ span >
293
+ < span class ="sd "> """Get a new access token"""</ span >
293
294
< span class ="k "> if</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _use_wts</ span > < span class ="p "> :</ span >
294
295
< span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _access_token</ span > < span class ="o "> =</ span > < span class ="n "> get_access_token_from_wts</ span > < span class ="p "> (</ span >
295
296
< span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _wts_namespace</ span > < span class ="p "> ,</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _wts_idp</ span >
@@ -300,21 +301,37 @@ <h1>Source code for gen3.auth</h1><div class="highlight"><pre>
300
301
< span class ="n "> cache_file</ span > < span class ="o "> =</ span > < span class ="n "> token_cache_file</ span > < span class ="p "> (</ span >
301
302
< span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _refresh_token</ span > < span class ="ow "> and</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _refresh_token</ span > < span class ="p "> [</ span > < span class ="s2 "> "api_key"</ span > < span class ="p "> ]</ span > < span class ="ow "> or</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _wts_idp</ span >
302
303
< span class ="p "> )</ span >
304
+
305
+ < span class ="k "> try</ span > < span class ="p "> :</ span >
306
+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _write_to_file</ span > < span class ="p "> (</ span > < span class ="n "> cache_file</ span > < span class ="p "> ,</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _access_token</ span > < span class ="p "> )</ span >
307
+ < span class ="k "> except</ span > < span class ="ne "> Exception</ span > < span class ="k "> as</ span > < span class ="n "> e</ span > < span class ="p "> :</ span >
308
+ < span class ="n "> logging</ span > < span class ="o "> .</ span > < span class ="n "> warning</ span > < span class ="p "> (</ span >
309
+ < span class ="sa "> f</ span > < span class ="s2 "> "Exceeded number of retries, unable to write to cache file."</ span >
310
+ < span class ="p "> )</ span >
311
+
312
+ < span class ="k "> return</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _access_token</ span > </ div >
313
+
314
+ < span class ="nd "> @backoff</ span > < span class ="o "> .</ span > < span class ="n "> on_exception</ span > < span class ="p "> (</ span >
315
+ < span class ="n "> wait_gen</ span > < span class ="o "> =</ span > < span class ="n "> backoff</ span > < span class ="o "> .</ span > < span class ="n "> expo</ span > < span class ="p "> ,</ span > < span class ="n "> exception</ span > < span class ="o "> =</ span > < span class ="ne "> Exception</ span > < span class ="p "> ,</ span > < span class ="o "> **</ span > < span class ="n "> DEFAULT_BACKOFF_SETTINGS</ span >
316
+ < span class ="p "> )</ span >
317
+ < span class ="k "> def</ span > < span class ="nf "> _write_to_file</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> cache_file</ span > < span class ="p "> ,</ span > < span class ="n "> content</ span > < span class ="p "> ):</ span >
303
318
< span class ="c1 "> # write a temp file, then rename - to avoid</ span >
304
319
< span class ="c1 "> # simultaneous writes to same file race condition</ span >
305
320
< span class ="n "> temp</ span > < span class ="o "> =</ span > < span class ="n "> cache_file</ span > < span class ="o "> +</ span > < span class ="p "> (</ span >
306
321
< span class ="s2 "> ".tmp_eraseme_</ span > < span class ="si "> %d</ span > < span class ="s2 "> _</ span > < span class ="si "> %d</ span > < span class ="s2 "> "</ span > < span class ="o "> %</ span > < span class ="p "> (</ span > < span class ="n "> random</ span > < span class ="o "> .</ span > < span class ="n "> randrange</ span > < span class ="p "> (</ span > < span class ="mi "> 100000</ span > < span class ="p "> ),</ span > < span class ="n "> time</ span > < span class ="o "> .</ span > < span class ="n "> time</ span > < span class ="p "> ())</ span >
307
322
< span class ="p "> )</ span >
308
323
< span class ="k "> try</ span > < span class ="p "> :</ span >
309
324
< span class ="k "> with</ span > < span class ="nb "> open</ span > < span class ="p "> (</ span > < span class ="n "> temp</ span > < span class ="p "> ,</ span > < span class ="s2 "> "w"</ span > < span class ="p "> )</ span > < span class ="k "> as</ span > < span class ="n "> f</ span > < span class ="p "> :</ span >
310
- < span class ="n "> f</ span > < span class ="o "> .</ span > < span class ="n "> write</ span > < span class ="p "> (</ span > < span class ="bp " > self </ span > < span class =" o " > . </ span > < span class =" n "> _access_token </ span > < span class ="p "> )</ span >
325
+ < span class ="n "> f</ span > < span class ="o "> .</ span > < span class ="n "> write</ span > < span class ="p "> (</ span > < span class ="n "> content </ span > < span class ="p "> )</ span >
311
326
< span class ="n "> os</ span > < span class ="o "> .</ span > < span class ="n "> rename</ span > < span class ="p "> (</ span > < span class ="n "> temp</ span > < span class ="p "> ,</ span > < span class ="n "> cache_file</ span > < span class ="p "> )</ span >
312
- < span class ="k "> except</ span > < span class ="p "> :</ span >
327
+ < span class ="k "> return</ span > < span class ="kc "> True</ span >
328
+ < span class ="k "> except</ span > < span class ="ne "> Exception</ span > < span class ="k "> as</ span > < span class ="n "> e</ span > < span class ="p "> :</ span >
313
329
< span class ="n "> logging</ span > < span class ="o "> .</ span > < span class ="n "> warning</ span > < span class ="p "> (</ span > < span class ="s2 "> "failed to write token cache file: "</ span > < span class ="o "> +</ span > < span class ="n "> cache_file</ span > < span class ="p "> )</ span >
314
- < span class ="k "> return</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _access_token</ span > </ div >
330
+ < span class ="n "> logging</ span > < span class ="o "> .</ span > < span class ="n "> warning</ span > < span class ="p "> (</ span > < span class ="nb "> str</ span > < span class ="p "> (</ span > < span class ="n "> e</ span > < span class ="p "> ))</ span >
331
+ < span class ="k "> raise</ span > < span class ="n "> e</ span >
315
332
316
333
< div class ="viewcode-block " id ="Gen3Auth.get_access_token "> < a class ="viewcode-back " href ="../../auth.html#gen3.auth.Gen3Auth.get_access_token "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> get_access_token</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ):</ span >
317
- < span class ="sd "> """ Get the access token - auto refresh if within 5 minutes of expiration """</ span >
334
+ < span class ="sd "> """Get the access token - auto refresh if within 5 minutes of expiration"""</ span >
318
335
< span class ="k "> if</ span > < span class ="ow "> not</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _access_token</ span > < span class ="p "> :</ span >
319
336
< span class ="n "> cache_file</ span > < span class ="o "> =</ span > < span class ="n "> token_cache_file</ span > < span class ="p "> (</ span >
320
337
< span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _refresh_token</ span > < span class ="ow "> and</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _refresh_token</ span > < span class ="p "> [</ span > < span class ="s2 "> "api_key"</ span > < span class ="p "> ]</ span > < span class ="ow "> or</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _wts_idp</ span >
@@ -324,10 +341,12 @@ <h1>Source code for gen3.auth</h1><div class="highlight"><pre>
324
341
< span class ="k "> with</ span > < span class ="nb "> open</ span > < span class ="p "> (</ span > < span class ="n "> cache_file</ span > < span class ="p "> )</ span > < span class ="k "> as</ span > < span class ="n "> f</ span > < span class ="p "> :</ span >
325
342
< span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _access_token</ span > < span class ="o "> =</ span > < span class ="n "> f</ span > < span class ="o "> .</ span > < span class ="n "> read</ span > < span class ="p "> ()</ span >
326
343
< span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _access_token_info</ span > < span class ="o "> =</ span > < span class ="n "> decode_token</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _access_token</ span > < span class ="p "> )</ span >
327
- < span class ="k "> except</ span > < span class ="p "> :</ span >
344
+ < span class ="k "> except</ span > < span class =" ne " > Exception </ span > < span class =" k " > as </ span > < span class =" n " > e </ span > < span class ="p "> :</ span >
328
345
< span class ="n "> logging</ span > < span class ="o "> .</ span > < span class ="n "> warning</ span > < span class ="p "> (</ span > < span class ="s2 "> "ignoring invalid token cache: "</ span > < span class ="o "> +</ span > < span class ="n "> cache_file</ span > < span class ="p "> )</ span >
329
346
< span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _access_token</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span >
330
347
< span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _access_token_info</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span >
348
+ < span class ="n "> logging</ span > < span class ="o "> .</ span > < span class ="n "> warning</ span > < span class ="p "> (</ span > < span class ="nb "> str</ span > < span class ="p "> (</ span > < span class ="n "> e</ span > < span class ="p "> ))</ span >
349
+
331
350
< span class ="n "> need_new_token</ span > < span class ="o "> =</ span > < span class ="p "> (</ span >
332
351
< span class ="ow "> not</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _access_token</ span >
333
352
< span class ="ow "> or</ span > < span class ="ow "> not</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _access_token_info</ span >
0 commit comments