diff options
author | Jeremy Katz <katzj@redhat.com> | 2005-09-20 20:43:49 +0000 |
---|---|---|
committer | Jeremy Katz <katzj@redhat.com> | 2005-09-20 20:43:49 +0000 |
commit | 63226bceb21c16d662a78e85e4845309fdc91bfb (patch) | |
tree | 5386daf4d4e43528cdf920299863f88b0d3e8a51 /yuminstall.py | |
parent | 70d10ea749562734dd0f2f8f434c2a524f5e34ad (diff) | |
download | anaconda-63226bceb21c16d662a78e85e4845309fdc91bfb.tar.gz anaconda-63226bceb21c16d662a78e85e4845309fdc91bfb.tar.xz anaconda-63226bceb21c16d662a78e85e4845309fdc91bfb.zip |
2005-09-20 Jeremy Katz <katzj@redhat.com>
* iw/simple_pkgselect.py: Simple group selection UI...
* textw/simple_pkgselect_text.py: And the same for text mode
* yuminstall.py (YumBackend): Some hacks for simple group
selection UI.
* dispatch.py (installSteps): Add simple group selection step.
* gui.py (stepToClass): Likewise.
* text.py (stepToClasses): Likewise.
* installclass.py (BaseInstallClass.setSteps): Likewise.
Diffstat (limited to 'yuminstall.py')
-rw-r--r-- | yuminstall.py | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/yuminstall.py b/yuminstall.py index 20e20d687..7619811db 100644 --- a/yuminstall.py +++ b/yuminstall.py @@ -23,6 +23,7 @@ import urlgrabber.grabber import yum import yum.repos import yum.packages +import yum.groups import repomd.mdErrors from backend import AnacondaBackend from constants import * @@ -240,6 +241,9 @@ class YumBackend(AnacondaBackend): root=instPath) self.ac.write() + # FIXME: this is a bad hack until we can get something better into yum + self.anaconda_grouplist = [] + # FIXME: this step is actually probably not broken out properly def doPreSelection(self, intf, id, instPath): # should probably be done in __init__ instead... @@ -249,8 +253,9 @@ class YumBackend(AnacondaBackend): self.ayum.setup(fn="/tmp/yum.conf", root=instPath) # then a base package selection step - id.instClass.setPackageSelection(self) - id.instClass.setGroupSelection(self) + if id: # hack for my test script :) + id.instClass.setPackageSelection(self) + id.instClass.setGroupSelection(self) def doPostSelection(self, intf, id, instPath): win = intf.waitWindow(_("Dependency Check"), @@ -456,6 +461,28 @@ class YumBackend(AnacondaBackend): continue self.ayum.tsInfo.addInstall(p) + for grp in self.ayum.groupInfo.groupTree(group): + if grp not in self.anaconda_grouplist: + self.anaconda_grouplist.append(grp) + + def deselectGroup(self, group, *args): + if not self.groupExists(group): + log.debug("no such group %s" %(group,)) + return + + pkgs = self.ayum.groupInfo.pkgTree(group) + for pkg in pkgs: + try: + p = self.ayum.pkgSack.returnNewestByName(pkg) + except repomd.mdErrors.PackageSackError: + log.debug("no such package %s in %s" %(pkg, group)) + continue + self.ayum.tsInfo.remove(p.pkgtup) + + for grp in self.ayum.groupInfo.groupTree(group): + if grp in self.anaconda_grouplist: + self.anaconda_grouplist.remove(grp) + def selectPackage(self, pkg, *args): sp = pkg.rsplit(".", 2) p = None |