Skip to content

Commit 5f6c844

Browse files
committed
update
1 parent 75288bc commit 5f6c844

File tree

1 file changed

+18
-30
lines changed

1 file changed

+18
-30
lines changed

src/api/handlers/job_api.py

Lines changed: 18 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)