@@ -50,10 +50,9 @@ def login(username=None, phone=None, password=None, bohrium_url=None):
5050 password = config ["password" ]
5151 if bohrium_url is None :
5252 bohrium_url = config ["bohrium_url" ]
53- if config ["authorization" ] is None :
54- config ["authorization" ] = _login (
55- bohrium_url + "/account/login" , username , phone , password )
56- update_headers ()
53+ config ["authorization" ] = _login (
54+ bohrium_url + "/account/login" , username , phone , password )
55+ update_headers ()
5756 return config ["authorization" ]
5857
5958
@@ -290,7 +289,7 @@ def __getstate__(self):
290289 def __setstate__ (self , d ):
291290 self .__dict__ .update (d )
292291
293- def get_token (self ):
292+ def get_token (self , retry = 1 ):
294293 import requests
295294 url = self .bohrium_url + "/brm/v1/storage/token"
296295 headers = {
@@ -309,6 +308,10 @@ def get_token(self):
309308 headers ["Authorization" ] = "Bearer " + self .authorization
310309 rsp = requests .get (url , headers = headers , params = params )
311310 if not rsp .text :
311+ if retry > 0 :
312+ self .authorization = None
313+ self .get_token (retry = retry - 1 )
314+ return
312315 raise RuntimeError ("Bohrium unauthorized" )
313316 res = json .loads (rsp .text )
314317 _raise_error (res , "get storage token" )
0 commit comments