add rate limiting to build queues
This commit is contained in:
parent
f0b19b26c9
commit
7877c6ab94
6 changed files with 36 additions and 8 deletions
|
@ -14,9 +14,9 @@ from buildtrigger.basehandler import BuildTriggerHandler
|
|||
from endpoints.api import (RepositoryParamResource, parse_args, query_param, nickname, resource,
|
||||
require_repo_read, require_repo_write, validate_json_request,
|
||||
ApiResource, internal_only, format_date, api, path_param,
|
||||
require_repo_admin)
|
||||
require_repo_admin, abort)
|
||||
from endpoints.exception import Unauthorized, NotFound, InvalidRequest
|
||||
from endpoints.building import start_build, PreparedBuild
|
||||
from endpoints.building import start_build, PreparedBuild, MaximumBuildsQueuedException
|
||||
from data import database
|
||||
from data import model
|
||||
from auth.permissions import (ReadRepositoryPermission, ModifyRepositoryPermission,
|
||||
|
@ -287,7 +287,10 @@ class RepositoryBuildList(RepositoryParamResource):
|
|||
prepared.is_manual = True
|
||||
prepared.metadata = {}
|
||||
|
||||
build_request = start_build(repo, prepared, pull_robot_name=pull_robot_name)
|
||||
try:
|
||||
build_request = start_build(repo, prepared, pull_robot_name=pull_robot_name)
|
||||
except MaximumBuildsQueuedException:
|
||||
abort(429, message='Maximum queued build rate exceeded.')
|
||||
resp = build_status_view(build_request)
|
||||
repo_string = '%s/%s' % (namespace, repository)
|
||||
headers = {
|
||||
|
|
Reference in a new issue