|
4 | 4 | from bs4 import BeautifulSoup |
5 | 5 | import urllib3 |
6 | 6 | import requests |
| 7 | +import time |
7 | 8 | from datetime import datetime , timedelta |
8 | 9 | import xml.etree.ElementTree as ET |
9 | 10 | import constants |
@@ -586,44 +587,54 @@ def get_quota_and_nightly(spy_link): |
586 | 587 | ''' |
587 | 588 |
|
588 | 589 | _,job_platform = job_classifier(spy_link) |
589 | | - lease = "" |
| 590 | + lease = None |
| 591 | + nightly = None |
| 592 | + max_retries = 3 |
| 593 | + delay = 5 # seconds |
590 | 594 | build_log_url = constants.PROW_VIEW_URL + spy_link[8:] + "/build-log.txt" |
591 | | - try: |
592 | | - build_log_response = requests.get(build_log_url, verify=False, timeout=15) |
593 | | - if 'ppc64le' in spy_link: |
594 | | - if job_platform == "libvirt": |
595 | | - job_platform+="-ppc64le-s2s" |
596 | | - elif job_platform == "powervs": |
597 | | - job_platform+="-[1-9]" |
598 | | - lease = get_lease(build_log_response,job_platform) |
599 | | - nightly = get_nightly(build_log_url,build_log_response, 'ppc64le') |
600 | | - |
601 | | - elif 's390x' in spy_link: |
602 | | - job_platform+="-s390x" |
603 | | - lease = get_lease(build_log_response,job_platform ) |
604 | | - nightly = get_nightly(build_log_url,build_log_response, 's390x') |
605 | | - elif "multi" in spy_link: |
606 | | - if "powervs" in spy_link: |
607 | | - job_platform = "powervs" |
608 | | - job_platform+="-[1-9]" |
609 | | - lease=get_lease(build_log_response,job_platform) |
| 595 | + for attempt in range(1, max_retries + 1): |
| 596 | + try: |
| 597 | + build_log_response = requests.get(build_log_url, verify=False, timeout=15) |
| 598 | + if 'ppc64le' in spy_link: |
| 599 | + if job_platform == "libvirt": |
| 600 | + job_platform += "-ppc64le-s2s" |
| 601 | + elif job_platform == "powervs": |
| 602 | + job_platform += "-[1-9]" |
| 603 | + lease = get_lease(build_log_response, job_platform) |
| 604 | + nightly = get_nightly(build_log_url, build_log_response, 'ppc64le') |
| 605 | + |
| 606 | + elif 's390x' in spy_link: |
| 607 | + job_platform += "-s390x" |
| 608 | + lease = get_lease(build_log_response, job_platform) |
| 609 | + nightly = get_nightly(build_log_url, build_log_response, 's390x') |
| 610 | + |
| 611 | + elif "multi" in spy_link: |
| 612 | + if "powervs" in spy_link: |
| 613 | + job_platform = "powervs-[1-9]" |
| 614 | + lease = get_lease(build_log_response, job_platform) |
| 615 | + else: |
| 616 | + job_platform = "multi" |
| 617 | + lease = get_lease(build_log_response, 'libvirt-ppc64le-s2s') |
| 618 | + nightly = get_nightly(build_log_url, build_log_response, "multi") |
| 619 | + |
| 620 | + elif "mce" in spy_link: |
| 621 | + job_platform = "aws" |
| 622 | + lease = get_lease(build_log_response, job_platform) |
| 623 | + nightly = get_nightly(build_log_url, build_log_response, "multi") |
| 624 | + |
610 | 625 | else: |
611 | | - job_platform="multi" |
612 | | - lease=get_lease(build_log_response,'libvirt-ppc64le-s2s') |
613 | | - nightly = get_nightly(build_log_url,build_log_response, "multi") |
614 | | - |
615 | | - elif "mce" in spy_link: |
616 | | - job_platform = "aws" |
617 | | - lease = get_lease(build_log_response,job_platform ) |
618 | | - nightly = get_nightly(build_log_url,build_log_response, "multi") |
619 | | - else: |
620 | | - # lease is not applicable for SNO |
621 | | - nightly = get_nightly(build_log_url,build_log_response, "multi") |
622 | | - return lease, nightly |
623 | | - except requests.Timeout: |
624 | | - return "Request timed out" |
625 | | - except requests.RequestException: |
626 | | - return "Error while sending request to url" |
| 626 | + # lease is not applicable for SNO |
| 627 | + nightly = get_nightly(build_log_url, build_log_response, "multi") |
| 628 | + |
| 629 | + break # If successful, break out of retry loop |
| 630 | + |
| 631 | + except (requests.Timeout, requests.RequestException) as e: |
| 632 | + if attempt == max_retries - 1: |
| 633 | + print(f"Request failed after {max_retries} attempts: {e}") |
| 634 | + else: |
| 635 | + time.sleep(delay) |
| 636 | + |
| 637 | + return lease, nightly |
627 | 638 |
|
628 | 639 | def job_classifier(spy_link): |
629 | 640 |
|
|
0 commit comments