Advertisement
Guest User

Untitled

a guest
Nov 24th, 2016
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. import requests
  2. import os
  3. import sys
  4. import time
  5.  
  6. user = os.environ["USER"]
  7. passw = os.environ["PASS"]
  8. url = os.environ["SERVICE_ENDPOINT"]
  9. requestedUrl = 'http://%s' % url
  10.  
  11. def get_api_token(requestedUrl):
  12. try:
  13. get_token_url = '%s/apitoken?user=%s&pass=%s' % (url, user, passw)
  14. getapitoken = requests.get(get_token_url)
  15. apitoken = getapitoken.content
  16. return apitoken
  17. except requests.exceptions.HTTPError as result_get_apitoken_error:
  18. return "ERROR: %s" % (result_get_apitoken_error)
  19.  
  20. def check_job(requestedUrl, apitoken):
  21. while True:
  22. try:
  23. get_api_token(requestedUrl)
  24. check_job_url = '%s/task?api_token=%s' % (requestedUrl, apitoken)
  25. response.raise_for_status()
  26. # я понимаю, что не надо было на поводу у примера ити, но не ясно может ли апи к которому обращаемся
  27. # вернуть 200-х ответ с телом "Not found" к примеру, если нет, то конечно можно было бы
  28. # обрабывать только cтатус коды и избавится от ненужных if'ов
  29. except requests.exceptions.HTTPError as job_not_runninig:
  30. start_job_url = '%s/task/start?api_token=%s' % (requestedUrl, apitoken)
  31. 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)
  32. start_job = requests.get(start_job_url)
  33. if start_job.status_code == 200 or start_job.content.find("RESULT") != 0:
  34. time.sleep(60)
  35.  
  36. def run_in_background():
  37. try:
  38. pid = os.fork()
  39. if pid == 0:
  40. get_api_token(requestedUrl)
  41. check_job(requestedUrl, apitoken)
  42. except OSError as os_error:
  43. print "failed: %s" % os_error
  44.  
  45. run_in_background()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement