add rate limiting to build queues

This commit is contained in:
Jimmy Zelinskie 2016-12-05 16:07:00 -05:00
parent f0b19b26c9
commit 7877c6ab94
6 changed files with 36 additions and 8 deletions

View file

@ -10,9 +10,9 @@ from util.invoice import renderInvoiceToHtml
from util.useremails import send_invoice_email, send_subscription_change, send_payment_failed
from util.http import abort
from buildtrigger.basehandler import BuildTriggerHandler
from buildtrigger.triggerutil import (ValidationRequestException, SkipRequestException,
from buildtrigger.triggerutil import (ValidationRequestException, SkipRequestException,
InvalidPayloadException)
from endpoints.building import start_build
from endpoints.building import start_build, MaximumBuildsQueuedException
logger = logging.getLogger(__name__)
@ -104,7 +104,10 @@ def build_trigger_webhook(trigger_uuid, **kwargs):
pull_robot_name = model.build.get_pull_robot_name(trigger)
repo = model.repository.get_repository(namespace, repository)
start_build(repo, prepared, pull_robot_name=pull_robot_name)
try:
start_build(repo, prepared, pull_robot_name=pull_robot_name)
except MaximumBuildsQueuedException:
abort(429)
return make_response('Okay')