On Wed, 2007-05-16 at 16:07 -0400, Jeremy Katz wrote:
> On Wed, 2007-05-16 at 15:58 -0400, Jeremy Katz wrote:
> > In some (light at this point) testing, everything seems to work but if I
> > didn't break anything, I'll be shocked. Thoughts, comments, other
> > ideas?
>
> Blah, actually attached..
And as a non-zero byte file.
I think I need a vacation :-)
Jeremy
Index: output.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/output.py,v
retrieving revision 1.76
diff -u -u -r1.76 output.py
--- output.py 21 Jan 2007 20:22:30 -0000 1.76
+++ output.py 16 May 2007 20:11:13 -0000
@@ -311,6 +311,7 @@
def setupProgessCallbacks(self):
"""sets up the progress callbacks and various
output bars based on debug level"""
+ print "setupprogress"
# if we're below 2 on the debug level we don't need to be outputting
# progress bars - this is hacky - I'm open to other options
@@ -332,6 +333,9 @@
# setup our depsolve progress callback
dscb = DepSolveProgressCallBack()
self.dsCallback = dscb
+
+ print "setupprogress done"
+
def interrupt_callback(self, cbobj):
'''Handle CTRL-C's during downloads
Index: yum/__init__.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/__init__.py,v
retrieving revision 1.326
diff -u -u -r1.326 __init__.py
--- yum/__init__.py 14 May 2007 18:39:58 -0000 1.326
+++ yum/__init__.py 16 May 2007 20:11:13 -0000
@@ -71,7 +71,7 @@
self._pkgSack = None
self.logger = logging.getLogger("yum.YumBase")
self.verbose_logger = logging.getLogger("yum.verbose.YumBase")
- self._repos = None
+ self._repos = RepoStorage(self)
# Start with plugins disabled
self.disablePlugins()
@@ -182,8 +182,7 @@
#FIXME this method could be a simpler
- self.conf._reposlist = []
-
+ reposlist = []
# Check yum.conf for repositories
for section in self.conf.cfg.sections():
# All sections except [main] are repositories
@@ -195,7 +194,7 @@
except (Errors.RepoError, Errors.ConfigError), e:
self.logger.warning(e)
else:
- self.conf._reposlist.append(thisrepo)
+ reposlist.append(thisrepo)
# Read .repo files from directories specified by the reposdir option
# (typically /etc/yum/repos.d)
@@ -220,8 +219,15 @@
except (Errors.RepoError, Errors.ConfigError), e:
self.logger.warning(e)
else:
- self.conf._reposlist.append(thisrepo)
+ reposlist.append(thisrepo)
+ # Got our list of repo objects, add them to the repos collection
+ for thisrepo in reposlist:
+ try:
+ self._repos.add(thisrepo)
+ except Errors.RepoError, e:
+ self.logger.warning(e)
+ continue
def readRepoConfig(self, parser, section):
'''Parse an INI file section for a repository.
@@ -314,40 +320,9 @@
"""grabs the repomd.xml for each enabled repository and sets up
the basics of the repository"""
- if not self._repos:
- self._repos = RepoStorage()
- # Get our list of repo objects from conf, add them to the repos collection
- for r in self.conf._reposlist:
- try:
- self._repos.add(r)
- except Errors.RepoError, e:
- self.logger.warning(e)
- continue
- elif not doSetup:
- return self._repos
-
- self.plugins.run('prereposetup')
-
- if thisrepo is None:
- repos = self._repos.listEnabled()
- else:
- repos = self._repos.findRepos(thisrepo)
-
- if len(repos) < 1:
- self.logger.critical('No Repositories Available to Set Up')
-
- num = 1
- for repo in repos:
- repo.setup(self.conf.cache, self.mediagrabber)
- num += 1
-
-
- if self._repos.callback and len(repos) > 0:
- self._repos.callback.progressbar(num, len(repos), repo.id)
-
- self.plugins.run('postreposetup')
+ if doSetup:
+ self._repos.doSetup(thisrepo)
return self._repos
-
def doSackSetup(self, archlist=None, thisrepo=None):
warnings.warn('doSackSetup() will go away in a future version of Yum.\n',
Index: yum/repos.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/repos.py,v
retrieving revision 1.105
diff -u -u -r1.105 repos.py
--- yum/repos.py 25 Apr 2007 18:28:31 -0000 1.105
+++ yum/repos.py 16 May 2007 20:11:13 -0000
@@ -27,13 +27,39 @@
"""This class contains multiple repositories and core configuration data
about them."""
- def __init__(self):
+ def __init__(self, ayum):
self.repos = {} # list of repos by repoid pointing a repo object
# of repo options/misc data
self.callback = None # progress callback used for populateSack() for importing the xml files
self.cache = 0
self.pkgSack = MetaSack()
+ self._setup = False
+
+ self.ayum = ayum
+
+ def doSetup(self, thisrepo = None):
+ self.ayum.plugins.run('prereposetup')
+
+ if thisrepo is None:
+ repos = self.listEnabled()
+ else:
+ repos = self.findRepos(thisrepo)
+
+ if len(repos) < 1:
+ self.logger.critical('No Repositories Available to Set Up')
+
+ num = 1
+ for repo in repos:
+ repo.setup(self.ayum.conf.cache, self.ayum.mediagrabber)
+ num += 1
+
+
+ if self.callback and len(repos) > 0:
+ self.callback.progressbar(num, len(repos), repo.id)
+
+ self._setup = True
+ self.ayum.plugins.run('postreposetup')
def __str__(self):
return str(self.repos.keys())
@@ -177,6 +203,9 @@
arguments: which='repoid, enabled, all'
mdtype='metadata, filelists, otherdata, all'"""
+ if not self._setup:
+ self.doSetup()
+
if not callback:
callback = self.callback
myrepos = []
_______________________________________________
Yum-devel mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/yum-devel