createrepo/__init__.py createrepo/merge.py createrepo/readMetadata.py genpkgmetadata.py
[email protected] Fri, 4 Nov 2016 11:02:46 +0000 (UTC)
| Newsgroups | gmane.linux.rpm.metadata |
|---|---|
| Message-ID | <[email protected]> |
createrepo/__init__.py | 16 ++++++++-------- createrepo/merge.py | 1 + createrepo/readMetadata.py | 8 +++++++- genpkgmetadata.py | 8 ++++++++ 4 files changed, 24 insertions(+), 9 deletions(-) New commits: commit 364dfa5bff153b8bed83232268d650720508c470 Author: Valentina Mukhamedzhanova <[email protected]> Date: Fri Nov 4 11:32:45 2016 +0100 Fix temporary files cleanup. Based on patches by Miroslav Suchy and Mike McLean. diff --git a/createrepo/__init__.py b/createrepo/__init__.py index 517ea04..9e89afc 100644 --- a/createrepo/__init__.py +++ b/createrepo/__init__.py @@ -1475,19 +1475,19 @@ class MetaDataGenerator: msg = _('Could not restore old non-metadata file: %s -> %s') % (oldfile, finalfile) msg += _('Error was %s') % e raise MDError, msg + self._write_out_read_pkgs_list() + + def cleanup(self): self._cleanup_tmp_repodata_dir() - self._cleanup_update_tmp_dir() - self._write_out_read_pkgs_list() + 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 if self.conf.read_pkgs_list: 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 ad70895..ff93c2b 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, _ @@ -120,7 +121,11 @@ class MetadataIndex(object): return po 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__": cwd = os.getcwd() @@ -133,4 +138,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..8d901d0 100755 --- a/genpkgmetadata.py +++ b/genpkgmetadata.py @@ -268,6 +268,7 @@ def main(args): print ('start time: %0.3f' % (time.time() - start_st)) mid_st = time.time() + mdgen = None try: if conf.split: mdgen = createrepo.SplitMetaDataGenerator(config_obj=conf, @@ -296,6 +297,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 ('cl time: %0.3f' % (time.time() - cl_st)) except MDError, errormsg: @@ -308,6 +313,9 @@ def main(args): os.rmdir(tmp) sys.exit(1) + finally: + if mdgen: + mdgen.cleanup() if __name__ == "__main__": if len(sys.argv) > 1: