@@ -69,8 +69,7 @@ def get_token_by_app_role(self):
6969 return self .token
7070 time .sleep (5 )
7171 err_msg = "Getting token from Vault error even tried 10 times, url is {}, API response is {}:{}" .format (app_role_url , res .status_code , res .text )
72- raise Exception (err_msg )
73- # abort(400, err_msg)
72+ abort (400 , err_msg )
7473
7574 def get_policies (self , token ):
7675 """Return the policies associated with the provided token."""
@@ -137,34 +136,23 @@ def _get_api_url(self, secret_path):
137136 return url
138137
139138 def get_value_from_vault (self , token , secret_path , secret_key , verify ):
140- url = self ._get_api_url (secret_path )
141- for i in range (0 , 10 ):
142- response = requests .get (url = url , headers = {'X-Vault-Token' : token }, verify = verify , timeout = 30 )
143- if response .status_code == 200 :
144- body = response .content
145- if not body :
146- logger .debug ('Empty body from Vault for url %s (attempt %d)' , url , i )
147- time .sleep (5 )
148- continue
149- try :
150- json_res = json .loads (body )
151- except Exception :
152- logger .info ('Non-JSON response from Vault at %s (attempt %d): %s' , url , i , body )
153- time .sleep (5 )
154- continue
155-
156- data_field = json_res .get ('data' , {})
157- if isinstance (data_field , dict ) and data_field .get ('data' ) and isinstance (data_field .get ('data' ), dict ):
158- value = data_field .get ('data' ).get (secret_key )
159- else :
160- value = data_field .get (secret_key )
161- return value
162-
163- logger .debug ('Vault returned status %s for %s (attempt %d)' , response .status_code , url , i )
164- time .sleep (5 )
165-
166- err_msg = "Getting value from Vault error even tried 10 times, url is {}, API response is {}:{}" .format (url , getattr (response , 'status_code' , None ), getattr (response , 'text' , None ))
167- raise Exception (err_msg )
139+ try :
140+ url = self ._get_api_url (secret_path )
141+ for i in range (0 , 10 ):
142+ response = requests .get (url = url , headers = {'X-Vault-Token' : token }, verify = verify , timeout = 30 )
143+ if response .status_code == 200 :
144+ json_res = json .loads (response .content )
145+ if json_res ['data' ].get ('data' ) and isinstance (json_res ['data' ].get ('data' ), dict ):
146+ value = json_res ['data' ].get ('data' ).get (secret_key )
147+ else :
148+ value = json_res ['data' ].get (secret_key )
149+ return value
150+ time .sleep (5 )
151+ err_msg = "Getting value from Vault error even tried 10 times, url is {}, API response is {}:{}" .format (url , response .status_code , response .text )
152+ abort (400 , err_msg )
153+ except Exception as e :
154+ err_msg = "Getting value from Vault exception: {}, url is {}" .format (str (e ), url )
155+ abort (400 , err_msg )
168156
169157
170158@api .route ("/api/job/job" , doc = False )
0 commit comments