summaryrefslogtreecommitdiffstats
path: root/yuminstall.py
diff options
context:
space:
mode:
authorChris Lumens <clumens@redhat.com>2007-02-26 19:07:09 +0000
committerChris Lumens <clumens@redhat.com>2007-02-26 19:07:09 +0000
commit6a61a6ad52d8d9b66051c168eebaed095b7c2570 (patch)
treee860b3d6a4eba9b3a406c7e79abadad08dffa56f /yuminstall.py
parent0b1256fca7c2faf60cf4e0ff59ca34c47379e772 (diff)
downloadanaconda-6a61a6ad52d8d9b66051c168eebaed095b7c2570.tar.gz
anaconda-6a61a6ad52d8d9b66051c168eebaed095b7c2570.tar.xz
anaconda-6a61a6ad52d8d9b66051c168eebaed095b7c2570.zip
Finish up the extended group selection syntax by adding code to deselect
default packages for a group and select optional packages.
Diffstat (limited to 'yuminstall.py')
-rw-r--r--yuminstall.py33
1 files changed, 31 insertions, 2 deletions
diff --git a/yuminstall.py b/yuminstall.py
index 200f311f5..8793776f6 100644
--- a/yuminstall.py
+++ b/yuminstall.py
@@ -1399,12 +1399,38 @@ class YumBackend(AnacondaBackend):
pass
return False
+ def _selectDefaultOptGroup(self, grpid, default, optional):
+ retval = 0
+ grp = self.ayum.comps.return_group(grpid)
+
+ if not default:
+ for pkg in grp.default_packages.keys():
+ self.deselectPackage(pkg)
+ retval -= 1
+
+ if optional:
+ for pkg in grp.optional_packages.keys():
+ self.selectPackage(pkg)
+ retval += 1
+
+ return retval
+
def selectGroup(self, group, *args):
+ if args:
+ default = args[0][0]
+ optional = args[0][1]
+ else:
+ default = True
+ optional = False
+
try:
mbrs = self.ayum.selectGroup(group)
if len(mbrs) == 0 and self.isGroupSelected(group):
return 1
- return len(mbrs)
+
+ extras = self._selectDefaultOptGroup(group, default, optional)
+
+ return len(mbrs) + extras
except yum.Errors.GroupsError, e:
# try to find out if it's the name or translated name
gid = self.__getGroupId(group)
@@ -1412,7 +1438,10 @@ class YumBackend(AnacondaBackend):
mbrs = self.ayum.selectGroup(gid)
if len(mbrs) == 0 and self.isGroupSelected(gid):
return 1
- return len(mbrs)
+
+ extras = self._selectDefaultOptGroup(group, default, optional)
+
+ return len(mbrs) + extras
else:
log.debug("no such group %s" %(group,))
return 0