[Rpm-metadata] [PATCH 1/2] 728584 - cleanup temporary files in /var/tmp on exit

Mike McLean mikem at redhat.com
Mon Dec 7 21:14:04 UTC 2015


From: Miroslav Suchý <msuchy at redhat.com>

---
 createrepo/__init__.py     | 14 ++++++--------
 createrepo/merge.py        |  1 +
 createrepo/readMetadata.py |  7 +++++++
 genpkgmetadata.py          |  6 ++++++
 4 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/createrepo/__init__.py b/createrepo/__init__.py
index 517ea04..0bd332a 100644
--- a/createrepo/__init__.py
+++ b/createrepo/__init__.py
@@ -1475,18 +1475,16 @@ class MetaDataGenerator:
                     msg = _('Could not restore old non-metadata file: %s -> %s') % (oldfile, finalfile)
                     msg += _('Error was %s') % e
                     raise MDError, msg
-
-        self._cleanup_tmp_repodata_dir()
-        self._cleanup_update_tmp_dir()        
         self._write_out_read_pkgs_list()
 
 
+    def cleanup(self):
+        self._cleanup_tmp_repodata_dir()
+        self._cleanup_update_tmp_dir()
+
     def _cleanup_update_tmp_dir(self):
-        if not self.conf.update:
-            return
-        
-        shutil.rmtree(self.oldData._repo.basecachedir, ignore_errors=True)
-        shutil.rmtree(self.oldData._repo.base_persistdir, ignore_errors=True)
+        if self.conf.update:
+            self.oldData.cleanup()
         
     def _write_out_read_pkgs_list(self):
         # write out the read_pkgs_list file with self.read_pkgs
diff --git a/createrepo/merge.py b/createrepo/merge.py
index 7f03c6a..a9f2139 100644
--- a/createrepo/merge.py
+++ b/createrepo/merge.py
@@ -147,3 +147,4 @@ class RepoMergeBase:
         mdgen.doPkgMetadata()
         mdgen.doRepoMetadata()
         mdgen.doFinalMove()
+        mdgen.cleanup()
diff --git a/createrepo/readMetadata.py b/createrepo/readMetadata.py
index 30781da..21796d0 100644
--- a/createrepo/readMetadata.py
+++ b/createrepo/readMetadata.py
@@ -16,6 +16,7 @@
 # Copyright 2006 Red Hat
 
 import os
+import shutil
 import stat
 from utils import errorprint, _
 
@@ -111,6 +112,11 @@ class MetadataIndex(object):
             return self._repo.sack.searchPkgTuple(pkgtup)[0]
         return None
 
+    def cleanup(self):
+        """Delete temporary files in /var/tmp."""
+        shutil.rmtree(self._repo.basecachedir, ignore_errors=True)
+        shutil.rmtree(self._repo.base_persistdir, ignore_errors=True)
+
     
 
 if __name__ == "__main__":
@@ -124,4 +130,5 @@ if __name__ == "__main__":
         print po.xml_dump_primary_metadata()
         print po.xml_dump_filelists_metadata()
         print po.xml_dump_other_metadata()
+    idx.cleanup()
 
diff --git a/genpkgmetadata.py b/genpkgmetadata.py
index a684038..2df4a74 100755
--- a/genpkgmetadata.py
+++ b/genpkgmetadata.py
@@ -296,6 +296,10 @@ def main(args):
         mdgen.doFinalMove()
         if conf.profile:
             print ('fm time: %0.3f' % (time.time() - fm_st))
+        cl_st = time.time()
+        mdgen.cleanup()
+        if conf.profile:
+            print ('fm time: %0.3f' % (time.time() - cl_st))
 
 
     except MDError, errormsg:
@@ -306,6 +310,8 @@ def main(args):
             for name in os.listdir(tmp):
                 os.unlink(os.path.join(tmp, name))
             os.rmdir(tmp)
+        if mdgen:
+            mdgen.cleanup()
         sys.exit(1)
 
 
-- 
2.4.3



More information about the Rpm-metadata mailing list