|
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 |
@@ -572,44 +573,54 @@ def get_quota_and_nightly(spy_link): |
572 | 573 | ''' |
573 | 574 |
|
574 | 575 | _,job_platform = job_classifier(spy_link) |
575 | | - lease = "" |
| 576 | + lease = None |
| 577 | + nightly = None |
| 578 | + max_retries = 3 |
| 579 | + delay = 5 # seconds |
576 | 580 | build_log_url = constants.PROW_VIEW_URL + spy_link[8:] + "/build-log.txt" |
577 | | - try: |
578 | | - build_log_response = requests.get(build_log_url, verify=False, timeout=15) |
579 | | - if 'ppc64le' in spy_link: |
580 | | - if job_platform == "libvirt": |
581 | | - job_platform+="-ppc64le-s2s" |
582 | | - elif job_platform == "powervs": |
583 | | - job_platform+="-[1-9]" |
584 | | - lease = get_lease(build_log_response,job_platform) |
585 | | - nightly = get_nightly(build_log_url,build_log_response, 'ppc64le') |
586 | | - |
587 | | - elif 's390x' in spy_link: |
588 | | - job_platform+="-s390x" |
589 | | - lease = get_lease(build_log_response,job_platform ) |
590 | | - nightly = get_nightly(build_log_url,build_log_response, 's390x') |
591 | | - elif "multi" in spy_link: |
592 | | - if "powervs" in spy_link: |
593 | | - job_platform = "powervs" |
594 | | - job_platform+="-[1-9]" |
595 | | - lease=get_lease(build_log_response,job_platform) |
| 581 | + for attempt in range(1, max_retries + 1): |
| 582 | + try: |
| 583 | + build_log_response = requests.get(build_log_url, verify=False, timeout=15) |
| 584 | + if 'ppc64le' in spy_link: |
| 585 | + if job_platform == "libvirt": |
| 586 | + job_platform += "-ppc64le-s2s" |
| 587 | + elif job_platform == "powervs": |
| 588 | + job_platform += "-[1-9]" |
| 589 | + lease = get_lease(build_log_response, job_platform) |
| 590 | + nightly = get_nightly(build_log_url, build_log_response, 'ppc64le') |
| 591 | + |
| 592 | + elif 's390x' in spy_link: |
| 593 | + job_platform += "-s390x" |
| 594 | + lease = get_lease(build_log_response, job_platform) |
| 595 | + nightly = get_nightly(build_log_url, build_log_response, 's390x') |
| 596 | + |
| 597 | + elif "multi" in spy_link: |
| 598 | + if "powervs" in spy_link: |
| 599 | + job_platform = "powervs-[1-9]" |
| 600 | + lease = get_lease(build_log_response, job_platform) |
| 601 | + else: |
| 602 | + job_platform = "multi" |
| 603 | + lease = get_lease(build_log_response, 'libvirt-ppc64le-s2s') |
| 604 | + nightly = get_nightly(build_log_url, build_log_response, "multi") |
| 605 | + |
| 606 | + elif "mce" in spy_link: |
| 607 | + job_platform = "aws" |
| 608 | + lease = get_lease(build_log_response, job_platform) |
| 609 | + nightly = get_nightly(build_log_url, build_log_response, "multi") |
| 610 | + |
596 | 611 | else: |
597 | | - job_platform="multi" |
598 | | - lease=get_lease(build_log_response,'libvirt-ppc64le-s2s') |
599 | | - nightly = get_nightly(build_log_url,build_log_response, "multi") |
600 | | - |
601 | | - elif "mce" in spy_link: |
602 | | - job_platform = "aws" |
603 | | - lease = get_lease(build_log_response,job_platform ) |
604 | | - nightly = get_nightly(build_log_url,build_log_response, "multi") |
605 | | - else: |
606 | | - # lease is not applicable for SNO |
607 | | - nightly = get_nightly(build_log_url,build_log_response, "multi") |
608 | | - return lease, nightly |
609 | | - except requests.Timeout: |
610 | | - return "Request timed out" |
611 | | - except requests.RequestException: |
612 | | - return "Error while sending request to url" |
| 612 | + # lease is not applicable for SNO |
| 613 | + nightly = get_nightly(build_log_url, build_log_response, "multi") |
| 614 | + |
| 615 | + break # If successful, break out of retry loop |
| 616 | + |
| 617 | + except (requests.Timeout, requests.RequestException) as e: |
| 618 | + if attempt == max_retries - 1: |
| 619 | + print(f"Request failed after {max_retries} attempts: {e}") |
| 620 | + else: |
| 621 | + time.sleep(delay) |
| 622 | + |
| 623 | + return lease, nightly |
613 | 624 |
|
614 | 625 | def job_classifier(spy_link): |
615 | 626 |
|
|
0 commit comments