diff options
author | Hedayat Vatankhah <hedayat.fwd@gmail.com> | 2012-06-27 23:50:44 +0430 |
---|---|---|
committer | Hedayat Vatankhah <hedayat.fwd@gmail.com> | 2012-06-27 23:50:44 +0430 |
commit | f835c99f4bffe6a843e65d6045f9ced03470767c (patch) | |
tree | 8e856cb9f3f63ae9c62e4f8ec9801199e45088d6 | |
parent | 1bafa46f6d661307810d1a96806ad1f0827199cd (diff) | |
download | yum-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.py | 65 | ||||
-rw-r--r-- | yum-fast-downloader.spec | 7 |
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 :( |