Add ability for triggers to be disabled
Will be used in the followup commit to automatically disable broken triggers
This commit is contained in:
parent
1e54a4d9e9
commit
c35eec0615
18 changed files with 358 additions and 37 deletions
|
@ -12,7 +12,8 @@ from util.http import abort
|
|||
from buildtrigger.basehandler import BuildTriggerHandler
|
||||
from buildtrigger.triggerutil import (ValidationRequestException, SkipRequestException,
|
||||
InvalidPayloadException)
|
||||
from endpoints.building import start_build, MaximumBuildsQueuedException
|
||||
from endpoints.building import (start_build, MaximumBuildsQueuedException,
|
||||
BuildTriggerDisabledException)
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
@ -91,9 +92,7 @@ def build_trigger_webhook(trigger_uuid, **kwargs):
|
|||
|
||||
namespace = trigger.repository.namespace_user.username
|
||||
repository = trigger.repository.name
|
||||
permission = ModifyRepositoryPermission(namespace, repository)
|
||||
|
||||
if permission.can():
|
||||
if ModifyRepositoryPermission(namespace, repository).can():
|
||||
handler = BuildTriggerHandler.get_handler(trigger)
|
||||
|
||||
if trigger.repository.kind.name != 'image':
|
||||
|
@ -121,6 +120,9 @@ def build_trigger_webhook(trigger_uuid, **kwargs):
|
|||
start_build(repo, prepared, pull_robot_name=pull_robot_name)
|
||||
except MaximumBuildsQueuedException:
|
||||
abort(429, message='Maximum queued build rate exceeded.')
|
||||
except BuildTriggerDisabledException:
|
||||
logger.debug('Build trigger %s is disabled', trigger_uuid)
|
||||
abort(400, message='This build trigger is currently disabled. Please re-enable to continue.')
|
||||
|
||||
return make_response('Okay')
|
||||
|
||||
|
|
Reference in a new issue