[yum-cvs] yum/__init__.py yum/yumRepo.py
Seth Vidal
skvidal at linux.duke.edu
Fri Aug 3 05:03:43 UTC 2007
yum/__init__.py | 21 +++++++++++++++++++--
yum/yumRepo.py | 5 ++++-
2 files changed, 23 insertions(+), 3 deletions(-)
New commits:
commit fa218162007328421f19f18a54e627d13e270fc7
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri Aug 3 01:03:15 2007 -0400
- setup a way to reset all the package sacks
- add _resetSack() method to YumRepository objects
- all other external repo objects need to add them as well, or we'll emit a warning but carry on like we did before
diff --git a/yum/__init__.py b/yum/__init__.py
index 339da76..dbe4432 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -381,7 +381,24 @@ class YumBase(depsolve.Depsolve):
self._pkgSack.buildIndexes()
return self._pkgSack
-
+
+ def _delSacks(self):
+ """reset the package sacks back to zero - making sure to nuke the ones
+ in the repo objects, too - where it matters"""
+
+ # nuke the top layer
+
+ self._pkgSack = None
+
+ for repo in self.repos.repos.values():
+ if hasattr(repo, '_resetSack'):
+ repo._resetSack()
+ else:
+ warnings.warn('repo object for repo %s lacks a _resetSack method\n' +
+ 'therefore this repo cannot be reset.\n',
+ Errors.YumFutureDeprecationWarning, stacklevel=2)
+
+
def doUpdateSetup(self):
warnings.warn('doUpdateSetup() will go away in a future version of Yum.\n',
Errors.YumFutureDeprecationWarning, stacklevel=2)
@@ -490,7 +507,7 @@ class YumBase(depsolve.Depsolve):
fdel=lambda self: setattr(self, "_repos", None))
pkgSack = property(fget=lambda self: self._getSacks(),
fset=lambda self, value: setattr(self, "_pkgSack", value),
- fdel=lambda self: setattr(self, "_pkgSack", None))
+ fdel=lambda self: self._delSacks())
conf = property(fget=lambda self: self._getConfig(),
fset=lambda self, value: setattr(self, "_conf", value),
fdel=lambda self: setattr(self, "_conf", None))
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index c70a431..70dd73f 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -254,7 +254,10 @@ class YumRepository(Repository, config.RepoConf):
def close(self):
self.sack.close()
Repository.close(self)
-
+
+ def _resetSack(self):
+ self.sack = self.storage.GetPackageSack()
+
def __getProxyDict(self):
self.doProxyDict()
if self._proxy_dict:
More information about the Yum-cvs-commits
mailing list