diff --git a/pyanaconda/sortedtransaction.py b/pyanaconda/sortedtransaction.py
deleted file mode 100644
index d7384bb..0000000
--- a/pyanaconda/sortedtransaction.py
+++ /dev/null
@@ -1,87 +0,0 @@
-#
-# sortedtransaction.py
-#
-# Copyright (C) 2007 Red Hat, Inc. All rights reserved.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-
-from yum.transactioninfo import TransactionData, TransactionMember, SortableTransactionData
-from yum.constants import *
-from yum.Errors import YumBaseError
-
-import urlparse
-urlparse.uses_fragment.append('media')
-
-import logging
-log = logging.getLogger("anaconda")
-
-
-class SplitMediaTransactionData(SortableTransactionData) :
- def __init__(self):
- SortableTransactionData.__init__(self)
- self.reqmedia = {}
- self.curmedia = 0
-
- def __getMedia(self, po):
- try:
- uri = po.returnSimple('basepath')
- (scheme, netloc, path, query, fragid) = urlparse.urlsplit(uri)
- if scheme != "media" or not fragid:
- return -99
- else:
- return int(fragid)
- except (KeyError, AttributeError):
- return -99
-
- def getMembers(self, pkgtup=None):
- if not self.curmedia:
- return TransactionData.getMembers(self, pkgtup)
- if pkgtup is None:
- returnlist = []
- for ele in self.reqmedia[self.curmedia]:
- returnlist.extend(self.pkgdict[ele])
-
- return returnlist
-
- if pkgtup in self.reqmedia[self.curmedia]:
- return self.pkgdict[pkgtup]
- else:
- return []
-
- def add(self, txmember):
- if txmember.output_state in TS_INSTALL_STATES:
- id = self.__getMedia(txmember.po)
- if id:
- if id not in self.reqmedia.keys():
- self.reqmedia[id] = [ txmember.pkgtup ]
- elif txmember.pkgtup not in self.reqmedia[id]:
- self.reqmedia[id].append(txmember.pkgtup)
- SortableTransactionData.add(self, txmember)
-
- def remove(self, pkgtup):
- if not self.pkgdict.has_key(pkgtup):
- return
- txmembers = self.pkgdict[pkgtup]
- if len(txmembers) > 0:
- for txmbr in txmembers:
- if txmbr.output_state not in TS_INSTALL_STATES:
- continue
- id = self.__getMedia(txmbr.po)
- if id:
- self.reqmedia[id].remove(pkgtup)
- if len(self.reqmedia[id]) == 0:
- self.reqmedia.pop(id)
- del txmbr
- SortableTransactionData.remove(self, pkgtup)
diff --git a/pyanaconda/yuminstall.py b/pyanaconda/yuminstall.py
index 7999551..109455e 100644
--- a/pyanaconda/yuminstall.py
+++ b/pyanaconda/yuminstall.py
@@ -49,7 +49,6 @@ from yum.misc import to_unicode
from yum.yumRepo import YumRepository
from backend import AnacondaBackend
from product import isBeta, productName, productVersion, productStamp
-from sortedtransaction import SplitMediaTransactionData
from constants import *
from image import *
from compssort import *
@@ -309,13 +308,9 @@ class AnacondaYumRepo(YumRepository):
anacondaBaseURLs = property(_getAnacondaBaseURLs, _setAnacondaBaseURLs,
doc="Extends AnacondaYum.baseurl to store non-yum urls:")
@@ -879,7 +874,7 @@ class AnacondaYum(YumSorter):
while True:
# retrying version of download header
try:
- YumSorter.downloadHeader(self, po)
+ yum.YumBase.downloadHeader(self, po)
break
except yum.Errors.NoMoreMirrorsRepoError:
self._handleFailure(po)
@@ -967,68 +962,42 @@ class AnacondaYum(YumSorter):
self.ts.ts.setColor(3)
def run(self, instLog, cb, intf):
- def mediasort(a, b):
- # sort so that first CD comes first, etc. -99 is a magic number
- # to tell us that the cd should be last
- if a == -99:
- return 1
- elif b == -99:
- return -1
- if a < b:
- return -1
- elif a > b:
- return 1
- return 0
-
self.initActionTs()
if self.anaconda.upgrade:
self.ts.ts.setProbFilter(~rpm.RPMPROB_FILTER_DISKS PACE)
self.setColor()
- # If we don't have any required media assume single disc
- if self.tsInfo.reqmedia == {}:
- self.tsInfo.reqmedia[0] = None
- mkeys = self.tsInfo.reqmedia.keys()
- mkeys.sort(mediasort)
-
- for i in mkeys:
- self.tsInfo.curmedia = i
- if i > 0:
- pkgtup = self.tsInfo.reqmedia[i][0]
-
- try:
- self.dsCallback = DownloadHeaderProgress(intf, self)
- self.populateTs(keepold=0)
- self.dsCallback.pop()
- self.dsCallback = None
- except RepoError, e:
- msg = _("There was an error running your transaction for "
- "the following reason: %s
") % str(e)
+ try:
+ self.dsCallback = DownloadHeaderProgress(intf, self)
+ self.populateTs(keepold=0)
+ self.dsCallback.pop()
+ self.dsCallback = None
+ except RepoError, e:
+ msg = _("There was an error running your transaction for "
+ "the following reason: %s
") % str(e)
def _run(self, instLog, cb, intf):
# set log fd. FIXME: this is ugly. see changelog entry from 2005-09-13
@@ -1965,17 +1934,9 @@ reposdir=/etc/anaconda.repos.d,/tmp/updates/anaconda.repos.d,/tmp/product/anacon
allPkgNames = map(lambda pkg: pkg.name, self.ayum.pkgSack.returnPackages())
allPkgNames.sort()
- # On CD/DVD installs, we have one transaction per CD and will end up
- # checking allPkgNames against a very short list of packages. So we
- # have to reset to media #0, which is an all packages transaction.
- old = self.ayum.tsInfo.curmedia
- self.ayum.tsInfo.curmedia = 0
-
self.ayum.tsInfo.makelists()
txmbrNames = map (lambda x: x.name, self.ayum.tsInfo.getMembers())
- self.ayum.tsInfo.curmedia = old
-
if len(self.ayum.tsInfo.instgroups) == 0 and len(txmbrNames) == 0:
return
--
1.7.1.1
_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list