summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHedayat Vatankhah <hedayat.fwd@gmail.com>2012-06-27 23:50:44 +0430
committerHedayat Vatankhah <hedayat.fwd@gmail.com>2012-06-27 23:50:44 +0430
commitf835c99f4bffe6a843e65d6045f9ced03470767c (patch)
tree8e856cb9f3f63ae9c62e4f8ec9801199e45088d6
parent1bafa46f6d661307810d1a96806ad1f0827199cd (diff)
downloadyum-fast-downloader-f835c99f4bffe6a843e65d6045f9ced03470767c.tar.gz
yum-fast-downloader-f835c99f4bffe6a843e65d6045f9ced03470767c.tar.xz
yum-fast-downloader-f835c99f4bffe6a843e65d6045f9ced03470767c.zip
Updated for new urlgrabber options
-rw-r--r--yum-fast-downloader.py65
-rw-r--r--yum-fast-downloader.spec7
2 files changed, 58 insertions, 14 deletions
diff --git a/yum-fast-downloader.py b/yum-fast-downloader.py
index 49e9918..c469dab 100644
--- a/yum-fast-downloader.py
+++ b/yum-fast-downloader.py
@@ -109,10 +109,9 @@ def downloadQueuedFiles(inputFileName):
"{0} exited with exit code: {1}".format(downloader_app, ret))
# Hooks!
-
# Written looking at yum's _retrieveMD implementation. Most parts have
# beed directly grabbed from that.
-def myRetrieveMD(self, mdtype, retrieve_can_fail=False):
+def myRetrieveMD(self, mdtype, retrieve_can_fail=False, **kwargs):
""" replace's yum's default _retrieveMD function to use a downloader """
# calls original function on return to make sure that everything is OK
thisdata = self.repoXML.getData(mdtype)
@@ -122,22 +121,64 @@ def myRetrieveMD(self, mdtype, retrieve_can_fail=False):
local = self.cachedir + '/' + fname
if self.retrieved.get(mdtype):
- # got it, move along
- return originalRetrieveMD(self, mdtype, retrieve_can_fail)
+ # got it, move along #maybe "local"
+ return originalRetrieveMD(self, mdtype, retrieve_can_fail, **kwargs)
if self.cache == 1:
- return originalRetrieveMD(self, mdtype, retrieve_can_fail)
+ if os.path.exists(local):
+ try:
+ self.checkMD(local, mdtype)
+ except URLGrabError, e:
+ raise Errors.RepoError, \
+ "Caching enabled and local cache: %s does not match checksum" % local
+ else:
+ return originalRetrieveMD(self, mdtype, retrieve_can_fail, **kwargs)
+
+ else: # ain't there - raise
+ raise Errors.RepoError, \
+ "Caching enabled but no local cache of %s from %s" % (local,
+ self)
if (os.path.exists(local) or
self._preload_md_from_system_cache(os.path.basename(local))):
if self._checkMD(local, mdtype, check_can_fail=True):
- return originalRetrieveMD(self, mdtype, retrieve_can_fail)
-
- if thisdata.size and os.path.exists(local):
- if os.stat(local).st_size >= int(thisdata.size):
- yum.misc.unlink_f(local)
- downloadFile(self.urls, remote, local, self.proxy_dict)
- return originalRetrieveMD(self, mdtype, retrieve_can_fail)
+ self.retrieved[mdtype] = 1
+ # it's the same return the local one
+ return originalRetrieveMD(self, mdtype, retrieve_can_fail, **kwargs)
+
+ try:
+ def checkfunc(obj):
+ self.checkMD(obj, mdtype)
+ self.retrieved[mdtype] = 1
+ text = "%s/%s" % (self.id, mdtype)
+ if thisdata.size is None:
+ reget = None
+ else:
+ reget = 'simple'
+ if os.path.exists(local):
+ if os.stat(local).st_size >= int(thisdata.size):
+ misc.unlink_f(local)
+ downloadFile(self.urls, remote, local, self.proxy_dict)
+# local = self._getFile(relative=remote,
+# local=local,
+# copy_local=1,
+# reget=reget,
+# checkfunc=checkfunc,
+# text=text,
+# cache=self.http_caching == 'all',
+# size=thisdata.size,
+# **kwargs)
+ except Errors.RepoError:
+ if retrieve_can_fail:
+ return None
+ raise
+ except URLGrabError, e:
+ if retrieve_can_fail:
+ return None
+ raise Errors.RepoError, \
+ "Could not retrieve %s matching remote checksum from %s" % (local, self)
+ else:
+ return originalRetrieveMD(self, mdtype, retrieve_can_fail, **kwargs)
def postconfig_hook(conduit):
global downloader_app
diff --git a/yum-fast-downloader.spec b/yum-fast-downloader.spec
index f2d283c..439f674 100644
--- a/yum-fast-downloader.spec
+++ b/yum-fast-downloader.spec
@@ -1,7 +1,7 @@
Summary: A fast downloader plugin for yum
Name: yum-fast-downloader
-Version: 0.5.9
-Release: 2
+Version: 0.5.10
+Release: 1
License: GPLv2+
Group: System Environment/Base
Source: %{name}-%{version}.tar.bz2
@@ -34,6 +34,9 @@ install -m 755 %{name}-finalize $RPM_BUILD_ROOT/usr/libexec/
/usr/libexec/*
%changelog
+* Wed Jun 27 2012 Hedayat Vatankhah <hedayat.fwd+rpmchlog@gmail.com> - 0.5.10-1
+- Update for the latest urlgrabber options
+
* Mon Jun 04 2012 Hedayat Vatankhah <hedayat.fwd+rpmchlog@gmail.com> - 0.5.9-2
- Bump release, since the previous release was using Fedora 14 code :(