[yum-commits] Branch 'yum-3_2_X' - yum/yumRepo.py

skvidal at osuosl.org skvidal at osuosl.org
Mon Sep 28 12:01:10 UTC 2009


 yum/yumRepo.py |   32 ++++++++++++++++++++++----------
 1 file changed, 22 insertions(+), 10 deletions(-)

New commits:
commit 683ca85ff4f773112ff5df1f52928cde86c9fa86
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Fri Sep 25 16:17:29 2009 -0400

    add sizes to all getFile calls.
    this sets a max size for repomd.xml and repomd.xml.asc to 100K, which
    is probably reasonable

diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index bdca2ad..ea8518a 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -713,7 +713,8 @@ class YumRepository(Repository, config.RepoConf):
                              fdel=lambda self: setattr(self, "_metalink", None))
 
     def _getFile(self, url=None, relative=None, local=None, start=None, end=None,
-            copy_local=None, checkfunc=None, text=None, reget='simple', cache=True):
+            copy_local=None, checkfunc=None, text=None, reget='simple', 
+            cache=True, size=None):
         """retrieve file from the mirrorgroup for the repo
            relative to local, optionally get range from
            start to end, also optionally retrieve from a specific baseurl"""
@@ -785,7 +786,8 @@ class YumRepository(Repository, config.RepoConf):
                             ssl_verify_host=self.sslverify,
                             ssl_ca_cert=self.sslcacert,
                             ssl_cert=self.sslclientcert,
-                            ssl_key=self.sslclientkey                            
+                            ssl_key=self.sslclientkey,
+                            size=size
                             )
 
             ug.opts.user_agent = default_grabber.opts.user_agent
@@ -817,6 +819,7 @@ class YumRepository(Repository, config.RepoConf):
                                            reget = reget,
                                            checkfunc=checkfunc,
                                            http_headers=headers,
+                                           size=size
                                            )
             except URLGrabError, e:
                 errstr = "failure: %s from %s: %s" % (relative, self.id, e)
@@ -828,7 +831,7 @@ class YumRepository(Repository, config.RepoConf):
         return result
     __get = _getFile
 
-    def getPackage(self, package, checkfunc = None, text = None, cache = True):
+    def getPackage(self, package, checkfunc=None, text=None, cache=True):
         remote = package.relativepath
         local = package.localPkg()
         basepath = package.basepath
@@ -843,7 +846,8 @@ class YumRepository(Repository, config.RepoConf):
                         local=local,
                         checkfunc=checkfunc,
                         text=text,
-                        cache=cache
+                        cache=cache,
+                        size=package.size,
                         )
 
     def getHeader(self, package, checkfunc = None, reget = 'simple',
@@ -853,6 +857,7 @@ class YumRepository(Repository, config.RepoConf):
         local =  package.localHdr()
         start = package.hdrstart
         end = package.hdrend
+        size = end-start
         basepath = package.basepath
         # yes, I know, don't ask
         if not os.path.exists(self.hdrdir):
@@ -860,7 +865,7 @@ class YumRepository(Repository, config.RepoConf):
 
         return self._getFile(url=basepath, relative=remote, local=local, start=start,
                         reget=None, end=end, checkfunc=checkfunc, copy_local=1,
-                        cache=cache,
+                        cache=cache, size=size,
                         )
 
     def metadataCurrent(self):
@@ -989,7 +994,8 @@ class YumRepository(Repository, config.RepoConf):
                                    text=text,
                                    reget=None,
                                    checkfunc=checkfunc,
-                                   cache=self.http_caching == 'all')
+                                   cache=self.http_caching == 'all',
+                                   size=102400) # setting max size as 100K
 
         except URLGrabError, e:
             misc.unlink_f(tfname)
@@ -1422,7 +1428,8 @@ class YumRepository(Repository, config.RepoConf):
                                        text='%s/signature' % self.id,
                                        reget=None,
                                        checkfunc=None,
-                                       cache=self.http_caching == 'all')
+                                       cache=self.http_caching == 'all',
+                                       size=102400)
             except URLGrabError, e:
                 raise URLGrabError(-1, 'Error finding signature for repomd.xml for %s: %s' % (self, e))
 
@@ -1536,9 +1543,14 @@ class YumRepository(Repository, config.RepoConf):
         try:
             checkfunc = (self.checkMD, (mdtype,), {})
             text = "%s/%s" % (self.id, mdtype)
-            local = self._getFile(relative=remote, local=local, copy_local=1,
-                             checkfunc=checkfunc, reget=None, text=text,
-                             cache=self.http_caching == 'all')
+            local = self._getFile(relative=remote,
+                                  local=local, 
+                                  copy_local=1,
+                                  checkfunc=checkfunc, 
+                                  reget=None, 
+                                  text=text,
+                                  cache=self.http_caching == 'all',
+                                  size=thisdata.size)
         except (Errors.NoMoreMirrorsRepoError, Errors.RepoError):
             if retrieve_can_fail:
                 return None


More information about the Yum-commits mailing list