[PATCH 6/6] Use the new splittree method of dynamic srpm cd splitting

Jesse Keating jkeating at redhat.com
Mon May 18 22:40:57 UTC 2009


---
 src/pypungi/__init__.py  |   19 ++++++-------------
 src/pypungi/splittree.py |    6 +++---
 2 files changed, 9 insertions(+), 16 deletions(-)

diff --git a/src/pypungi/__init__.py b/src/pypungi/__init__.py
index e4785ab..55e793e 100644
--- a/src/pypungi/__init__.py
+++ b/src/pypungi/__init__.py
@@ -952,7 +952,6 @@ class Pungi(pypungi.PungiBase):
         timber.target_size = self.config.getfloat('pungi', 'cdsize') * 1024 * 1024
         #timber.total_discs = self.config.getint('pungi', 'discs')
         #timber.bin_discs = self.config.getint('pungi', 'discs')
-        timber.src_discs = self.config.getint('pungi', 'discs')
         #timber.release_str = '%s %s' % (self.config.get('pungi', 'name'), self.config.get('pungi', 'version'))
         #timber.package_order_file = os.path.join(self.config.get('pungi', 'destdir'), 'pkgorder-%s' % self.config.get('pungi', 'arch'))
         timber.dist_dir = os.path.join(self.config.get('pungi', 'destdir'),
@@ -965,18 +964,6 @@ class Pungi(pypungi.PungiBase):
                                       'source', 'SRPMS')
         #timber.product_path = self.config.get('pungi', 'product_path')
         #timber.reserve_size =  
-        # Set this ourselves, for creating our dirs ourselves
-        timber.src_list = range(1, timber.src_discs + 1)
-
-        # this is stolen from splittree.py in anaconda-runtime.  Blame them if its ugly (:
-        for i in range(timber.src_list[0], timber.src_list[-1] + 1):
-                pypungi.util._ensuredir('%s-disc%d/SRPMS' % (timber.dist_dir, i),
-                                   self.logger,
-                                   force=self.config.getboolean('pungi', 'force'),
-                                   clean=True)
-                timber.linkFiles(timber.dist_dir,
-                               "%s-disc%d" %(timber.dist_dir, i),
-                               timber.common_files)
 
         self.logger.info("Splitting SRPMs")
         timber.splitSRPMS()
@@ -1169,6 +1156,12 @@ cost=500
             discs = 0
             if self.config.get('pungi', 'arch') == 'source':
                 self.doSplitSRPMs()
+                dirs = os.listdir(self.archdir)
+                for dir in dirs:
+                    if dir.startswith('%s-disc' % os.path.basename(self.topdir)):
+                        discs += 1
+                # Set the number of discs for future use
+                self.config.set('pungi', 'discs', str(discs))
             else:
                 self.doPackageorder()
                 self.doSplittree()
diff --git a/src/pypungi/splittree.py b/src/pypungi/splittree.py
index 7cb3d75..6556476 100644
--- a/src/pypungi/splittree.py
+++ b/src/pypungi/splittree.py
@@ -443,15 +443,15 @@ self.reserve_size : Additional size needed to be reserved on the first disc.
                 # We couldn't find a disc to fit on, make a new one
                 self.src_list.append(self.src_list[-1] + 1)
                 self.createSRPMSplitDir()
-                fit = src_list[-1]
+                fit = self.src_list[-1]
 
             # now link the srpm to the disc we found (or created) that had room
             os.link("%s/%s" % (self.src_dir, srpm_list[i][1]),
                     "%s-disc%d/SRPMS/%s" % (self.dist_dir, fit, srpm_list[i][1]))
             src_dict[fit] = src_dict.setdefault(fit, 0) + srpmsize
         
-        for i in range(0, len(src_list)):
-            self.reportSizes(src_list[i])
+        for i in range(0, len(self.src_list)):
+            self.reportSizes(self.src_list[i])
 
 
     def main(self):
-- 
1.6.2.2



More information about the rel-eng mailing list