[yum-cvs] yum/comps.py yum/__init__.py
Seth Vidal
skvidal at linux.duke.edu
Fri Aug 24 16:19:08 UTC 2007
yum/__init__.py | 5 +++--
yum/comps.py | 42 +++++++++++++++++++++++-------------------
2 files changed, 26 insertions(+), 21 deletions(-)
New commits:
commit d82a60a103a9f6a42c80fbf8db9a986e3282b2fb
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri Aug 24 12:17:27 2007 -0400
if group file is empty or damaged in a repository, treat it like
a missing groups file and skip it. Push out an error about it, though.
diff --git a/yum/__init__.py b/yum/__init__.py
index 9447e79..f4c3fe0 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -490,8 +490,9 @@ class YumBase(depsolve.Depsolve):
groupfile = repo.getGroups()
try:
self._comps.add(groupfile)
- except Errors.GroupsError, e:
- self.logger.critical('Failed to add groups file for repository: %s' % repo)
+ except (Errors.GroupsError,Errors.CompsException), e:
+ msg = 'Failed to add groups file for repository: %s - %s' % (repo, str(e))
+ self.logger.critical(msg)
else:
repo.groups_added = True
diff --git a/yum/comps.py b/yum/comps.py
index 2cc6cc5..054c733 100755
--- a/yum/comps.py
+++ b/yum/comps.py
@@ -21,7 +21,8 @@ except ImportError:
import cElementTree
iterparse = cElementTree.iterparse
from Errors import CompsException
-
+#FIXME - compsexception isn't caught ANYWHERE so it's pointless to raise it
+# switch all compsexceptions to grouperrors after api break
lang_attr = '{http://www.w3.org/XML/1998/namespace}lang'
@@ -346,24 +347,27 @@ class Comps(object):
self.compiled = False
parser = iterparse(infile)
-
- for event, elem in parser:
- if elem.tag == "group":
- group = Group(elem)
- if self._groups.has_key(group.groupid):
- thatgroup = self._groups[group.groupid]
- thatgroup.add(group)
- else:
- self._groups[group.groupid] = group
-
- if elem.tag == "category":
- category = Category(elem)
- if self._categories.has_key(category.categoryid):
- thatcat = self._categories[category.categoryid]
- thatcat.add(category)
- else:
- self._categories[category.categoryid] = category
-
+ try:
+ for event, elem in parser:
+ if elem.tag == "group":
+ group = Group(elem)
+ if self._groups.has_key(group.groupid):
+ thatgroup = self._groups[group.groupid]
+ thatgroup.add(group)
+ else:
+ self._groups[group.groupid] = group
+
+ if elem.tag == "category":
+ category = Category(elem)
+ if self._categories.has_key(category.categoryid):
+ thatcat = self._categories[category.categoryid]
+ thatcat.add(category)
+ else:
+ self._categories[category.categoryid] = category
+ except SyntaxError, e:
+ raise CompsException, "comps file is empty/damaged"
+ del parser
+
del parser
def compile(self, pkgtuplist):
More information about the Yum-cvs-commits
mailing list