[yum-cvs] yum/yum yumRepo.py,1.44,1.45

Jeremy Katz katzj at linux.duke.edu
Wed Apr 25 22:12:36 UTC 2007


Update of /home/groups/yum/cvs/yum/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv14353/yum

Modified Files:
	yumRepo.py 
Log Message:
make repoXML a property so that we don't get it until we need it.  this 
fixes --disablerepo (rh#230851) and -C working offline (rh#223607)


Index: yumRepo.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/yumRepo.py,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- yumRepo.py	25 Apr 2007 18:28:31 -0000	1.44
+++ yumRepo.py	25 Apr 2007 22:12:34 -0000	1.45
@@ -213,7 +213,7 @@
         self.groupsfilename = 'yumgroups.xml' # something some freaks might
                                               # eventually want
         self.repoMDFile = 'repodata/repomd.xml'
-        self.repoXML = None
+        self._repoXML = None
         self.cache = 0
         self.mirrorlistparsed = 0
         self.yumvar = {} # empty dict of yumvariables for $string replacement
@@ -446,6 +446,7 @@
         goodurls = []
         if self.mirrorlist and not self.mirrorlistparsed:
             mirrorurls = getMirrorList(self.mirrorlist, self.proxy_dict)
+            print mirrorurls
             self.mirrorlistparsed = 1
             for url in mirrorurls:
                 url = parser.varReplace(url, self.yumvar)
@@ -629,18 +630,13 @@
         except Errors.RepoError, e:
             raise
 
-        try:
-            self._loadRepoXML(text=self)
-        except Errors.RepoError, e:
-            raise Errors.RepoError, ('Cannot open/read repomd.xml file for repository: %s' % self)
-
 
     def _loadRepoXML(self, text=None):
         """retrieve/check/read in repomd.xml from the repository"""
 
         remote = self.repoMDFile
         local = self.cachedir + '/repomd.xml'
-        if self.repoXML is not None:
+        if self._repoXML is not None:
             return
     
         if self.cache or self.metadataCurrent():
@@ -666,10 +662,24 @@
             self.setMetadataCookie()
 
         try:
-            self.repoXML = repoMDObject.RepoMD(self.id, result)
+            self._repoXML = repoMDObject.RepoMD(self.id, result)
         except Errors.RepoMDError, e:
             raise Errors.RepoError, 'Error importing repomd.xml from %s: %s' % (self, e)
 
+    def _getRepoXML(self):
+        if self._repoXML:
+            return self._repoXML
+        try:
+            self._loadRepoXML(text=self)
+        except Errors.RepoError, e:
+            raise Errors.RepoError, ('Cannot open/read repomd.xml file for repository: %s' % self)
+        return self._repoXML
+        
+
+    repoXML = property(fget=lambda self: self._getRepoXML(),
+                       fset=lambda self, val: setattr(self, "_repoXML", val),
+                       fdel=lambda self: setattr(self, "_repoXML", None))
+
     def _checkRepoXML(self, fo):
         if type(fo) is types.InstanceType:
             filepath = fo.filename




More information about the Yum-cvs-commits mailing list