From: Seth Vidal Date: Tue, 25 Aug 2009 19:44:36 +0000 (-0400) Subject: capture ioerror/oserrors on handling metadata files and emit a proper MDError X-Git-Tag: upstream/0.9.9~43 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=189eb87b1e24c59ae113d281d39f2a7f60180996;p=tools%2Fcreaterepo.git 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