diff options
author | Chris Lumens <clumens@redhat.com> | 2006-06-22 18:19:58 +0000 |
---|---|---|
committer | Chris Lumens <clumens@redhat.com> | 2006-06-22 18:19:58 +0000 |
commit | a7e1d4a370af451923d0659fdf6532fda56e8202 (patch) | |
tree | d5cf2dbc40a2bce7bbaa402464c46d97930a9cef /yuminstall.py | |
parent | 4cb0ba1d9610eebac6f1086d19b972e9534384d6 (diff) | |
download | anaconda-a7e1d4a370af451923d0659fdf6532fda56e8202.tar.gz anaconda-a7e1d4a370af451923d0659fdf6532fda56e8202.tar.xz anaconda-a7e1d4a370af451923d0659fdf6532fda56e8202.zip |
Don't try to unmount a CD twice. Don't log dependencies added just for
themselves.
Diffstat (limited to 'yuminstall.py')
-rw-r--r-- | yuminstall.py | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/yuminstall.py b/yuminstall.py index 114d1c10d..98dd53d2e 100644 --- a/yuminstall.py +++ b/yuminstall.py @@ -299,7 +299,9 @@ class YumSorter(yum.YumBase): pkgs = self.tsInfo.getMembers(pkgtup=dep.pkgtup) member = self.bestPackagesFromList(pkgs)[0] else: - log.info("adding %s for %s" %(dep.name, req[0])) + if dep.name != req[0]: + log.info("adding %s for %s" %(dep.name, req[0])) + member = self.tsInfo.addInstall(dep) unresolved.append(member) @@ -421,7 +423,8 @@ class AnacondaYum(YumSorter): for i in self.tsInfo.reqmedia.keys(): self.tsInfo.curmedia = i if i > 0: - self.method.switchMedia(i) + pkgtup = self.tsInfo.reqmedia[i][0] + self.method.switchMedia(i, filename=pkgtup) self.populateTs(keepold=0) self.ts.check() self.ts.order() @@ -566,6 +569,10 @@ class AnacondaYum(YumSorter): return False class YumBackend(AnacondaBackend): + def __init__ (self, method, instPath): + AnacondaBackend.__init__(self, method, instPath) + self.prevmedia = None + def _handleFailure(self, url, intf): (scheme, netloc, path, query, fragment) = urlparse.urlsplit(url) @@ -576,11 +583,17 @@ class YumBackend(AnacondaBackend): if rc == 0: sys.exit(0) + else: + if self.prevmedia: + self.method.switchMedia(self.prevmedia) def mirrorFailureCB (self, obj, *args, **kwargs): log.warning("Failed to get %s from mirror" % obj.url) - - self.method.unmountCD() + + if self.method.currentMedia: + if kwargs.has_key("tsInfo"): + self.prevmedia = kwargs["tsInfo"].curmedia + self.method.unmountCD() if kwargs.has_key("intf") and kwargs["intf"]: self._handleFailure(obj.url, kwargs["intf"]) @@ -589,7 +602,10 @@ class YumBackend(AnacondaBackend): log.warning("Try %s/%s for %s failed" % (obj.tries, obj.retry, obj.url)) if obj.tries >= obj.retry: - self.method.unmountCD() + if self.method.currentMedia: + if kwargs.has_key("tsInfo"): + self.prevmedia = kwargs["tsInfo"].curmedia + self.method.unmountCD() if kwargs.has_key("intf") and kwargs["intf"]: self._handleFailure(obj.url, kwargs["intf"]) @@ -656,9 +672,9 @@ class YumBackend(AnacondaBackend): self.ayum.repos.callback = None self.ayum.repos.setFailureCallback((self.urlgrabberFailureCB, (), - {"intf":anaconda.intf})) + {"intf":anaconda.intf, "tsInfo":self.ayum.tsInfo})) self.ayum.repos.setMirrorFailureCallback((self.mirrorFailureCB, (), - {"intf":anaconda.intf})) + {"intf":anaconda.intf, "tsInfo":self.ayum.tsInfo})) def _catchallCategory(self): # FIXME: this is a bad hack, but catch groups which aren't in |