summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-09-18 13:40:11 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-09-20 11:37:55 -0400
commit3e8826d66c23cc439df0a589f4c7821d2dfca575 (patch)
treea4d1f489a135067ec6c0ad0e4564cb401b5f9cfa /src/lib/Bcfg2/Server/Plugins/Packages/Yum.py
parent1587dcb17c310d5ffb22bd7060c1cf18696eba28 (diff)
downloadbcfg2-3e8826d66c23cc439df0a589f4c7821d2dfca575.tar.gz
bcfg2-3e8826d66c23cc439df0a589f4c7821d2dfca575.tar.bz2
bcfg2-3e8826d66c23cc439df0a589f4c7821d2dfca575.zip
deduplicated Packages code, more docs
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Packages/Yum.py')
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Packages/Yum.py22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py b/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py
index c942a1061..b8648fdde 100644
--- a/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py
+++ b/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py
@@ -558,6 +558,7 @@ class YumCollection(_Collection):
class YumSource(Source):
basegroups = ['yum', 'redhat', 'centos', 'fedora']
ptype = 'yum'
+ unknown_filter = lambda u: u.startswith("rpmlib")
def __init__(self, basepath, xsource, setup):
Source.__init__(self, basepath, xsource, setup)
@@ -632,20 +633,21 @@ class YumSource(Source):
rmdurl = '%srepodata/repomd.xml' % url
try:
repomd = fetch_url(rmdurl)
- xdata = lxml.etree.XML(repomd)
except ValueError:
self.logger.error("Packages: Bad url string %s" % rmdurl)
return []
- except URLError:
- err = sys.exc_info()[1]
- self.logger.error("Packages: Failed to fetch url %s. %s" %
- (rmdurl, err))
- return []
except HTTPError:
err = sys.exc_info()[1]
self.logger.error("Packages: Failed to fetch url %s. code=%s" %
(rmdurl, err.code))
return []
+ except URLError:
+ err = sys.exc_info()[1]
+ self.logger.error("Packages: Failed to fetch url %s. %s" %
+ (rmdurl, err))
+ return []
+ try:
+ xdata = lxml.etree.XML(repomd)
except lxml.etree.XMLSyntaxError:
err = sys.exc_info()[1]
self.logger.error("Packages: Failed to process metadata at %s: %s" %
@@ -764,17 +766,17 @@ class YumSource(Source):
filtered = set()
for unk in unknown:
try:
- if unk.startswith('rpmlib'):
+ if self.unknown_filter(unk):
filtered.update(unk)
except AttributeError:
try:
- if unk[0].startswith('rpmlib'):
+ if self.unknown_filter(unk[0]):
filtered.update(unk)
except (IndexError, AttributeError):
pass
+ unknown.difference_update(filtered)
else:
- filtered = set([u for u in unknown if u.startswith('rpmlib')])
- unknown.difference_update(filtered)
+ Source.filter_unknown(self, unknown)
def setup_data(self, force_update=False):
if not self.use_yum: