[Rpm-metadata] createrepo/__init__.py

skvidal at osuosl.org skvidal at osuosl.org
Tue Aug 25 19:47:17 UTC 2009


 createrepo/__init__.py |   28 +++++++++++++++++-----------
 1 file changed, 17 insertions(+), 11 deletions(-)

New commits:
commit 189eb87b1e24c59ae113d281d39f2a7f60180996
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Tue Aug 25 15:44:36 2009 -0400

    capture ioerror/oserrors on handling metadata files and emit a proper MDError
    fixes rh bug: https://bugzilla.redhat.com/show_bug.cgi?id=514995

diff --git a/createrepo/__init__.py b/createrepo/__init__.py
index 609569a..6df9099 100644
--- a/createrepo/__init__.py
+++ b/createrepo/__init__.py
@@ -362,9 +362,12 @@ class MetaDataGenerator:
         if not isinstance(packages, MetaSack):
             packages = self.trimRpms(packages)
         self.pkgcount = len(packages)
-        self.openMetadataDocs()
-        self.writeMetadataDocs(packages)
-        self.closeMetadataDocs()
+        try:
+            self.openMetadataDocs()
+            self.writeMetadataDocs(packages)
+            self.closeMetadataDocs()
+        except (IOError, OSError), e:
+            raise MDError, _('Cannot access/write repodata files: %s') % e
 
     def openMetadataDocs(self):
         if self.conf.database_only:
@@ -1133,14 +1136,17 @@ class SplitMetaDataGenerator(MetaDataGenerator):
         mediano = 1
         self.current_pkg = 0
         self.conf.baseurl = self._getFragmentUrl(self.conf.baseurl, mediano)
-        self.openMetadataDocs()
-        original_basedir = self.conf.basedir
-        for mydir in self.conf.directories:
-            self.conf.baseurl = self._getFragmentUrl(self.conf.baseurl, mediano)
-            self.writeMetadataDocs(filematrix[mydir], mydir)
-            mediano += 1
-        self.conf.baseurl = self._getFragmentUrl(self.conf.baseurl, 1)
-        self.closeMetadataDocs()
+        try:
+            self.openMetadataDocs()
+            original_basedir = self.conf.basedir
+            for mydir in self.conf.directories:
+                self.conf.baseurl = self._getFragmentUrl(self.conf.baseurl, mediano)
+                self.writeMetadataDocs(filematrix[mydir], mydir)
+                mediano += 1
+            self.conf.baseurl = self._getFragmentUrl(self.conf.baseurl, 1)
+            self.closeMetadataDocs()
+        except (IOError, OSError), e:
+            raise MDError, _('Cannot access/write repodata files: %s') % e
 
 
 


More information about the Rpm-metadata mailing list