[Rpm-metadata] createrepo/readMetadata.py

skvidal at osuosl.org skvidal at osuosl.org
Wed Jul 20 21:03:50 UTC 2011


 createrepo/readMetadata.py |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

New commits:
commit 7e24b1ba2c939cff52f789b599d907c8fdac9747
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Wed Jul 20 17:02:42 2011 -0400

    changes to make this more robust:
    1. when making a new repo - use mkdtemp() so we don't run the possibility of a race to the repo cache
    2. try/except when we setup the old repodata so if the dir is not there or the repo is broken we don't traceback

diff --git a/createrepo/readMetadata.py b/createrepo/readMetadata.py
index a449e68..88e5d95 100644
--- a/createrepo/readMetadata.py
+++ b/createrepo/readMetadata.py
@@ -21,8 +21,8 @@ from utils import errorprint, _
 
 import yum
 from yum import misc
-
-
+from yum.Errors import YumBaseError
+import tempfile
 class CreaterepoPkgOld(yum.sqlitesack.YumAvailablePackageSqlite):
     # special for special people like us.
     def _return_remote_location(self):
@@ -48,13 +48,16 @@ class MetadataIndex(object):
         repodatadir = self.outputdir + '/repodata'
         self._repo = yum.yumRepo.YumRepository('garbageid')
         self._repo.baseurl = 'file://' + realpath
-        self._repo.basecachedir = misc.getCacheDir()
+        self._repo.basecachedir = tempfile.mkdtemp(dir='/var/tmp', prefix="createrepo")
         self._repo.metadata_expire = 1
         self._repo.gpgcheck = 0
         self._repo.repo_gpgcheck = 0
         self._repo._sack = yum.sqlitesack.YumSqlitePackageSack(CreaterepoPkgOld)
         self.pkg_tups_by_path = {}
-        self.scan()
+        try:
+            self.scan()
+        except YumBaseError, e:
+            print "Could not find valid repo at: %s" % self.outputdir
         
 
     def scan(self):


More information about the Rpm-metadata mailing list