2 commits - bodhi/masher.py bodhi/static
by Luke Macken
bodhi/masher.py | 4 ++--
bodhi/static/images/newpackage.png |binary
2 files changed, 2 insertions(+), 2 deletions(-)
New commits:
commit 2593ccd4988a7b14a438a24e3f5551ea4bb2aad8
Author: Luke Macken <lmacken(a)redhat.com>
Date: Wed Jul 8 23:04:16 2009 -0400
Add a newpackage icon, thanks to Mo (#232)
diff --git a/bodhi/static/images/newpackage.png b/bodhi/static/images/newpackage.png
new file mode 100644
index 0000000..46bce08
Binary files /dev/null and b/bodhi/static/images/newpackage.png differ
commit 2eaab6d81dbd049888e4f848504d9f852174ded8
Author: Luke Macken <lmacken(a)redhat.com>
Date: Wed Jul 8 22:40:29 2009 -0400
Minor tweak of our updates-testing subject
diff --git a/bodhi/masher.py b/bodhi/masher.py
index 98b6c77..9c7df3c 100644
--- a/bodhi/masher.py
+++ b/bodhi/masher.py
@@ -687,8 +687,8 @@ class MashTask(Thread):
release = Release.select(Release.q.long_name==prefix)[0]
mail.send_mail(config.get('bodhi_email'),
config.get('%s_test_announce_list' %
- release.id_prefix.lower().replace('-', '_')),
- '%s updates-testing report' % prefix.title(),
+ release.id_prefix.lower().replace('-', '_')),
+ '%s updates-testing report' % prefix,
maildata)
def wait_for_sync(self):
14 years, 10 months
bodhi/masher.py
by Luke Macken
bodhi/masher.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit f800dde85f048a8667ee204acd3fd57d8f38ca0d
Author: Luke Macken <lmacken(a)redhat.com>
Date: Wed Jul 8 21:53:50 2009 -0400
Fix the way we lookup the announcement list
diff --git a/bodhi/masher.py b/bodhi/masher.py
index a3125e1..98b6c77 100644
--- a/bodhi/masher.py
+++ b/bodhi/masher.py
@@ -687,7 +687,7 @@ class MashTask(Thread):
release = Release.select(Release.q.long_name==prefix)[0]
mail.send_mail(config.get('bodhi_email'),
config.get('%s_test_announce_list' %
- release.id_prefix.lower()),
+ release.id_prefix.lower().replace('-', '_')),
'%s updates-testing report' % prefix.title(),
maildata)
14 years, 10 months
bodhi/config bodhi/masher.py
by Luke Macken
bodhi/config/app.cfg | 3 +++
bodhi/masher.py | 3 ++-
2 files changed, 5 insertions(+), 1 deletion(-)
New commits:
commit 38c057bc7002d8995d0af59f8971cbc9183a5166
Author: Luke Macken <lmacken(a)redhat.com>
Date: Wed Jul 8 19:42:42 2009 -0400
Handle looking for different repomd.xml's on the mirror, based on Release.id_prefix
diff --git a/bodhi/config/app.cfg b/bodhi/config/app.cfg
index a518759..5a99790 100644
--- a/bodhi/config/app.cfg
+++ b/bodhi/config/app.cfg
@@ -46,6 +46,9 @@ file_url = 'http://download.fedoraproject.org/pub/fedora/linux/updates'
master_repomd = 'http://download.fedora.redhat.com/pub/fedora/linux/updates/%d/i386/repoda...'
master_newkey_repomd = 'http://download.fedora.redhat.com/pub/fedora/linux/updates/%d/i386.newkey...'
+fedora_master_repomd = 'http://download.fedora.redhat.com/pub/fedora/linux/updates/%d/i386/repoda...'
+fedora_epel_master_repomd = 'http://download.fedora.redhat.com/pub/epel/%d/i386/repodata/repomd.xml'
+
## The base url of this application (should not include server.webpath)
base_address = 'http://localhost:8084'
diff --git a/bodhi/masher.py b/bodhi/masher.py
index 017f863..a3125e1 100644
--- a/bodhi/masher.py
+++ b/bodhi/masher.py
@@ -704,7 +704,8 @@ class MashTask(Thread):
self.updates.add(update)
mashdir = config.get('mashed_dir')
repo = release.stable_repo
- master_repomd = config.get('master_repomd')
+ master_repomd = config.get('%s_master_repomd' %
+ release.id_prefix.lower().replace('-', '_'))
repomd = join(mashdir, repo, 'i386', 'repodata', 'repomd.xml')
if not exists(repomd):
log.error("Cannot find local repomd: %s" % repomd)
14 years, 10 months
bodhi/config bodhi/jobs.py
by Luke Macken
bodhi/config/app.cfg | 2 +-
bodhi/jobs.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
New commits:
commit 3318924e15e6b2c95150a2ef04650a7ee67c5371
Author: Luke Macken <lmacken(a)redhat.com>
Date: Wed Jul 8 14:28:33 2009 -0400
Make our `refresh_metrics` job configurable
diff --git a/bodhi/config/app.cfg b/bodhi/config/app.cfg
index b2f8641..a518759 100644
--- a/bodhi/config/app.cfg
+++ b/bodhi/config/app.cfg
@@ -33,7 +33,7 @@ createrepo_cache_dir = "/var/tmp/createrepo"
## Our periodic jobs
#jobs = 'clean_repo nagmail fix_bug_titles cache_release_data'
-jobs = 'cache_release_data'
+jobs = 'cache_release_data refresh_metrics'
## Comps configuration
comps_dir = '/usr/share/bodhi/comps'
diff --git a/bodhi/jobs.py b/bodhi/jobs.py
index 33ec20b..6ee7adc 100644
--- a/bodhi/jobs.py
+++ b/bodhi/jobs.py
@@ -186,7 +186,7 @@ def schedule():
interval=43200)
# If we're the masher, then handle the costly metric regenration
- if not config.get('masher'):
+ if not config.get('masher') and 'refresh_metrics' in jobs:
log.debug("Scheduling refresh_metrics job")
scheduler.add_interval_task(action=refresh_metrics,
taskname='Refresh our metrics',
14 years, 10 months
5 commits - bodhi/controllers.py bodhi/masher.py bodhi/model.py
by Luke Macken
bodhi/controllers.py | 4 ++--
bodhi/masher.py | 4 +++-
bodhi/model.py | 6 +++---
3 files changed, 8 insertions(+), 6 deletions(-)
New commits:
commit 5d72fc051fdac027c69988e37d992c6e26586503
Author: Luke Macken <lmacken(a)redhat.com>
Date: Wed Jul 8 12:21:30 2009 -0400
Tweak our save() decorator ordering
diff --git a/bodhi/controllers.py b/bodhi/controllers.py
index 9e212f1..5d3dedc 100644
--- a/bodhi/controllers.py
+++ b/bodhi/controllers.py
@@ -450,8 +450,8 @@ class Root(controllers.RootController):
title='Edit Update')
@expose(allow_json=True)
- @json_redirect
@error_handler(new.index)
+ @json_redirect
@validate(form=update_form)
@identity.require(identity.not_anonymous())
def save(self, builds, type_, notes, bugs, close_bugs=False, edited=False,
commit c6b31bc533bcee76eed9011a6f5891b9678486b3
Author: Luke Macken <lmacken(a)redhat.com>
Date: Wed Jul 8 12:21:18 2009 -0400
More tag abstraction fixes
diff --git a/bodhi/model.py b/bodhi/model.py
index f95c780..8cb15b9 100644
--- a/bodhi/model.py
+++ b/bodhi/model.py
@@ -381,7 +381,7 @@ class PackageUpdate(SQLObject):
mybuild['nvr'] = "%s-%s-%s" % (mybuild['name'],
mybuild['version'],
mybuild['release'])
- kojiBuilds = koji.listTagged(self.release.dist_tag + '-updates',
+ kojiBuilds = koji.listTagged(self.release.stable_tag,
package=build.package.name,
latest=True)
for oldBuild in kojiBuilds:
@@ -709,7 +709,7 @@ class PackageUpdate(SQLObject):
tasks = []
newtag = self.release.candidate_tag
curtag = self.get_build_tag()
- if curtag.endswith('-updates-candidate'):
+ if curtag == self.release.candidate_tag:
log.debug("%s already unpushed" % self.title)
return
log.debug("Unpushing %s" % self.title)
commit 58cdb616754ad66c8dd8089f8046d5984eeaecfb
Author: Luke Macken <lmacken(a)redhat.com>
Date: Wed Jul 8 11:47:19 2009 -0400
Fix another bug with our tag abstractions
diff --git a/bodhi/model.py b/bodhi/model.py
index e5292df..f95c780 100644
--- a/bodhi/model.py
+++ b/bodhi/model.py
@@ -707,7 +707,7 @@ class PackageUpdate(SQLObject):
""" Move this update back to its dist-fX-updates-candidate tag """
koji = buildsys.get_session()
tasks = []
- newtag = '%s-updates-candidate' % self.release.dist_tag
+ newtag = self.release.candidate_tag
curtag = self.get_build_tag()
if curtag.endswith('-updates-candidate'):
log.debug("%s already unpushed" % self.title)
commit f30a1799892ee424de10ec84401fe84cc512b7ce
Author: Luke Macken <lmacken(a)redhat.com>
Date: Wed Jul 8 11:40:40 2009 -0400
Fix a lame bug with our masher's updates set
diff --git a/bodhi/masher.py b/bodhi/masher.py
index 5320467..017f863 100644
--- a/bodhi/masher.py
+++ b/bodhi/masher.py
@@ -167,8 +167,10 @@ class MashTask(Thread):
self.tag = None
self.updates = set()
map(self.updates.add, updates)
+ up = self.updates.pop()
+ self.updates.add(up)
# eg: MASHING-FEDORA, MASHING-FEDORA-EPEL
- self.mash_lock_id = self.updates[0].release.id_prefix
+ self.mash_lock_id = up.release.id_prefix
self.koji = buildsys.get_session()
# which repos do we want to compose? (updates|updates-testing)
self.repos = repos
commit 3b2003b5349aa0815c7d0069cce5bae1f5db3465
Author: Luke Macken <lmacken(a)redhat.com>
Date: Wed Jul 8 11:26:48 2009 -0400
Pass our release version as a string, not an int
diff --git a/bodhi/controllers.py b/bodhi/controllers.py
index 922cce6..9e212f1 100644
--- a/bodhi/controllers.py
+++ b/bodhi/controllers.py
@@ -569,7 +569,7 @@ class Root(controllers.RootController):
if release.candidate_tag in tags or \
release.testing_tag in tags:
pkgdb_args['collectionName'] = release.collection_name
- pkgdb_args['collectionVersion'] = release.get_version()
+ pkgdb_args['collectionVersion'] = str(release.get_version())
people, groups = get_pkg_pushers(pkg, **pkgdb_args)
people = people[0] # we only care about committers, not watchers
14 years, 10 months
bodhi/controllers.py bodhi/model.py
by Luke Macken
bodhi/controllers.py | 33 +++++++++++++++++----------------
bodhi/model.py | 5 +++++
2 files changed, 22 insertions(+), 16 deletions(-)
New commits:
commit a58e109a2ca29d78c27379e2737eaf7573e5f95c
Author: Luke Macken <lmacken(a)redhat.com>
Date: Wed Jul 8 10:54:20 2009 -0400
Add a cleaner hack to our pkgdb ACL detection code, that doesn't rely on dist tags
diff --git a/bodhi/controllers.py b/bodhi/controllers.py
index 3bdd046..922cce6 100644
--- a/bodhi/controllers.py
+++ b/bodhi/controllers.py
@@ -546,25 +546,30 @@ class Root(controllers.RootController):
people = None
groups = None
buildinfo[build] = {
- 'nvr' : util.get_nvr(build),
- 'releases' : set()
+ 'nvr' : util.get_nvr(build),
+ 'tags' : [],
+ 'people' : [],
+ 'releases' : set(),
}
pkg = buildinfo[build]['nvr'][0]
try:
+ buildinfo[build]['tags'] = [tag['name'] for tag in
+ koji.listTags(build)]
+ except GenericError:
+ flash_log("Invalid build: %s" % build)
+ raise InvalidUpdateException(params)
+ try:
# Grab a list of committers.
pkgdb_args = {
'collectionName': 'Fedora',
'collectionVersion': 'devel',
}
- dist = buildinfo[build]['nvr'][2].split('.')[1]
- if dist.startswith('el'):
- pkgdb_args['collectionName'] = 'Fedora EPEL'
- pkgdb_args['collectionVersion'] = dist.split('el')[1]
- elif dist.startswith('fc'):
- pkgdb_args['collectionVersion'] = dist.split('fc')[1]
- else:
- log.error("Cannot detect dist from release tag: %s" % dist)
- log.info("Defaulting to Fedora rawhide...")
+ tags = buildinfo[build]['tags']
+ for release in Release.select():
+ if release.candidate_tag in tags or \
+ release.testing_tag in tags:
+ pkgdb_args['collectionName'] = release.collection_name
+ pkgdb_args['collectionVersion'] = release.get_version()
people, groups = get_pkg_pushers(pkg, **pkgdb_args)
people = people[0] # we only care about committers, not watchers
@@ -607,11 +612,7 @@ class Root(controllers.RootController):
# which builds get pushed for which releases, based on the tag.
for build in builds:
valid = False
- try:
- tags = [tag['name'] for tag in koji.listTags(build)]
- except GenericError:
- flash_log("Invalid build: %s" % build)
- raise InvalidUpdateException(params)
+ tags = buildinfo[build]['tags']
# Determine which release this build is a candidate for
for tag in tags:
diff --git a/bodhi/model.py b/bodhi/model.py
index fee95f0..e5292df 100644
--- a/bodhi/model.py
+++ b/bodhi/model.py
@@ -58,6 +58,11 @@ class Release(SQLObject):
return int(regex.match(self.name).groups()[0])
@property
+ def collection_name(self):
+ """ Return the collection name of this release. (eg: Fedora EPEL) """
+ return ' '.join(self.long_name.split()[:-1])
+
+ @property
def candidate_tag(self):
if self.name.startswith('EL'): # EPEL Hack.
return '%s-testing-candidate' % self.dist_tag
14 years, 10 months
2 commits - bodhi/controllers.py
by Luke Macken
bodhi/controllers.py | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
New commits:
commit 213924af35b02259d430bed0ef61ce9e6dcff814
Merge: d6328a4... adf5037...
Author: Luke Macken <lmacken(a)redhat.com>
Date: Wed Jul 8 10:29:39 2009 -0400
Merge branch 'master' of git+ssh://git.fedorahosted.org/git/bodhi
commit d6328a44f167df561a067015c270a9e9b1015990
Author: Luke Macken <lmacken(a)redhat.com>
Date: Wed Jul 8 10:28:14 2009 -0400
Querying pkgdb ALCs for the appropriate collection and version of each build.
Previously, bodhi would just use the Fedora rawhide ACLs for all releases.
However, this becomes a problem with things like Fedora EPEL, where some
maintainers only have commit access to the EL-5 branch. This patch should
resolve this problem, along with ticket #306, and others.
diff --git a/bodhi/controllers.py b/bodhi/controllers.py
index 1738ce4..3bdd046 100644
--- a/bodhi/controllers.py
+++ b/bodhi/controllers.py
@@ -551,10 +551,22 @@ class Root(controllers.RootController):
}
pkg = buildinfo[build]['nvr'][0]
try:
- # Grab a list of committers. Note that this currently only
- # gets people who can commit to the devel branch of the
- # Fedora collection.
- people, groups = get_pkg_pushers(pkg)
+ # Grab a list of committers.
+ pkgdb_args = {
+ 'collectionName': 'Fedora',
+ 'collectionVersion': 'devel',
+ }
+ dist = buildinfo[build]['nvr'][2].split('.')[1]
+ if dist.startswith('el'):
+ pkgdb_args['collectionName'] = 'Fedora EPEL'
+ pkgdb_args['collectionVersion'] = dist.split('el')[1]
+ elif dist.startswith('fc'):
+ pkgdb_args['collectionVersion'] = dist.split('fc')[1]
+ else:
+ log.error("Cannot detect dist from release tag: %s" % dist)
+ log.info("Defaulting to Fedora rawhide...")
+
+ people, groups = get_pkg_pushers(pkg, **pkgdb_args)
people = people[0] # we only care about committers, not watchers
buildinfo[build]['people'] = people
except urllib2.URLError:
14 years, 10 months
3 commits - bodhi/config bodhi/model.py
by Luke Macken
bodhi/config/el4-epel-testing.mash | 1 +
bodhi/config/el4-epel.mash | 1 +
bodhi/config/el5-epel-testing.mash | 1 +
bodhi/config/el5-epel.mash | 1 +
bodhi/model.py | 2 +-
5 files changed, 5 insertions(+), 1 deletion(-)
New commits:
commit adf5037cd58b804787d6d1c1f790875c24883e62
Author: Dennis Gilmore <dennis(a)ausil.us>
Date: Tue Jul 7 22:36:08 2009 -0500
enable creating repoview for epel
diff --git a/bodhi/config/el4-epel-testing.mash b/bodhi/config/el4-epel-testing.mash
index 60331ba..e4c272d 100644
--- a/bodhi/config/el4-epel-testing.mash
+++ b/bodhi/config/el4-epel-testing.mash
@@ -11,6 +11,7 @@ tag = dist-4E-epel-testing
inherit = False
strict_keys = True
keys = 217521f6
+use_repoview = True
repoviewurl = http://download.fedoraproject.org/pub/epel/testing/4/%(arch)s/
repoviewtitle = "Fedora EPEL 4 Testing - %(arch)s"
arches = i386 x86_64 ppc
diff --git a/bodhi/config/el4-epel.mash b/bodhi/config/el4-epel.mash
index eb624be..7bef893 100644
--- a/bodhi/config/el4-epel.mash
+++ b/bodhi/config/el4-epel.mash
@@ -11,6 +11,7 @@ tag = dist-4E-epel
inherit = False
strict_keys = True
keys = 217521f6
+use_repoview = True
repoviewurl = http://download.fedoraproject.org/pub/epel/4/%(arch)s/
repoviewtitle = "Fedora EPEL 4 - %(arch)s"
arches = i386 x86_64 ppc
diff --git a/bodhi/config/el5-epel-testing.mash b/bodhi/config/el5-epel-testing.mash
index b13d5a7..4fb2e46 100644
--- a/bodhi/config/el5-epel-testing.mash
+++ b/bodhi/config/el5-epel-testing.mash
@@ -11,6 +11,7 @@ tag = dist-5E-epel-testing
inherit = False
strict_keys = True
keys = 217521f6
+use_repoview = True
repoviewurl = http://download.fedoraproject.org/pub/epel/testing/5/%(arch)s/
repoviewtitle = "Fedora EPEL 5 Testing - %(arch)s"
arches = i386 x86_64 ppc
diff --git a/bodhi/config/el5-epel.mash b/bodhi/config/el5-epel.mash
index 30f7d93..9a69c55 100644
--- a/bodhi/config/el5-epel.mash
+++ b/bodhi/config/el5-epel.mash
@@ -11,6 +11,7 @@ tag = dist-5E-epel
inherit = False
strict_keys = True
keys = 217521f6
+use_repoview = True
repoviewurl = http://download.fedoraproject.org/pub/epel/5/%(arch)s/
repoviewtitle = "Fedora EPEL 5 - %(arch)s"
arches = i386 x86_64 ppc
commit d66a74335fa78bf0730ac3dcac338e78f7e17acd
Merge: f46f273... 2794f07...
Author: Luke Macken <lmacken(a)redhat.com>
Date: Wed Jul 8 01:50:31 2009 -0400
Merge branch 'master' of git+ssh://git.fedoraproject.org/git/bodhi
commit f46f27337367e4a43080e087fef282a9d2f80b19
Author: Luke Macken <lmacken(a)redhat.com>
Date: Wed Jun 24 17:00:38 2009 -0400
Some minor log message re-ordering
diff --git a/bodhi/model.py b/bodhi/model.py
index ef7b9a1..2ffecb8 100644
--- a/bodhi/model.py
+++ b/bodhi/model.py
@@ -661,7 +661,6 @@ class PackageUpdate(SQLObject):
def unpush(self):
""" Move this update back to its dist-fX-updates-candidate tag """
- log.debug("Unpushing %s" % self.title)
koji = buildsys.get_session()
tasks = []
newtag = '%s-updates-candidate' % self.release.dist_tag
@@ -669,6 +668,7 @@ class PackageUpdate(SQLObject):
if curtag.endswith('-updates-candidate'):
log.debug("%s already unpushed" % self.title)
return
+ log.debug("Unpushing %s" % self.title)
for build in self.builds:
if build.inherited:
log.debug("Removing %s tag from inherited build %s" % (
14 years, 10 months
4 commits - bodhi/admin.py bodhi/jobs.py bodhi/masher.py bodhi/tests
by Luke Macken
bodhi/admin.py | 3 ++-
bodhi/jobs.py | 17 ++++++++++++++---
bodhi/masher.py | 12 ++++++++----
bodhi/tests/test_controllers.py | 2 +-
4 files changed, 25 insertions(+), 9 deletions(-)
New commits:
commit 2794f07ea43bcb224085c43b3872423b3f038aed
Author: Luke Macken <lmacken(a)redhat.com>
Date: Tue Jul 7 20:10:43 2009 -0400
Fix a test case to handle the new MASHING lock schema
diff --git a/bodhi/tests/test_controllers.py b/bodhi/tests/test_controllers.py
index 7991460..d65b8bf 100644
--- a/bodhi/tests/test_controllers.py
+++ b/bodhi/tests/test_controllers.py
@@ -1030,7 +1030,7 @@ class TestControllers(testutil.DBTest):
# Create a MASHING lock with this update in it
config.update({'global': {'mashed_dir': os.getcwd()}})
- mash_lock = file(os.path.join(config.get('mashed_dir'), 'MASHING'), 'w')
+ mash_lock = file(os.path.join(config.get('mashed_dir'), 'MASHING-FEDORA'), 'w')
mash_lock.write(pickle.dumps({'updates': [params['builds'],], 'repos': []}))
mash_lock.close()
commit 108f064c427f57cf7f4d5eb1faeda9ddaa31353e
Author: Luke Macken <lmacken(a)redhat.com>
Date: Tue Jul 7 20:05:28 2009 -0400
Add a new masher_lock_id config variable to help work around the global
masher lock problem.
diff --git a/bodhi/admin.py b/bodhi/admin.py
index f3a879d..db096dd 100644
--- a/bodhi/admin.py
+++ b/bodhi/admin.py
@@ -166,7 +166,8 @@ class AdminController(Controller, SecureResource):
from bodhi.masher import masher
mash_data = {'mashing': False, 'updates': []}
mashed_dir = config.get('mashed_dir')
- mash_lock = join(mashed_dir, 'MASHING')
+ masher_lock_id = config.get('masher_lock_id', 'FEDORA')
+ mash_lock = join(mashed_dir, 'MASHING-%s' % masher_lock_id)
if exists(mash_lock):
mash_lock = file(mash_lock)
mash_state = pickle.load(mash_lock)
commit afa7e653aaea64f3d404adcf1d8707be4ba256fa
Author: Luke Macken <lmacken(a)redhat.com>
Date: Tue Jul 7 19:37:33 2009 -0400
Bail out of the clean_repos job if it detects a masher lock mid-run.
diff --git a/bodhi/jobs.py b/bodhi/jobs.py
index d32e517..33ec20b 100644
--- a/bodhi/jobs.py
+++ b/bodhi/jobs.py
@@ -59,6 +59,13 @@ def clean_repo():
if fullpath not in liverepos:
log.info("Removing %s" % fullpath)
subprocess.call(['rm', '-fr', fullpath])
+
+ # Bail out if a push started in the middle of this job
+ for lock in mash_locks:
+ if exists(lock):
+ log.warning('Mash lock detected! Stopping clean_repo job.')
+ return
+
log.info("clean_repo complete!")
commit 61c9c2d7b9371591c8d30e35eae98fc0c6317156
Author: Luke Macken <lmacken(a)redhat.com>
Date: Tue Jul 7 19:35:40 2009 -0400
Namespace the global masher lock by Release.id_prefix.
This will allow us to multiple masher state lockfiles. For example,
MASHER-FEDORA and MASHER-FEDORA-EPEL will now be created, which allows
two masher servers to push updates simultaneously.
diff --git a/bodhi/jobs.py b/bodhi/jobs.py
index bf3a4b6..d32e517 100644
--- a/bodhi/jobs.py
+++ b/bodhi/jobs.py
@@ -40,9 +40,13 @@ def clean_repo():
log.info("Starting clean_repo job")
liverepos = []
repos = config.get('mashed_dir')
- if exists(join(repos, 'MASHING')):
- log.info("Mash in progress. Aborting clean_repo job")
- return
+ mash_locks = set()
+ for release in Release.select():
+ lock = join(repos, 'MASHING-%s' % release.id_prefix)
+ mash_locks.add(lock)
+ if exists(lock):
+ log.info("Mash in progress. Aborting clean_repo job")
+ return
for release in [rel.name.lower() for rel in Release.select()]:
# TODO: keep the 2 most recent repos!
for repo in [release + '-updates', release + '-updates-testing']:
diff --git a/bodhi/masher.py b/bodhi/masher.py
index b730b47..5320467 100644
--- a/bodhi/masher.py
+++ b/bodhi/masher.py
@@ -167,6 +167,8 @@ class MashTask(Thread):
self.tag = None
self.updates = set()
map(self.updates.add, updates)
+ # eg: MASHING-FEDORA, MASHING-FEDORA-EPEL
+ self.mash_lock_id = self.updates[0].release.id_prefix
self.koji = buildsys.get_session()
# which repos do we want to compose? (updates|updates-testing)
self.repos = repos
@@ -191,7 +193,7 @@ class MashTask(Thread):
repositories to our MASHING lock """
mashed_dir = config.get('mashed_dir')
mash_stage = config.get('mashed_stage_dir')
- mash_lock = join(mashed_dir, 'MASHING')
+ mash_lock = join(mashed_dir, 'MASHING-%s' % self.mash_lock_id)
if not os.path.isdir(mashed_dir):
log.info("Creating mashed_dir %s" % mashed_dir)
os.makedirs(mashed_dir)
@@ -244,7 +246,8 @@ class MashTask(Thread):
lock.close()
def _unlock(self):
- mash_lock = join(config.get('mashed_dir'), 'MASHING')
+ mash_lock = join(config.get('mashed_dir'), 'MASHING-%s' %
+ self.mash_lock_id)
if os.path.exists(mash_lock):
os.unlink(mash_lock)
else:
@@ -255,8 +258,9 @@ class MashTask(Thread):
Update our masher state lockfile with any completed repos that we were
able to compose during this push
"""
- log.debug("Updating MASHING lock")
- mash_lock = join(config.get('mashed_dir'), 'MASHING')
+ log.debug("Updating MASHING-%s lock" % self.mash_lock_id)
+ mash_lock = join(config.get('mashed_dir'), 'MASHING-%s' %
+ self.mash_lock_id)
lock = file(mash_lock, 'r')
masher_state = pickle.load(lock)
lock.close()
14 years, 10 months
bodhi/controllers.py
by Luke Macken
bodhi/controllers.py | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
New commits:
commit 0caf40aba5888c82d853abe15012e9ddcb7a228e
Author: Luke Macken <lmacken(a)redhat.com>
Date: Tue Jul 7 18:45:05 2009 -0400
Apply Toshio's patch from #468801 to fix unauthed "mine" list queries
diff --git a/bodhi/controllers.py b/bodhi/controllers.py
index 0719dba..1738ce4 100644
--- a/bodhi/controllers.py
+++ b/bodhi/controllers.py
@@ -220,6 +220,11 @@ class Root(controllers.RootController):
updates = []
orderBy = PackageUpdate.q.date_submitted
+ # Check the identity first of all
+ if mine and identity.current.anonymous:
+ cherrypy.response.status=401
+ return dict(updates=[], num_items=0, title='0 updates found')
+
# If no arguments are specified, return the most recent updates
if not release and not bugs and not cves and not status and not type_ \
and not package and not mine and not username:
@@ -350,8 +355,7 @@ class Root(controllers.RootController):
updates = PackageUpdate.select(
PackageUpdate.q.submitter == identity.current.user_name,
orderBy=PackageUpdate.q.date_submitted).reversed()
- return dict(updates=request_format() == 'json' and
- map(unicode, updates) or updates, title='%s\'s updates' %
+ return dict(updates=updates, title='%s\'s updates' %
identity.current.user_name, num_items=updates.count())
@expose(allow_json=True)
14 years, 10 months