[Yum-devel] [PATCH 1/2] shuffle the %s_db compression code. no semantic changes.

Zdeněk Pavlas zpavlas at redhat.com
Wed Oct 24 15:03:04 UTC 2012


---
 createrepo/__init__.py |   78 +++++++++++++++++++++++++----------------------
 1 files changed, 41 insertions(+), 37 deletions(-)

diff --git a/createrepo/__init__.py b/createrepo/__init__.py
index e132257..2c10654 100644
--- a/createrepo/__init__.py
+++ b/createrepo/__init__.py
@@ -987,52 +987,56 @@ class MetaDataGenerator:
                     good_name = '%s.sqlite' % ftype
                     resultpath = os.path.join(repopath, good_name)
 
-                    # compat compression for rhel5 compatibility from fedora :(
-                    compress_type = self.conf.compress_type
-                    if self.compat_compress:
-                        compress_type = 'bz2'
-                        
                     # rename from silly name to not silly name
                     os.rename(tmp_result_path, resultpath)
-                    compressed_name = '%s.%s' % (good_name, compress_type)
-                    result_compressed = os.path.join(repopath, compressed_name)
                     db_csums[ftype] = misc.checksum(sumtype, resultpath)
 
-                    # compress the files
-
-                    compressFile(resultpath, result_compressed, compress_type)
-                    # csum the compressed file
-                    db_compressed_sums[ftype] = misc.checksum(sumtype,
-                                                             result_compressed)
                     # timestamp+size the uncompressed file
                     un_stat = os.stat(resultpath)
-                    # remove the uncompressed file
-                    os.unlink(resultpath)
+                    db_data_type = '%s_db' % ftype
 
-                    if self.conf.unique_md_filenames:
-                        csum_compressed_name = '%s-%s.%s' % (
-                                           db_compressed_sums[ftype], good_name, compress_type)
-                        csum_result_compressed =  os.path.join(repopath,
-                                                           csum_compressed_name)
-                        os.rename(result_compressed, csum_result_compressed)
-                        result_compressed = csum_result_compressed
-                        compressed_name = csum_compressed_name
+                    def compress(compress_type):
+                        # compress the files
+                        compressed_name = '%s.%s' % (good_name, compress_type)
+                        result_compressed = os.path.join(repopath, compressed_name)
+                        compressFile(resultpath, result_compressed, compress_type)
+
+                        # csum the compressed file
+                        db_compressed_sums[ftype] = misc.checksum(sumtype,
+                                                                 result_compressed)
+                        if self.conf.unique_md_filenames:
+                            csum_compressed_name = '%s-%s.%s' % (
+                                               db_compressed_sums[ftype], good_name, compress_type)
+                            csum_result_compressed =  os.path.join(repopath,
+                                                               csum_compressed_name)
+                            os.rename(result_compressed, csum_result_compressed)
+                            result_compressed = csum_result_compressed
+                            compressed_name = csum_compressed_name
+
+                        # timestamp+size the compressed file
+                        db_stat = os.stat(result_compressed)
+
+                        # add this data as a section to the repomdxml
+                        data = RepoData()
+                        data.type = db_data_type
+                        data.location = (self.conf.baseurl, 
+                                  os.path.join(self.conf.finaldir, compressed_name))
+                        data.checksum = (sumtype, db_compressed_sums[ftype])
+                        data.timestamp = str(db_stat.st_mtime)
+                        data.size = str(db_stat.st_size)
+                        data.opensize = str(un_stat.st_size)
+                        data.openchecksum = (sumtype, db_csums[ftype])
+                        data.dbversion = dbversion
+                        return data
 
-                    # timestamp+size the compressed file
-                    db_stat = os.stat(result_compressed)
+                    # compat compression for rhel5 compatibility from fedora :(
+                    compress_type = self.conf.compress_type
+                    if self.compat_compress:
+                        compress_type = 'bz2'
+                    data = compress(compress_type)
 
-                    # add this data as a section to the repomdxml
-                    db_data_type = '%s_db' % ftype
-                    data = RepoData()
-                    data.type = db_data_type
-                    data.location = (self.conf.baseurl, 
-                              os.path.join(self.conf.finaldir, compressed_name))
-                    data.checksum = (sumtype, db_compressed_sums[ftype])
-                    data.timestamp = str(db_stat.st_mtime)
-                    data.size = str(db_stat.st_size)
-                    data.opensize = str(un_stat.st_size)
-                    data.openchecksum = (sumtype, db_csums[ftype])
-                    data.dbversion = dbversion
+                    # remove the uncompressed file
+                    os.unlink(resultpath)
                     if self.conf.verbose:
                         self.callback.log("Ending %s db creation: %s" % (ftype,
                                                                   time.ctime()))
-- 
1.7.4.4



More information about the Yum-devel mailing list