summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Client/Tools/YUM.py
diff options
context:
space:
mode:
authorJason Kincl <kincljc@ornl.gov>2013-02-27 13:20:34 -0500
committerJason Kincl <kincljc@ornl.gov>2013-02-27 13:20:34 -0500
commit59faa6b5d570d26c00b5c058cb9e866729fd66ee (patch)
treef82c8db0c915e52a682d77da3d549a07fd0b866f /src/lib/Bcfg2/Client/Tools/YUM.py
parentc0e43f73cb4e98145537543b6275c4cc6dbd5430 (diff)
downloadbcfg2-59faa6b5d570d26c00b5c058cb9e866729fd66ee.tar.gz
bcfg2-59faa6b5d570d26c00b5c058cb9e866729fd66ee.tar.bz2
bcfg2-59faa6b5d570d26c00b5c058cb9e866729fd66ee.zip
YUM: Fixed YUM Group package selection with group types (default, optional, all) on client tool
Diffstat (limited to 'src/lib/Bcfg2/Client/Tools/YUM.py')
-rw-r--r--src/lib/Bcfg2/Client/Tools/YUM.py18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/lib/Bcfg2/Client/Tools/YUM.py b/src/lib/Bcfg2/Client/Tools/YUM.py
index 92568c070..7764a6808 100644
--- a/src/lib/Bcfg2/Client/Tools/YUM.py
+++ b/src/lib/Bcfg2/Client/Tools/YUM.py
@@ -293,7 +293,7 @@ class YUM(Bcfg2.Client.Tools.PkgTool):
group. """
missing = Bcfg2.Client.Tools.PkgTool.missing_attrs(self, entry)
- if entry.get('name', None) == None and
+ if entry.get('name', None) == None and \
entry.get('group', None) == None:
missing += ['name', 'group']
return missing
@@ -450,14 +450,20 @@ class YUM(Bcfg2.Client.Tools.PkgTool):
instances = []
if self.yumbase.comps.has_group(entry.get('group')):
group = self.yumbase.comps.return_group(entry.get('group'))
- group_type = getattr(group, '%s_packages' %
- entry.get('choose', 'default'))
group_packages = [p
for p, d in group.mandatory_packages.items()
- if d] + \
- [p
- for p, d in group_type.items()
if d]
+ group_type = entry.get('choose', 'default')
+ if group_type in ['default', 'optional', 'all']:
+ group_packages += [p
+ for p, d in
+ group.default_packages.items()
+ if d]
+ if group_type in ['optional', 'all']:
+ group_packages += [p
+ for p, d in
+ group.optional_packages.items()
+ if d]
if len(group_packages) == 0:
self.logger.error("No packages found for group %s" %
entry.get("group"))