summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSol Jerome <sol.jerome@gmail.com>2014-11-04 11:32:19 -0600
committerSol Jerome <sol.jerome@gmail.com>2014-11-04 11:32:19 -0600
commit0da4208c47162f7e48d98888b2256be378c86030 (patch)
tree245929f35a58e4af518e7d106ce71e97ea519b90
parent84ba7561d9450d05b0dd99b69c16437b29100704 (diff)
downloadbcfg2-0da4208c47162f7e48d98888b2256be378c86030.tar.gz
bcfg2-0da4208c47162f7e48d98888b2256be378c86030.tar.bz2
bcfg2-0da4208c47162f7e48d98888b2256be378c86030.zip
Yum.py: Fix traceback when arch missing
Sometimes repositories may not contain packages for a specific architecture group. This handles that case gracefully instead of causing a traceback and failing to bind all Package entries. Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Packages/Yum.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py b/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py
index 6139a28b5..4ee9cce52 100644
--- a/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py
+++ b/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py
@@ -1287,10 +1287,13 @@ class YumSource(Source):
arch = [a for a in self.arches if a in metadata.groups]
if not arch:
return False
- return ((package in self.packages['global'] or
- package in self.packages[arch[0]]) and
- package not in self.blacklist and
- (len(self.whitelist) == 0 or package in self.whitelist))
+ try:
+ return ((package in self.packages['global'] or
+ package in self.packages[arch[0]]) and
+ package not in self.blacklist and
+ (len(self.whitelist) == 0 or package in self.whitelist))
+ except KeyError:
+ return False
is_package.__doc__ = Source.is_package.__doc__
def get_vpkgs(self, metadata):