diff options
author | Jeremy Katz <katzj@redhat.com> | 2005-11-09 02:12:15 +0000 |
---|---|---|
committer | Jeremy Katz <katzj@redhat.com> | 2005-11-09 02:12:15 +0000 |
commit | 6b0736e5861bb62dbbe4ed4f10d0b9769026b236 (patch) | |
tree | ad1d4ae6ea57ef70681c5a8b974e895a5ca59d4c /yuminstall.py | |
parent | 11794efabe0707a40d7cb46ff237e41a88db2b1a (diff) | |
download | anaconda-6b0736e5861bb62dbbe4ed4f10d0b9769026b236.tar.gz anaconda-6b0736e5861bb62dbbe4ed4f10d0b9769026b236.tar.xz anaconda-6b0736e5861bb62dbbe4ed4f10d0b9769026b236.zip |
2005-11-08 Jeremy Katz <katzj@redhat.com>
* yuminstall.py (AnacondaYum.run): Basic (bad) support for
handling transaction errors. Need to improve this, but at least
it won't just traceback now.
Diffstat (limited to 'yuminstall.py')
-rw-r--r-- | yuminstall.py | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/yuminstall.py b/yuminstall.py index 8ce0e5f73..5a336aa1d 100644 --- a/yuminstall.py +++ b/yuminstall.py @@ -24,7 +24,7 @@ import yum import yum.repos import yum.packages import yum.groups -from yum.Errors import RepoError +from yum.Errors import RepoError, YumBaseError from yum.packages import returnBestPackages from repomd.mdErrors import PackageSackError from backend import AnacondaBackend @@ -218,7 +218,7 @@ class AnacondaYum(yum.YumBase): rpmUtils.arch.canonArch in ("s390x", "sparc64", "x86_64", "ia64")): self.ts.ts.setColor(3) - def run(self, instLog, cb): + def run(self, instLog, cb, intf): self.initActionTs() self.setColor() self.populateTs(keepold=0) @@ -229,7 +229,17 @@ class AnacondaYum(yum.YumBase): self.ts.ts.scriptFd = instLog.fileno() rpm.setLogFile(instLog) - self.runTransaction(cb=cb) + try: + self.runTransaction(cb=cb) + except YumBaseError, probs: + # FIXME: we need to actually look at these problems... + log.error("error running transaction: %s" %(probs,)) + intf.messageWindow(_("Error running transaction"), + ("There was an error running your transaction, " + "probably a disk space problem. For now, " + "exiting on this although we should diagnose " + "and then let you go back.")) + sys.exit(1) def doCacheSetup(self): for repo in self.repos.repos.values(): @@ -518,7 +528,7 @@ class YumBackend(AnacondaBackend): cb.initWindow = intf.waitWindow(_("Install Starting"), _("Starting install process. This may take several minutes...")) - self.ayum.run(self.instLog, cb) + self.ayum.run(self.instLog, cb, intf) if not cb.beenCalled: cb.initWindow.pop() |