def getBuildsForBuilder(self, builder_id, status=None, user=None): """See `IBuildFarmJobSet`.""" # Imported here to avoid circular imports. from lp.soyuz.model.archive import (Archive, get_archive_privacy_filter) clauses = [ BuildFarmJob.builder == builder_id, Or(Archive.id == None, get_archive_privacy_filter(user)) ] if status is not None: clauses.append(BuildFarmJob.status == status) # We need to ensure that we don't include any private builds. # Currently only package builds can be private (via their # related archive), but not all build farm jobs will have a # related package build - hence the left join. origin = [ BuildFarmJob, LeftJoin(Archive, Archive.id == BuildFarmJob.archive_id), ] return IStore(BuildFarmJob).using(*origin).find( BuildFarmJob, *clauses).order_by(Desc(BuildFarmJob.date_finished), BuildFarmJob.id)
def getBuildsForBuilder(self, builder_id, status=None, name=None, arch_tag=None, user=None): """See `IBinaryPackageBuildSet`.""" # Circular. :( from lp.soyuz.model.archive import ( Archive, get_archive_privacy_filter) clauses = [ BinaryPackageBuild.archive_id == Archive.id, BinaryPackageBuild.builder_id == builder_id, get_archive_privacy_filter(user)] origin = [Archive] self.handleOptionalParamsForBuildQueries( clauses, origin, status, name, pocket=None, arch_tag=arch_tag) return IStore(BinaryPackageBuild).using(*origin).find( BinaryPackageBuild, *clauses).order_by( Desc(BinaryPackageBuild.date_finished), BinaryPackageBuild.id)
def getBuildsForBuilder(self, builder_id, status=None, user=None): """See `IBuildFarmJobSet`.""" # Imported here to avoid circular imports. from lp.soyuz.model.archive import ( Archive, get_archive_privacy_filter) clauses = [ BuildFarmJob.builder == builder_id, Or(Archive.id == None, get_archive_privacy_filter(user))] if status is not None: clauses.append(BuildFarmJob.status == status) # We need to ensure that we don't include any private builds. # Currently only package builds can be private (via their # related archive), but not all build farm jobs will have a # related package build - hence the left join. origin = [ BuildFarmJob, LeftJoin(Archive, Archive.id == BuildFarmJob.archive_id), ] return IStore(BuildFarmJob).using(*origin).find( BuildFarmJob, *clauses).order_by( Desc(BuildFarmJob.date_finished), BuildFarmJob.id)