From: Seth Vidal Date: Fri, 17 Apr 2009 18:34:40 +0000 (-0400) Subject: set a max size option so we don't kill systems with < memory than deltarpm likes... X-Git-Tag: upstream/0.9.9~67 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0c27a14009cdeb546c951a1744b7d2ee9dfdf2e6;p=tools%2Fcreaterepo.git set a max size option so we don't kill systems with < memory than deltarpm likes to use. --- diff --git a/createrepo/__init__.py b/createrepo/__init__.py index 0d44627..00c14da 100644 --- a/createrepo/__init__.py +++ b/createrepo/__init__.py @@ -24,6 +24,7 @@ import shutil from bz2 import BZ2File from urlgrabber import grabber import tempfile +import stat from yum import misc, Errors, to_unicode from yum.sqlutils import executeSQL @@ -71,6 +72,7 @@ class MetaDataConfig(object): self.oldpackage_paths = [] # where to look for the old packages - self.deltafile = 'prestodelta.xml.gz' self.num_deltas = 1 # number of older versions to delta (max) + self.max_delta_rpm_size = 100000000 self.update_md_path = None self.skip_stat = False self.database = False @@ -584,6 +586,13 @@ class MetaDataGenerator: """makes the drpms, if possible, for this package object. returns the presto/delta xml metadata as a string """ + + # duck and cover if the pkg.size is > whatever + if int(pkg.size) > self.conf.max_delta_rpm_size: + if not self.conf.quiet: + self.callback.log("Skipping %s package " \ + "that is > max_delta_rpm_size" % pkg) + return # generate a list of all the potential 'old rpms' opd = self._get_old_package_dict() # yes I could make this a property but @@ -628,6 +637,11 @@ class MetaDataGenerator: opl = [] for d in self.conf.oldpackage_paths: for f in self.getFileList(d, 'rpm'): + fp = d + '/' + f + if int(os.stat(fp)[stat.ST_SIZE]) > self.conf.max_delta_rpm_size: + self.callback.log("Skipping %s package " \ + "that is > max_delta_rpm_size" % pkg) + continue if not self._old_package_dict.has_key(d): self._old_package_dict[d] = [] self._old_package_dict[d].append(d + '/' + f)