[Yum-devel] [PATCH] Don't write when in cache mode, for comps/tags, and catch IOError for comps.
James Antill
james at and.org
Fri Dec 10 19:17:55 UTC 2010
---
yum/__init__.py | 7 +++++--
yum/comps.py | 5 ++++-
yum/misc.py | 4 ++--
3 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/yum/__init__.py b/yum/__init__.py
index 45123a3..1b36994 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -780,7 +780,9 @@ class YumBase(depsolve.Depsolve):
groupfile = repo.getGroups()
# open it up as a file object so iterparse can cope with our compressed file
if groupfile:
- groupfile = misc.repo_gen_decompress(groupfile, 'groups.xml')
+ groupfile = misc.repo_gen_decompress(groupfile, 'groups.xml',
+ cached=repo.cache)
+ # Do we want a RepoError here?
try:
self._comps.add(groupfile)
@@ -819,7 +821,8 @@ class YumBase(depsolve.Depsolve):
try:
tag_md = repo.retrieveMD('pkgtags')
tag_sqlite = misc.repo_gen_decompress(tag_md,
- 'pkgtags.sqlite')
+ 'pkgtags.sqlite',
+ cached=repo.cache)
# feed it into _tags.add()
self._tags.add(repo.id, tag_sqlite)
except (Errors.RepoError, Errors.PkgTagsError), e:
diff --git a/yum/comps.py b/yum/comps.py
index 408bb1c..65f6d5e 100755
--- a/yum/comps.py
+++ b/yum/comps.py
@@ -503,7 +503,10 @@ class Comps(object):
if type(srcfile) in types.StringTypes:
# srcfile is a filename string
- infile = open(srcfile, 'rt')
+ try:
+ infile = open(srcfile, 'rt')
+ except IOError, e:
+ raise CompsException, 'open(%s): #%u %s' % (srcfile, e.errno, e.strerror)
else:
# srcfile is a file object
infile = srcfile
diff --git a/yum/misc.py b/yum/misc.py
index 4fa5ed9..4a1ede2 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -1077,7 +1077,7 @@ def decompress(filename, dest=None, fn_only=False, check_timestamps=False):
return out
-def repo_gen_decompress(filename, generated_name):
+def repo_gen_decompress(filename, generated_name, cached=False):
""" This is a wrapper around decompress, where we work out a cached
generated name, and use check_timestamps. filename _must_ be from
a repo. and generated_name is the type of the file. """
@@ -1086,7 +1086,7 @@ def repo_gen_decompress(filename, generated_name):
if not os.path.exists(dest):
os.makedirs(dest, mode=0755)
dest += '/' + generated_name
- return decompress(filename, dest=dest, check_timestamps=True)
+ return decompress(filename, dest=dest, check_timestamps=True,fn_only=cached)
def read_in_items_from_dot_dir(thisglob, line_as_list=True):
"""takes a glob of a dir (like /etc/foo.d/*.foo)
--
1.7.2.3
More information about the Yum-devel
mailing list