set repo.old_base_cache_dir properly
authorZdeněk Pavlas <zpavlas@redhat.com>
Wed, 30 May 2012 12:07:40 +0000 (14:07 +0200)
committerZdeněk Pavlas <zpavlas@redhat.com>
Fri, 1 Jun 2012 14:20:22 +0000 (16:20 +0200)
Preloading is broken for some time (since prerepoconf?)
as YumBase.setCacheDir() throws away the old conf.cachedir.

- save it to _old_cachedir
- use that to initialize repo.old_base_cache_dir
- no update when new==old

yum/__init__.py
yum/repos.py

index 1e4acd5..4650639 100644 (file)
@@ -578,6 +578,7 @@ class YumBase(depsolve.Depsolve):
         repo.name = to_unicode(repo.name)
 
         # Set attributes not from the config file
+        repo.old_base_cache_dir = getattr(self, '_old_cachedir', '')
         repo.basecachedir = self.conf.cachedir
         repo.yumvar.update(self.conf.yumvar)
         repo.cfg = parser
@@ -5957,6 +5958,7 @@ class YumBase(depsolve.Depsolve):
             self.prerepoconf.cachedir = cachedir
         else:
             self.repos.setCacheDir(cachedir)
+        self._old_cachedir = self.conf.cachedir
         self.conf.cachedir = cachedir
         return True # We got a new cache dir
 
index bd8f1a4..4b1d52e 100644 (file)
@@ -257,8 +257,9 @@ class RepoStorage:
         
         self._cachedir = cachedir
         for repo in self.repos.values():
-            repo.old_base_cache_dir = repo.basecachedir
-            repo.basecachedir = cachedir
+            if cachedir != repo.basecachedir:
+                repo.old_base_cache_dir = repo.basecachedir
+                repo.basecachedir = cachedir
 
 
     def setProgressBar(self, obj):