[yum-cvs] yum/callbacks.py yum/__init__.py
Tim Lauridsen
timlau at linux.duke.edu
Thu Aug 30 10:45:44 UTC 2007
yum/__init__.py | 25 +++++++++++++++----------
yum/callbacks.py | 9 +++++----
2 files changed, 20 insertions(+), 14 deletions(-)
New commits:
commit 003ef7e7faaad33fb3156fcf9501a47422325cbc
Author: Tim Lauridsen <tla at rasmil.dk>
Date: Thu Aug 30 12:42:44 2007 +0200
* Added extra processTransaction callback event PT_DOWNLOAD_PKGS called with packages to download.
* Make the processTransaction Download & GPG check a little smarter, no need to call the download & GPG check code, if there is nothing to download.
diff --git a/yum/__init__.py b/yum/__init__.py
index 565d6c1..f7d6946 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2196,24 +2196,29 @@ class YumBase(depsolve.Depsolve):
# Download Packages
callback.event(callbacks.PT_DOWNLOAD)
- pkgs = self._downloadPackages()
+ pkgs = self._downloadPackages(callback)
# Check Package Signatures
- callback.event(callbacks.PT_GPGCHECK)
- self._checkSignatures(pkgs)
+ if pkgs != None:
+ callback.event(callbacks.PT_GPGCHECK)
+ self._checkSignatures(pkgs,callback)
# Run Test Transaction
callback.event(callbacks.PT_TEST_TRANS)
- self._doTestTransaction(display=rpmTestDisplay)
+ self._doTestTransaction(callback,display=rpmTestDisplay)
# Run Transaction
callback.event(callbacks.PT_TRANSACTION)
- self._doTransaction(display=rpmDisplay)
+ self._doTransaction(callback,display=rpmDisplay)
- def _downloadPackages(self):
+ def _downloadPackages(self,callback):
''' Download the need packages in the Transaction '''
# This can be overloaded by a subclass.
dlpkgs = map(lambda x: x.po, filter(lambda txmbr:
txmbr.ts_state in ("i", "u"),
self.tsInfo.getMembers()))
-
+ # Check if there is something to do
+ if len(dlpkgs) == 0:
+ return None
+ # make callback with packages to download
+ callback.event(callbacks.PT_DOWNLOAD_PKGS,dlpkgs)
try:
probs = self.downloadPkgs(dlpkgs)
@@ -2229,7 +2234,7 @@ class YumBase(depsolve.Depsolve):
raise yum.Errors.YumDownloadError, errstr
return dlpkgs
- def _checkSignatures(self,pkgs):
+ def _checkSignatures(self,pkgs,callback):
''' The the signatures of the downloaded packages '''
# This can be overloaded by a subclass.
for po in pkgs:
@@ -2251,7 +2256,7 @@ class YumBase(depsolve.Depsolve):
'''
return False
- def _doTestTransaction(self,display=None):
+ def _doTestTransaction(self,callback,display=None):
''' Do the RPM test transaction '''
# This can be overloaded by a subclass.
if self.conf.rpm_check_debug:
@@ -2294,7 +2299,7 @@ class YumBase(depsolve.Depsolve):
self.dsCallback = dscb
- def _doTransaction(self,display=None):
+ def _doTransaction(self,callback,display=None):
''' do the RPM Transaction '''
# This can be overloaded by a subclass.
self.initActionTs() # make a new, blank ts to populate
diff --git a/yum/callbacks.py b/yum/callbacks.py
index 10a2c43..dae704b 100644
--- a/yum/callbacks.py
+++ b/yum/callbacks.py
@@ -19,10 +19,11 @@ import logging
# ProcessTransaction States
-PT_DOWNLOAD = 0
-PT_GPGCHECK = 1
-PT_TEST_TRANS = 2
-PT_TRANSACTION = 3
+PT_DOWNLOAD = 10 # Start Download
+PT_DOWNLOAD_PKGS = 11 # Packages to download
+PT_GPGCHECK = 20 # Start Checkin Package Signatures
+PT_TEST_TRANS = 30 # Start Test Transaction
+PT_TRANSACTION = 40 # Start Transaction
PT_MESSAGES = { PT_DOWNLOAD : "Downloading Packages",
PT_GPGCHECK : "Check Package Signatures",
More information about the Yum-cvs-commits
mailing list