parent
e81a50aa9a
commit
3ee4147117
3 changed files with 84 additions and 32 deletions
|
@ -4,7 +4,7 @@ from peewee import JOIN_LEFT_OUTER
|
|||
from datetime import timedelta, datetime
|
||||
|
||||
from data.database import (BuildTriggerService, RepositoryBuildTrigger, Repository, Namespace, User,
|
||||
RepositoryBuild, BUILD_PHASE, db_for_update)
|
||||
RepositoryBuild, BUILD_PHASE, db_for_update, db_random_func)
|
||||
from data.model import (InvalidBuildTriggerException, InvalidRepositoryBuildException,
|
||||
db_transaction, user as user_model)
|
||||
|
||||
|
@ -163,11 +163,23 @@ def cancel_repository_build(build, work_queue):
|
|||
return True
|
||||
|
||||
|
||||
def archivable_buildlogs_query():
|
||||
def get_archivable_build():
|
||||
presumed_dead_date = datetime.utcnow() - PRESUMED_DEAD_BUILD_AGE
|
||||
return (RepositoryBuild
|
||||
.select()
|
||||
candidates = (RepositoryBuild
|
||||
.select(RepositoryBuild.id)
|
||||
.where((RepositoryBuild.phase == BUILD_PHASE.COMPLETE) |
|
||||
(RepositoryBuild.phase == BUILD_PHASE.ERROR) |
|
||||
(RepositoryBuild.started < presumed_dead_date),
|
||||
RepositoryBuild.logs_archived == False))
|
||||
RepositoryBuild.logs_archived == False)
|
||||
.limit(50)
|
||||
.alias('candidates'))
|
||||
|
||||
try:
|
||||
return (RepositoryBuild
|
||||
.select(candidates.c.id)
|
||||
.from_(candidates)
|
||||
.order_by(db_random_func())
|
||||
.get())
|
||||
except RepositoryBuild.DoesNotExist:
|
||||
return None
|
||||
|
||||
|
|
Reference in a new issue