summaryrefslogtreecommitdiffstats
path: root/yuminstall.py
diff options
context:
space:
mode:
authorJeremy Katz <katzj@redhat.com>2005-09-20 20:43:49 +0000
committerJeremy Katz <katzj@redhat.com>2005-09-20 20:43:49 +0000
commit63226bceb21c16d662a78e85e4845309fdc91bfb (patch)
tree5386daf4d4e43528cdf920299863f88b0d3e8a51 /yuminstall.py
parent70d10ea749562734dd0f2f8f434c2a524f5e34ad (diff)
downloadanaconda-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.py31
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