Mark a whole slew of APIs as internal only.

This commit is contained in:
jakedt 2014-03-19 12:09:07 -04:00
parent 5e7ffd95ca
commit 6267275d6f
9 changed files with 37 additions and 13 deletions

View file

@ -7,11 +7,11 @@ from urlparse import urlunparse
from app import app
from endpoints.api import (RepositoryParamResource, nickname, resource, require_repo_admin,
log_action, request_error, query_param, parse_args,
log_action, request_error, query_param, parse_args, internal_only,
validate_json_request, api, Unauthorized, NotFound, InvalidRequest)
from endpoints.api.build import build_status_view, trigger_view, RepositoryBuildStatus
from endpoints.common import start_build
from endpoints.trigger import (BuildTrigger, TriggerDeactivationException,
from endpoints.trigger import (BuildTrigger as BuildTriggerTypes, TriggerDeactivationException,
TriggerActivationException, EmptyRepositoryException)
from data import model
from auth.permissions import UserAdminPermission
@ -63,7 +63,7 @@ class BuildTrigger(RepositoryParamResource):
except model.InvalidBuildTriggerException:
raise NotFound()
handler = BuildTrigger.get_trigger_for_service(trigger.service.name)
handler = BuildTriggerTypes.get_trigger_for_service(trigger.service.name)
config_dict = json.loads(trigger.config)
if handler.is_active(config_dict):
try:
@ -82,6 +82,7 @@ class BuildTrigger(RepositoryParamResource):
@resource('/v1/repository/<path:repository>/trigger/<trigger_uuid>/subdir')
@internal_only
class BuildTriggerSubdirs(RepositoryParamResource):
""" Custom verb for fetching the subdirs which are buildable for a trigger. """
schemas = {
@ -102,7 +103,7 @@ class BuildTriggerSubdirs(RepositoryParamResource):
except model.InvalidBuildTriggerException:
raise NotFound()
handler = BuildTrigger.get_trigger_for_service(trigger.service.name)
handler = BuildTriggerTypes.get_trigger_for_service(trigger.service.name)
user_permission = UserAdminPermission(trigger.connected_user.username)
if user_permission.can():
new_config_dict = request.get_json()
@ -123,6 +124,7 @@ class BuildTriggerSubdirs(RepositoryParamResource):
@resource('/v1/repository/<path:repository>/trigger/<trigger_uuid>/activate')
@internal_only
class BuildTriggerActivate(RepositoryParamResource):
""" Custom verb for activating a build trigger once all required information has been collected.
"""
@ -144,12 +146,12 @@ class BuildTriggerActivate(RepositoryParamResource):
except model.InvalidBuildTriggerException:
raise NotFound()
handler = BuildTrigger.get_trigger_for_service(trigger.service.name)
handler = BuildTriggerTypes.get_trigger_for_service(trigger.service.name)
existing_config_dict = json.loads(trigger.config)
if handler.is_active(existing_config_dict):
raise InvalidRequest('Trigger config is not sufficient for activation.')
user_permission = UserPermission(trigger.connected_user.username)
user_permission = UserAdminPermission(trigger.connected_user.username)
if user_permission.can():
new_config_dict = request.get_json()
@ -202,7 +204,7 @@ class ActivateBuildTrigger(RepositoryParamResource):
except model.InvalidBuildTriggerException:
raise NotFound()
handler = BuildTrigger.get_trigger_for_service(trigger.service.name)
handler = BuildTriggerTypes.get_trigger_for_service(trigger.service.name)
existing_config_dict = json.loads(trigger.config)
if not handler.is_active(existing_config_dict):
raise InvalidRequest('Trigger is not active.')
@ -241,6 +243,7 @@ class TriggerBuildList(RepositoryParamResource):
@resource('/v1/repository/<path:repository>/trigger/<trigger_uuid>/sources')
@internal_only
class BuildTriggerSources(RepositoryParamResource):
""" Custom verb to fetch the list of build sources for the trigger config. """
@require_repo_admin
@ -252,9 +255,9 @@ class BuildTriggerSources(RepositoryParamResource):
except model.InvalidBuildTriggerException:
raise NotFound()
user_permission = UserPermission(trigger.connected_user.username)
user_permission = UserAdminPermission(trigger.connected_user.username)
if user_permission.can():
trigger_handler = BuildTrigger.get_trigger_for_service(trigger.service.name)
trigger_handler = BuildTriggerTypes.get_trigger_for_service(trigger.service.name)
return {
'sources': trigger_handler.list_build_sources(trigger.auth_token)