]> git.ipfire.org Git - pakfire.git/commitdiff
packages: Replace old downloader code with new one
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 7 Dec 2016 20:42:25 +0000 (21:42 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 7 Dec 2016 20:42:25 +0000 (21:42 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/packages/installed.py

index 96a0299339ef4c0e144aa72cc4385e85c9fb0068..d93cefd94012775043ee43d032cea281624e8a98 100644 (file)
@@ -23,6 +23,8 @@ import os
 
 import pakfire.filelist
 
+from .. import http
+
 from .base import Package
 from .file import BinaryPackage
 
@@ -300,27 +302,11 @@ class DatabasePackage(Package):
                                cache.remove(cache_filename)
 
                if download:
-                       # Make sure filename is of type string (and not unicode)
-                       filename = str(self.filename)
-
-                       # Get a package grabber and add mirror download capabilities to it.
-                       grabber = pakfire.downloader.PackageDownloader(
-                               text=text + os.path.basename(filename),
-                       )
-                       grabber = self.repo.mirrors.group(grabber)
-
-                       i = grabber.urlopen(filename)
-
-                       # Open input and output files and download the file.
-                       o = cache.open(cache_filename, "w")
-
-                       buf = i.read(BUFFER_SIZE)
-                       while buf:
-                               o.write(buf)
-                               buf = i.read(BUFFER_SIZE)
+                       downloader = http.Client()
+                       for mirror in self.repo.mirrors.all:
+                               downloader.add_mirror(mirror.url)
 
-                       i.close()
-                       o.close()
+                       downloader.retrieve(filename, filename=cache_filename)
 
                        # Verify if the download was okay.
                        if not cache.verify(cache_filename, self.hash1):