mirror of
https://github.com/truenas/scale-build.git
synced 2025-12-19 18:39:15 +00:00
Retry downloading external deb packages (#957)
This commit is contained in:
@@ -7,6 +7,7 @@ import requests
|
||||
import shutil
|
||||
import stat
|
||||
import tempfile
|
||||
import time
|
||||
|
||||
from scale_build.config import SIGNING_KEY, SIGNING_PASSWORD
|
||||
from scale_build.extensions import build_extensions as do_build_extensions
|
||||
@@ -200,6 +201,7 @@ def download_and_install_deb_package(package_name, download_url, deb_filename, p
|
||||
logger.info(f'Downloading {package_name} from {download_url}')
|
||||
|
||||
# Download the package using requests
|
||||
for retry in itertools.count(1):
|
||||
try:
|
||||
response = requests.get(download_url, stream=True, timeout=60, allow_redirects=True)
|
||||
response.raise_for_status()
|
||||
@@ -212,7 +214,10 @@ def download_and_install_deb_package(package_name, download_url, deb_filename, p
|
||||
|
||||
except requests.exceptions.RequestException as e:
|
||||
logger.error(f'Failed to download {package_name}: {e}')
|
||||
raise RuntimeError(f'Failed to download {package_name} from {download_url}: {e}')
|
||||
if retry >= 5:
|
||||
raise RuntimeError(f'Failed to download {package_name} from {download_url}: {e}') from None
|
||||
else:
|
||||
time.sleep(10)
|
||||
|
||||
# Verify the downloaded file exists and has content
|
||||
if not os.path.exists(deb_path) or os.path.getsize(deb_path) == 0:
|
||||
|
||||
Reference in New Issue
Block a user