[Yum-devel] [PATCH] use reget=check_timestamp when downloading repomd.xml
Zdeněk Pavlas
zpavlas at redhat.com
Fri Jun 22 11:40:50 UTC 2012
This is not significantly faster than always downloading the
whole file (repomd.xml is typically about 3kB), we just save
the bandwidth.
With reget on, urlgrabber does not touch the local file
on (most of) failures hence no reverting is needed.
Won't work with older urlgrabber which raises NotImplemented.
Needs to bump Requires: in .spec
---
yum/yumRepo.py | 20 ++------------------
1 files changed, 2 insertions(+), 18 deletions(-)
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 14f6d5f..2d8a1ba 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -1090,41 +1090,25 @@ Insufficient space in download directory %s
checkfunc = (self._checkRepoXML, (), {})
if grab_can_fail is None:
grab_can_fail = 'old_repo_XML' in self._oldRepoMDData
- tfname = ''
try:
- # This is named so that "yum clean metadata" picks it up
- tfname = tempfile.mktemp(prefix='repomd', suffix="tmp.xml",
- dir=os.path.dirname(local))
result = self._getFile(relative=self.repoMDFile,
- local=tfname,
+ local=local,
copy_local=1,
text=text,
- reget=None,
+ reget='check_timestamp',
checkfunc=checkfunc,
cache=self.http_caching == 'all',
size=102400) # setting max size as 100K
except URLGrabError, e:
- misc.unlink_f(tfname)
if grab_can_fail:
return None
raise Errors.RepoError, 'Error downloading file %s: %s' % (local, e)
except Errors.RepoError:
- misc.unlink_f(tfname)
if grab_can_fail:
return None
raise
- # This should always work...
- try:
- os.rename(result, local)
- except:
- # But in case it doesn't...
- misc.unlink_f(tfname)
- if grab_can_fail:
- return None
- raise Errors.RepoError, 'Error renaming file %s to %s' % (result,
- local)
return local
def _parseRepoXML(self, local, parse_can_fail=None):
--
1.7.4.4
More information about the Yum-devel
mailing list