[Yum-devel] [PATCH 3/4] Rearranges the order of the functions in YumCronBase to match the order that they are called in updatesCheck.
Nick Jacek
njacek at redhat.com
Mon Jul 23 18:10:45 UTC 2012
---
new-yum-cron/yum-cron.py | 105 +++++++++++++++++++++++------------------------
1 file changed, 52 insertions(+), 53 deletions(-)
diff --git a/new-yum-cron/yum-cron.py b/new-yum-cron/yum-cron.py
index e5eb0ae..6d57fdb 100755
--- a/new-yum-cron/yum-cron.py
+++ b/new-yum-cron/yum-cron.py
@@ -730,6 +730,16 @@ class YumCronBase(yum.YumBase):
self.updateInfo = []
self.updateInfoTime = None
+ def randomSleep(self, duration):
+ """Sleep for a random amount of time up to *duration*.
+
+ :param duration: the maximum amount of time to sleep, in
+ minutes. The actual time slept will be between 0 and
+ *duration* minutes
+ """
+ if duration > 0:
+ sleep(random() * 60 * duration)
+
def doSetup(self):
"""Perform set up, including setting up directories and
parsing options.
@@ -784,6 +794,48 @@ class YumCronBase(yum.YumBase):
return False
return True
+ def populateUpdateMetadata(self):
+ """Populate the metadata for the packages in the update."""
+
+ self.updateMetadata = UpdateMetadata()
+ repos = []
+
+ for (new, old) in self.up.getUpdatesTuples():
+ pkg = self.getPackageObject(new)
+ if pkg.repoid not in repos:
+ repo = self.repos.getRepo(pkg.repoid)
+ repos.append(repo.id)
+ try: # grab the updateinfo.xml.gz from the repodata
+ md = repo.retrieveMD('updateinfo')
+ except Exception: # can't find any; silently move on
+ continue
+ md = gzip.open(md)
+ self.updateMetadata.add(md)
+ md.close()
+
+ def refreshUpdates(self):
+ try:
+ # figure out the updates
+ for (new, old) in self.up.getUpdatesTuples():
+ updating = self.getPackageObject(new)
+ updated = self.rpmdb.searchPkgTuple(old)[0]
+
+ self.tsInfo.addUpdate(updating, updated)
+
+ # and the obsoletes
+ if self.conf.obsoletes:
+ for (obs, inst) in self.up.getObsoletesTuples():
+ obsoleting = self.getPackageObject(obs)
+ installed = self.rpmdb.searchPkgTuple(inst)[0]
+
+ self.tsInfo.addObsoleting(obsoleting, installed)
+ self.tsInfo.addObsoleted(installed, obsoleting)
+
+ except Exception, e:
+ self.emitCheckFailed("%s" %(e,))
+ return False
+ return True
+
def downloadUpdates(self, emit):
# Emit a message that that updates will be downloaded
if emit :
@@ -848,59 +900,6 @@ class YumCronBase(yum.YumBase):
self.emitMessages()
return True
- def populateUpdateMetadata(self):
- """Populate the metadata for the packages in the update."""
-
- self.updateMetadata = UpdateMetadata()
- repos = []
-
- for (new, old) in self.up.getUpdatesTuples():
- pkg = self.getPackageObject(new)
- if pkg.repoid not in repos:
- repo = self.repos.getRepo(pkg.repoid)
- repos.append(repo.id)
- try: # grab the updateinfo.xml.gz from the repodata
- md = repo.retrieveMD('updateinfo')
- except Exception: # can't find any; silently move on
- continue
- md = gzip.open(md)
- self.updateMetadata.add(md)
- md.close()
-
- def refreshUpdates(self):
- try:
- # figure out the updates
- for (new, old) in self.up.getUpdatesTuples():
- updating = self.getPackageObject(new)
- updated = self.rpmdb.searchPkgTuple(old)[0]
-
- self.tsInfo.addUpdate(updating, updated)
-
- # and the obsoletes
- if self.conf.obsoletes:
- for (obs, inst) in self.up.getObsoletesTuples():
- obsoleting = self.getPackageObject(obs)
- installed = self.rpmdb.searchPkgTuple(inst)[0]
-
- self.tsInfo.addObsoleting(obsoleting, installed)
- self.tsInfo.addObsoleted(installed, obsoleting)
-
- except Exception, e:
- self.emitCheckFailed("%s" %(e,))
- return False
- return True
-
- def randomSleep(self, duration):
- """Sleep for a random amount of time up to *duration*.
-
- :param duration: the maximum amount of time to sleep, in
- minutes. The actual time slept will be between 0 and
- *duration* minutes
- """
- if duration > 0:
- sleep(random() * 60 * duration)
-
-
def updatesCheck(self):
"""Check to see whether updates are available for any
installed packages. If updates are available, install them,
--
1.7.11.2
More information about the Yum-devel
mailing list