---
 yum/yumRepo.py |   37 +++++++++++++++++--------------------
 1 files changed, 17 insertions(+), 20 deletions(-)

diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 91b7dde..8ef14a4 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -269,7 +269,6 @@ class YumRepository(Repository, config.RepoConf):
         self.failure_obj = None
         self.mirror_failure_obj = None
         self.interrupt_callback = None
-        self._callbacks_changed = False
 
         # callback function for handling media
         self.mediafunc = None
@@ -474,15 +473,7 @@ class YumRepository(Repository, config.RepoConf):
                 Errors.YumFutureDeprecationWarning, stacklevel=2)
         self._setupGrab()
 
-    def _setupGrab(self):
-        """sets up the grabber functions with the already stocked in urls for
-           the mirror groups"""
-
-        if self.failovermethod == 'roundrobin':
-            mgclass = urlgrabber.mirror.MGRandomOrder
-        else:
-            mgclass = urlgrabber.mirror.MirrorGroup
-
+    def _setupGrabFunc(self):
         ugopts = self._default_grabopts()
         self._grabfunc = URLGrabber(progress_obj=self.callback,
                                     failure_callback=self.failure_obj,
@@ -491,7 +482,15 @@ class YumRepository(Repository, config.RepoConf):
                                     reget='simple',
                                     **ugopts)
 
-        self._grab = mgclass(self._grabfunc, self.urls,
+    def _setupGrab(self):
+        """sets up the grabber functions with the already stocked in urls for
+           the mirror groups"""
+
+        if self.failovermethod == 'roundrobin':
+            mgclass = urlgrabber.mirror.MGRandomOrder
+        else:
+            mgclass = urlgrabber.mirror.MirrorGroup
+        self._grab = mgclass(self.grabfunc, self.urls,
                              failure_callback=self.mirror_failure_obj)
 
     def _default_grabopts(self, cache=True):
@@ -515,15 +514,13 @@ class YumRepository(Repository, config.RepoConf):
         return opts
 
     def _getgrabfunc(self):
-        if not self._grabfunc or self._callbacks_changed:
-            self._setupGrab()
-            self._callbacks_changed = False
+        if not self._grabfunc:
+            self._setupGrabFunc()
         return self._grabfunc
 
     def _getgrab(self):
-        if not self._grab or self._callbacks_changed:
+        if not self._grab:
             self._setupGrab()
-            self._callbacks_changed = False
         return self._grab
 
     grabfunc = property(lambda self: self._getgrabfunc())
@@ -1666,19 +1663,19 @@ Insufficient space in download directory %s
 
     def setCallback(self, callback):
         self.callback = callback
-        self._callbacks_changed = True
+        self._grabfunc = self._grab = None
 
     def setFailureObj(self, failure_obj):
         self.failure_obj = failure_obj
-        self._callbacks_changed = True
+        self._grabfunc = self._grab = None
 
     def setMirrorFailureObj(self, failure_obj):
         self.mirror_failure_obj = failure_obj
-        self._callbacks_changed = True
+        self._grab = None
 
     def setInterruptCallback(self, callback):
         self.interrupt_callback = callback
-        self._callbacks_changed = True
+        self._grabfunc = self._grab = None
 
     def _readMirrorList(self, fo, url=None):
         """ read the mirror list from the specified file object """
-- 
1.7.4.4

_______________________________________________
Yum-devel mailing list
[email protected]
http://lists.baseurl.org/mailman/listinfo/yum-devel

Reply via email to