- allow rss feed to filter by package name (specified with package=)

- allow listTagged* and readTagged* to filter by package owner name (specified with owner=)
- allow the builds page in the web UI to filter by package ID (specified with packageID=)
This commit is contained in:
Mike Bonnet 2008-05-23 16:08:42 -04:00
parent 1c6ffe3ae0
commit ecc44a59bd
4 changed files with 71 additions and 45 deletions

View file

@ -902,7 +902,7 @@ def readPackageList(tagID=None, userID=None, pkgID=None, event=None, inherit=Fal
return packages
def readTaggedBuilds(tag,event=None,inherit=False,latest=False,package=None):
def readTaggedBuilds(tag,event=None,inherit=False,latest=False,package=None,owner=None):
"""Returns a list of builds for specified tag
set inherit=True to follow inheritance
@ -945,6 +945,9 @@ def readTaggedBuilds(tag,event=None,inherit=False,latest=False,package=None):
if package:
q += """AND package.name = %(package)s
"""
if owner:
q += """AND users.name = %(owner)s
"""
q += """ORDER BY tag_listing.create_event DESC
"""
# i.e. latest first
@ -971,7 +974,7 @@ def readTaggedBuilds(tag,event=None,inherit=False,latest=False,package=None):
return builds
def readTaggedRPMS(tag, package=None, arch=None, event=None,inherit=False,latest=True,rpmsigs=False):
def readTaggedRPMS(tag, package=None, arch=None, event=None,inherit=False,latest=True,rpmsigs=False,owner=None):
"""Returns a list of rpms for specified tag
set inherit=True to follow inheritance
@ -984,7 +987,7 @@ def readTaggedRPMS(tag, package=None, arch=None, event=None,inherit=False,latest
# (however, it is fairly quick)
taglist += [link['parent_id'] for link in readFullInheritance(tag, event)]
builds = readTaggedBuilds(tag, event=event, inherit=inherit, latest=latest, package=package)
builds = readTaggedBuilds(tag, event=event, inherit=inherit, latest=latest, package=package, owner=owner)
#index builds
build_idx = dict([(b['build_id'],b) for b in builds])
@ -4371,22 +4374,23 @@ class RootExports(object):
raise koji.ActionNotAllowed, 'Cannot cancel task, not owner'
task.cancelChildren()
def listTagged(self,tag,event=None,inherit=False,prefix=None,latest=False,package=None):
def listTagged(self,tag,event=None,inherit=False,prefix=None,latest=False,package=None,owner=None):
"""List builds tagged with tag"""
if not isinstance(tag,int):
#lookup tag id
tag = get_tag_id(tag,strict=True)
results = readTaggedBuilds(tag,event,inherit=inherit,latest=latest,package=package)
results = readTaggedBuilds(tag,event,inherit=inherit,latest=latest,package=package,owner=owner)
if prefix:
prefix = prefix.lower()
results = [build for build in results if build['package_name'].lower().startswith(prefix)]
return results
def listTaggedRPMS(self,tag,event=None,inherit=False,latest=False,package=None,arch=None,rpmsigs=False):
def listTaggedRPMS(self,tag,event=None,inherit=False,latest=False,package=None,arch=None,rpmsigs=False,owner=None):
"""List rpms and builds within tag"""
if not isinstance(tag,int):
#lookup tag id
tag = get_tag_id(tag,strict=True)
return readTaggedRPMS(tag,event=event,inherit=inherit,latest=latest,package=package,arch=arch,rpmsigs=rpmsigs)
return readTaggedRPMS(tag,event=event,inherit=inherit,latest=latest,package=package,arch=arch,rpmsigs=rpmsigs,owner=owner)
def listBuilds(self, packageID=None, userID=None, taskID=None, prefix=None, state=None,
completeBefore=None, completeAfter=None, queryOpts=None):