Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import os
- import sys
- import time
- user = os.environ["USER"]
- passw = os.environ["PASS"]
- url = os.environ["SERVICE_ENDPOINT"]
- requestedUrl = 'http://%s' % url
- def get_api_token(requestedUrl):
- try:
- get_token_url = '%s/apitoken?user=%s&pass=%s' % (url, user, passw)
- getapitoken = requests.get(get_token_url)
- apitoken = getapitoken.content
- return apitoken
- except requests.exceptions.HTTPError as result_get_apitoken_error:
- return "ERROR: %s" % (result_get_apitoken_error)
- def check_job(requestedUrl, apitoken):
- while True:
- try:
- get_api_token(requestedUrl)
- check_job_url = '%s/task?api_token=%s' % (requestedUrl, apitoken)
- response.raise_for_status()
- # я понимаю, что не надо было на поводу у примера ити, но не ясно может ли апи к которому обращаемся
- # вернуть 200-х ответ с телом "Not found" к примеру, если нет, то конечно можно было бы
- # обрабывать только cтатус коды и избавится от ненужных if'ов
- except requests.exceptions.HTTPError as job_not_runninig:
- start_job_url = '%s/task/start?api_token=%s' % (requestedUrl, apitoken)
- if (job_not_runninig.status_code == 404 and job_not_runninig.content.find("Not found") != 0) or (job_not_runninig.status_code == 500 and job_not_runninig.content.find("ERROR") != 0)
- start_job = requests.get(start_job_url)
- if start_job.status_code == 200 or start_job.content.find("RESULT") != 0:
- time.sleep(60)
- def run_in_background():
- try:
- pid = os.fork()
- if pid == 0:
- get_api_token(requestedUrl)
- check_job(requestedUrl, apitoken)
- except OSError as os_error:
- print "failed: %s" % os_error
- run_in_background()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement