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

Reply via email to