From 59faa6b5d570d26c00b5c058cb9e866729fd66ee Mon Sep 17 00:00:00 2001 From: Jason Kincl Date: Wed, 27 Feb 2013 13:20:34 -0500 Subject: YUM: Fixed YUM Group package selection with group types (default, optional, all) on client tool --- src/lib/Bcfg2/Client/Tools/YUM.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/lib/Bcfg2/Client/Tools/YUM.py') 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")) -- cgit v1.2.3-1-g7c22