From d9377dce9a36c463d2c0ccd31b82befb5ae860b2 Mon Sep 17 00:00:00 2001 From: Michael Calmer Date: Wed, 31 Aug 2022 12:04:58 +0200 Subject: [PATCH] re-try to download the binary on connection error --- obs_maven/repo.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/obs_maven/repo.py b/obs_maven/repo.py index cbc692e..9221a97 100644 --- a/obs_maven/repo.py +++ b/obs_maven/repo.py @@ -79,9 +79,19 @@ def get_binary(self, path, target, mtime): """ url = self.get_repo_path(path) logging.debug("Getting binary from: %s", url) - f = urllib.request.urlopen(url) - target_f = open(target, "wb") - shutil.copyfileobj(f, target_f) - target_f.close() - f.close() - os.utime(target, (mtime, mtime)) + for cnt in range(1, 4): + try: + f = urllib.request.urlopen(url) + target_f = open(target, "wb") + shutil.copyfileobj(f, target_f) + target_f.close() + f.close() + os.utime(target, (mtime, mtime)) + break + except ConnectionResetError: + target_f.close() + f.close() + if cnt < 3: + logging.debug("Getting binary try {}".format(cnt + 1)) + else: + raise