diff options
author | Sol Jerome <sol.jerome@gmail.com> | 2014-11-04 11:32:19 -0600 |
---|---|---|
committer | Sol Jerome <sol.jerome@gmail.com> | 2014-11-04 11:32:19 -0600 |
commit | 0da4208c47162f7e48d98888b2256be378c86030 (patch) | |
tree | 245929f35a58e4af518e7d106ce71e97ea519b90 /src/lib/Bcfg2/Server/Plugins | |
parent | 84ba7561d9450d05b0dd99b69c16437b29100704 (diff) | |
download | bcfg2-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>
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins')
-rw-r--r-- | src/lib/Bcfg2/Server/Plugins/Packages/Yum.py | 11 |
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): |