bodhi/tools/clean-testing.py | 29 ++++++++++++++++-------------
1 file changed, 16 insertions(+), 13 deletions(-)
New commits:
commit 9336c8f89db6d4e8e2dec82badf54c8169fc3589
Author: Luke Macken <lmacken(a)redhat.com>
Date: Fri Sep 10 16:52:42 2010 -0400
More clean-testing.py improvements
diff --git a/bodhi/tools/clean-testing.py b/bodhi/tools/clean-testing.py
index 18a3ae8..9ce6b69 100755
--- a/bodhi/tools/clean-testing.py
+++ b/bodhi/tools/clean-testing.py
@@ -13,11 +13,11 @@ import turbogears
from sqlobject import SQLObjectNotFound, AND
from turbogears.database import PackageHub
-from bodhi.util import load_config
+from bodhi.util import load_config, build_evr
from bodhi.model import Release, PackageBuild, PackageUpdate
from bodhi.buildsys import get_session
-def compare_builds(testing_build, stable_build, untag):
+def compare_builds(testing_build, stable_build, untag, tag):
if stable_build['package_name'] == testing_build['package_name']:
if rpm.labelCompare((str(testing_build['epoch']),
testing_build['version'],
@@ -42,9 +42,8 @@ def compare_builds(testing_build, stable_build, untag):
except SQLObjectNotFound:
if untag:
print "Untagging via koji"
- koji.untagBuild(release.testing_tag,
- testing_build['nvr'],
- force=True)
+ koji = get_session()
+ koji.untagBuild(tag, testing_build['nvr'], force=True)
else:
print "Need to untag koji build %s" %
testing_build['nvr']
@@ -62,9 +61,9 @@ def clean_testing_builds(untag=False):
testing_nvrs = [build['nvr'] for build in testing_builds]
for testing_build in testing_builds:
for build in testing_builds:
- compare_builds(testing_build, build, untag)
+ compare_builds(testing_build, build, untag, release.testing_tag)
for build in stable_builds:
- compare_builds(testing_build, build, untag)
+ compare_builds(testing_build, build, untag, release.testing_tag)
# Find testing updates that aren't in the list of latest builds
for update in PackageUpdate.select(AND(PackageUpdate.q.releaseID==release.id,
@@ -82,12 +81,16 @@ def clean_testing_builds(untag=False):
if stable.startswith(build.package.name + '-'):
latest_stable = stable
break
- print "%s in testing, latest_testing = %s, latest_stable =
%s" % (
- update.title, latest_testing, latest_stable)
- if untag:
- print "Obsoleting %s" % update.title
- assert latest_testing
- update.obsolete(newer=latest_testing)
+ if latest_testing:
+ koji_build = koji.getBuild(build.nvr)
+ latest_build = koji.getBuild(latest_testing)
+ if rpm.labelCompare(build_evr(koji_build),
+ build_evr(latest_build)) < 0:
+ print "%s in testing, latest_testing = %s, latest_stable
= %s" % (
+ update.title, latest_testing, latest_stable)
+ if untag:
+ print "Obsoleting %s" % update.title
+ update.obsolete(newer=latest_testing)
if __name__ == '__main__':