Merge pull request #3110 from quay/joseph.schorr/QUAY-966/gitlab-v4

Reimplement GitLab trigger handler using the V4 API library
This commit is contained in:
Joseph Schorr 2018-06-12 17:03:31 -04:00 committed by GitHub
commit 1be22a9a56
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 912 additions and 393 deletions

View file

@ -11,9 +11,7 @@ from app import app
from auth.permissions import (UserAdminPermission, AdministerOrganizationPermission,
ReadRepositoryPermission, AdministerRepositoryPermission)
from buildtrigger.basehandler import BuildTriggerHandler
from buildtrigger.triggerutil import (TriggerDeactivationException,
TriggerActivationException, EmptyRepositoryException,
RepositoryReadException, TriggerStartException)
from buildtrigger.triggerutil import TriggerException, EmptyRepositoryException
from data import model
from data.model.build import update_build_trigger
from endpoints.api import (RepositoryParamResource, nickname, resource, require_repo_admin,
@ -118,7 +116,7 @@ class BuildTrigger(RepositoryParamResource):
if handler.is_active():
try:
handler.deactivate()
except TriggerDeactivationException as ex:
except TriggerException as ex:
# We are just going to eat this error
logger.warning('Trigger deactivation problem: %s', ex)
@ -178,7 +176,7 @@ class BuildTriggerSubdirs(RepositoryParamResource):
'contextMap': {},
'dockerfile_paths': [],
}
except RepositoryReadException as exc:
except TriggerException as exc:
return {
'status': 'error',
'message': exc.message,
@ -264,7 +262,7 @@ class BuildTriggerActivate(RepositoryParamResource):
if 'private_key' in private_config:
trigger.private_key = private_config['private_key']
except TriggerActivationException as exc:
except TriggerException as exc:
write_token.delete_instance()
raise request_error(message=exc.message)
@ -332,7 +330,7 @@ class BuildTriggerAnalyze(RepositoryParamResource):
new_config_dict,
AdministerOrganizationPermission(namespace_name).can())
return trigger_analyzer.analyze_trigger()
except RepositoryReadException as rre:
except TriggerException as rre:
return {
'status': 'error',
'message': 'Could not analyze the repository: %s' % rre.message,
@ -391,7 +389,7 @@ class ActivateBuildTrigger(RepositoryParamResource):
run_parameters = request.get_json()
prepared = handler.manual_start(run_parameters=run_parameters)
build_request = start_build(repo, prepared, pull_robot_name=pull_robot_name)
except TriggerStartException as tse:
except TriggerException as tse:
raise InvalidRequest(tse.message)
except MaximumBuildsQueuedException:
abort(429, message='Maximum queued build rate exceeded.')
@ -494,7 +492,7 @@ class BuildTriggerSources(RepositoryParamResource):
return {
'sources': handler.list_build_sources_for_namespace(namespace)
}
except RepositoryReadException as rre:
except TriggerException as rre:
raise InvalidRequest(rre.message)
else:
raise Unauthorized()
@ -522,7 +520,7 @@ class BuildTriggerSourceNamespaces(RepositoryParamResource):
return {
'namespaces': handler.list_build_source_namespaces()
}
except RepositoryReadException as rre:
except TriggerException as rre:
raise InvalidRequest(rre.message)
else:
raise Unauthorized()