in src/data_load/load.py [0:0]
def send_request(request_data):
# loop for implementing retries send process
retries = config.getint("CONNECTION", "retries")
for retry in range(retries):
try:
headers = get_headers(config)
# send batch request for creating records
response = requests.post(WORKFLOW_URL, json.dumps(request_data),
headers=headers)
if response.status_code in DATA_LOAD_OK_RESPONSE_CODES:
workflow_response = response.json()
logger.debug(f"Response: {workflow_response}")
logger.info(f"Workflow Submitted: {workflow_response.get('runId')}")
file_logger.info(f"{workflow_response.get('runId')}")
break
reason = response.text[:250]
logger.error(f"Request error.")
logger.error(f"Response status: {response.status_code}. "
f"Response content: {reason}.")
if retry + 1 < retries:
if response.status_code in BAD_TOKEN_RESPONSE_CODES:
logger.error(
f"Error in Request: {headers.get('correlation-id')})")
else:
time_to_sleep = config.getint("CONNECTION", "timeout")
logger.info(f"Retrying in {time_to_sleep} seconds...")
time.sleep(time_to_sleep)
except (requests.RequestException, HTTPError) as exc:
logger.error(f"Unexpected request error. Reason: {exc}")
sys.exit(2)