Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
OBS:Server:2.8:Staging
createrepo
createrepo-0.9.9-clean_tmp_files.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File createrepo-0.9.9-clean_tmp_files.patch of Package createrepo
From b73f374d6ab3c9dd681d9d5dcd8ab2262d73c166 Mon Sep 17 00:00:00 2001 From: Seth Vidal <skvidal@fedoraproject.org> Date: Thu, 28 Jul 2011 17:03:45 -0400 Subject: [PATCH] add two private methods to help clean up doFinalMove() and makes the code a little nicer for how it is called from the cli. slightly nicer fix for: https://bugzilla.redhat.com/show_bug.cgi?id=581628 --- createrepo/__init__.py | 25 ++++++++++++++++++------- genpkgmetadata.py | 1 + 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/createrepo/__init__.py b/createrepo/__init__.py index 8cce31a..30f7422 100644 --- a/createrepo/__init__.py +++ b/createrepo/__init__.py @@ -1151,14 +1151,11 @@ def doFinalMove(self): msg += _('Error was %s') % e raise MDError, msg - try: - os.rmdir(output_old_dir) - except OSError, e: - self.errorlog(_('Could not remove old metadata dir: %s') - % self.conf.olddir) - self.errorlog(_('Error was %s') % e) - self.errorlog(_('Please clean up this directory manually.')) + self._cleanup_tmp_repodata_dir() + self._write_out_read_pkgs_list() + + def _write_out_read_pkgs_list(self): # write out the read_pkgs_list file with self.read_pkgs if self.conf.read_pkgs_list: try: @@ -1171,6 +1168,20 @@ def doFinalMove(self): % self.conf.read_pkgs_list) self.errorlog(_('Error was %s') % e) + def _cleanup_tmp_repodata_dir(self): + output_old_dir = os.path.join(self.conf.outputdir, self.conf.olddir) + output_temp_dir = os.path.join(self.conf.outputdir, self.conf.tempdir) + for dirbase in (self.conf.olddir, self.conf.tempdir): + dirpath = os.path.join(self.conf.outputdir, dirbase) + if os.path.exists(dirpath): + try: + os.rmdir(dirpath) + except OSError, e: + self.errorlog(_('Could not remove temp metadata dir: %s') + % dirbase) + self.errorlog(_('Error was %s') % e) + self.errorlog(_('Please clean up this directory manually.')) + def setup_sqlite_dbs(self, initdb=True): """sets up the sqlite dbs w/table schemas and db_infos""" destdir = os.path.join(self.conf.outputdir, self.conf.tempdir) diff --git a/genpkgmetadata.py b/genpkgmetadata.py index 6c9217a..512420b 100755 --- a/genpkgmetadata.py +++ b/genpkgmetadata.py @@ -242,6 +242,7 @@ def main(args): if mdgen.checkTimeStamps(): if mdgen.conf.verbose: print _('repo is up to date') + mdgen._cleanup_tmp_repodata_dir() sys.exit(0) if conf.profile: -- 1.8.1.6 From b6c41bc9997b6adcb9e5ccd218a8bd938c04983d Mon Sep 17 00:00:00 2001 From: Seth Vidal <skvidal@fedoraproject.org> Date: Fri, 12 Aug 2011 12:16:57 -0400 Subject: [PATCH] I think this is the last of the tmp files which are, apparently, terribly important to clean up closes: https://bugzilla.redhat.com/show_bug.cgi?id=730330 --- createrepo/__init__.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/createrepo/__init__.py b/createrepo/__init__.py index 2c63bad..e3c18aa 100644 --- a/createrepo/__init__.py +++ b/createrepo/__init__.py @@ -639,7 +639,7 @@ def writeMetadataDocs(self, pkglist=[], pkgpath=None): # waitfor the workers to finish and as each one comes in # open the files they created and write them out to our metadata # add up the total pkg counts and return that value - worker_tmp_path = tempfile.mkdtemp() + self._worker_tmp_path = tempfile.mkdtemp() worker_chunks = utils.split_list_into_equal_chunks(pkgfiles, self.conf.workers) worker_cmd_dict = {} worker_jobs = {} @@ -650,7 +650,7 @@ def writeMetadataDocs(self, pkglist=[], pkgpath=None): # make the worker directory workercmdline = [] workercmdline.extend(base_worker_cmdline) - thisdir = worker_tmp_path + '/' + str(worker_num) + thisdir = self._worker_tmp_path + '/' + str(worker_num) if checkAndMakeDir(thisdir): workercmdline.append('--tmpmdpath=%s' % thisdir) else: @@ -658,7 +658,7 @@ def writeMetadataDocs(self, pkglist=[], pkgpath=None): for (fn, fo) in (('primary.xml', self.primaryfile), ('filelists.xml', self.flfile), ('other.xml', self.otherfile)): - fnpath = worker_tmp_path + '/' + str(num) + '/' + fn + fnpath = self._worker_tmp_path + '/' + str(num) + '/' + fn if os.path.exists(fnpath): fo.write(open(fnpath, 'r').read()) @@ -1189,6 +1189,9 @@ def _cleanup_tmp_repodata_dir(self): % dirbase) self.errorlog(_('Error was %s') % e) self.errorlog(_('Please clean up this directory manually.')) + # our worker tmp path + if hasattr(self, '_worker_tmp_path') and os.path.exists(self._worker_tmp_path): + shutil.rmtree(self._worker_tmp_path, ignore_errors=True) def setup_sqlite_dbs(self, initdb=True): """sets up the sqlite dbs w/table schemas and db_infos""" -- 1.8.1.6
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor