[elbe-devel] [PATCH 1/2] hashes debinstaller: use wget for downloads, because of improved feedback
Torben Hohn
torben.hohn at linutronix.de
Wed Nov 21 13:08:04 CET 2018
copyfileobj() does not support progress callbacks. getting progress
reports would require reimplementing it.
Switch from urlopen() / copyfileobj() to system('wget ...')
Signed-off-by: Torben Hohn <torben.hohn at linutronix.de>
---
elbepack/debinstaller.py | 8 +++-----
elbepack/hashes.py | 26 ++++----------------------
2 files changed, 7 insertions(+), 27 deletions(-)
diff --git a/elbepack/debinstaller.py b/elbepack/debinstaller.py
index d251f202..baf8d8d4 100644
--- a/elbepack/debinstaller.py
+++ b/elbepack/debinstaller.py
@@ -116,11 +116,9 @@ def setup_apt_keyring(gpg_home, keyring_fname):
def download(url, local_fname):
try:
- rf = urlopen(url, None, 10)
- with open(local_fname, "w") as wf:
- copyfileobj(rf, wf)
- finally:
- rf.close()
+ system('wget -O "%s" "%s"' % (local_fname, url))
+ except CommandError:
+ raise NoKinitrdException('Failed to download %s' % url)
def download_release(tmp, base_url):
diff --git a/elbepack/hashes.py b/elbepack/hashes.py
index d2dfe053..e32d7456 100644
--- a/elbepack/hashes.py
+++ b/elbepack/hashes.py
@@ -4,21 +4,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
import hashlib
-from shutil import copyfileobj
-
-# different module names in python 2 and 3
-try:
- import urllib.request
-
- # when running inside pylint this import fails
- # disable no-member here
- #
- # pylint: disable=no-member
-
- urlopen = urllib.request.urlopen
-except ImportError:
- import urllib2
- urlopen = urllib2.urlopen
+from elbepack.shellhelper import system, CommandError
class HashValidationFailed(Exception):
@@ -57,13 +43,9 @@ class HashValidator(object):
def download_and_validate_file(self, upstream_fname, local_fname):
url = self.base_url + upstream_fname
- rf = None
try:
- rf = urlopen(url, None, 10)
- with open(local_fname, "w") as wf:
- copyfileobj(rf, wf)
- finally:
- if rf is not None:
- rf.close()
+ system('wget -O "%s" "%s"' % (local_fname, url))
+ except CommandError:
+ raise HashValidationFailed('Failed to download %s' % url)
self.validate_file(upstream_fname, local_fname)
--
2.11.0
More information about the elbe-devel
mailing list