use kwargs for parse_repository_name

This commit is contained in:
Jimmy Zelinskie 2016-03-09 16:20:28 -05:00
parent 3b52a255b2
commit bb46cc933d
15 changed files with 285 additions and 270 deletions

View file

@ -3,10 +3,11 @@
import json
import logging
from flask import request, url_for
from urllib import quote
from urlparse import urlunparse
from flask import request, url_for
from app import app
from buildtrigger.basehandler import BuildTriggerHandler
from buildtrigger.triggerutil import (TriggerDeactivationException,
@ -40,9 +41,9 @@ class BuildTriggerList(RepositoryParamResource):
@require_repo_admin
@nickname('listBuildTriggers')
def get(self, namespace, repository):
def get(self, namespace_name, repo_name):
""" List the triggers for the specified repository. """
triggers = model.build.list_build_triggers(namespace, repository)
triggers = model.build.list_build_triggers(namespace_name, repo_name)
return {
'triggers': [trigger_view(trigger, can_admin=True) for trigger in triggers]
}
@ -56,7 +57,7 @@ class BuildTrigger(RepositoryParamResource):
@require_repo_admin
@nickname('getBuildTrigger')
def get(self, namespace, repository, trigger_uuid):
def get(self, namespace_name, repo_name, trigger_uuid):
""" Get information for the specified build trigger. """
try:
trigger = model.build.get_build_trigger(trigger_uuid)
@ -67,7 +68,7 @@ class BuildTrigger(RepositoryParamResource):
@require_repo_admin
@nickname('deleteBuildTrigger')
def delete(self, namespace, repository, trigger_uuid):
def delete(self, namespace_name, repo_name, trigger_uuid):
""" Delete the specified build trigger. """
try:
trigger = model.build.get_build_trigger(trigger_uuid)
@ -82,10 +83,10 @@ class BuildTrigger(RepositoryParamResource):
# We are just going to eat this error
logger.warning('Trigger deactivation problem: %s', ex)
log_action('delete_repo_trigger', namespace,
{'repo': repository, 'trigger_id': trigger_uuid,
log_action('delete_repo_trigger', namespace_name,
{'repo': repo_name, 'trigger_id': trigger_uuid,
'service': trigger.service.name},
repo=model.repository.get_repository(namespace, repository))
repo=model.repository.get_repository(namespace_name, repo_name))
trigger.delete_instance(recursive=True)
@ -111,7 +112,7 @@ class BuildTriggerSubdirs(RepositoryParamResource):
@require_repo_admin
@nickname('listBuildTriggerSubdirs')
@validate_json_request('BuildTriggerSubdirRequest')
def post(self, namespace, repository, trigger_uuid):
def post(self, namespace_name, repo_name, trigger_uuid):
""" List the subdirectories available for the specified build trigger and source. """
try:
trigger = model.build.get_build_trigger(trigger_uuid)
@ -171,7 +172,7 @@ class BuildTriggerActivate(RepositoryParamResource):
@require_repo_admin
@nickname('activateBuildTrigger')
@validate_json_request('BuildTriggerActivateRequest')
def post(self, namespace, repository, trigger_uuid):
def post(self, namespace_name, repo_name, trigger_uuid):
""" Activate the specified build trigger. """
try:
trigger = model.build.get_build_trigger(trigger_uuid)
@ -198,7 +199,7 @@ class BuildTriggerActivate(RepositoryParamResource):
raise Unauthorized()
# Make sure the namespace matches that of the trigger.
if robot_namespace != namespace:
if robot_namespace != namespace_name:
raise Unauthorized()
# Set the pull robot.
@ -208,7 +209,7 @@ class BuildTriggerActivate(RepositoryParamResource):
new_config_dict = request.get_json()['config']
write_token_name = 'Build Trigger: %s' % trigger.service.name
write_token = model.token.create_delegate_token(namespace, repository, write_token_name,
write_token = model.token.create_delegate_token(namespace_name, repo_name, write_token_name,
'write')
try:
@ -233,12 +234,13 @@ class BuildTriggerActivate(RepositoryParamResource):
trigger.save()
# Log the trigger setup.
repo = model.repository.get_repository(namespace, repository)
log_action('setup_repo_trigger', namespace,
{'repo': repository, 'namespace': namespace,
'trigger_id': trigger.uuid, 'service': trigger.service.name,
'pull_robot': trigger.pull_robot.username if trigger.pull_robot else None,
'config': final_config}, repo=repo)
repo = model.repository.get_repository(namespace_name, repo_name)
log_action('setup_repo_trigger', namespace_name,
{'repo': repo_name, 'namespace': namespace_name,
'trigger_id': trigger.uuid, 'service': trigger.service.name,
'pull_robot': trigger.pull_robot.username if trigger.pull_robot else None,
'config': final_config},
repo=repo)
return trigger_view(trigger, can_admin=True)
else:
@ -271,7 +273,7 @@ class BuildTriggerAnalyze(RepositoryParamResource):
@require_repo_admin
@nickname('analyzeBuildTrigger')
@validate_json_request('BuildTriggerAnalyzeRequest')
def post(self, namespace, repository, trigger_uuid):
def post(self, namespace_name, repo_name, trigger_uuid):
""" Analyze the specified build trigger configuration. """
try:
trigger = model.build.get_build_trigger(trigger_uuid)
@ -414,7 +416,7 @@ class ActivateBuildTrigger(RepositoryParamResource):
@require_repo_admin
@nickname('manuallyStartBuildTrigger')
@validate_json_request('RunParameters')
def post(self, namespace, repository, trigger_uuid):
def post(self, namespace_name, repo_name, trigger_uuid):
""" Manually start a build from the specified trigger. """
try:
trigger = model.build.get_build_trigger(trigger_uuid)
@ -426,7 +428,7 @@ class ActivateBuildTrigger(RepositoryParamResource):
raise InvalidRequest('Trigger is not active.')
try:
repo = model.repository.get_repository(namespace, repository)
repo = model.repository.get_repository(namespace_name, repo_name)
pull_robot_name = model.build.get_pull_robot_name(trigger)
run_parameters = request.get_json()
@ -436,7 +438,7 @@ class ActivateBuildTrigger(RepositoryParamResource):
raise InvalidRequest(tse.message)
resp = build_status_view(build_request)
repo_string = '%s/%s' % (namespace, repository)
repo_string = '%s/%s' % (namespace_name, repo_name)
headers = {
'Location': api.url_for(RepositoryBuildStatus, repository=repo_string,
build_uuid=build_request.uuid),
@ -453,10 +455,10 @@ class TriggerBuildList(RepositoryParamResource):
@parse_args()
@query_param('limit', 'The maximum number of builds to return', type=int, default=5)
@nickname('listTriggerRecentBuilds')
def get(self, namespace, repository, trigger_uuid, parsed_args):
def get(self, namespace_name, repo_name, trigger_uuid, parsed_args):
""" List the builds started by the specified trigger. """
limit = parsed_args['limit']
builds = model.build.list_trigger_builds(namespace, repository, trigger_uuid, limit)
builds = model.build.list_trigger_builds(namespace_name, repo_name, trigger_uuid, limit)
return {
'builds': [build_status_view(bld) for bld in builds]
}
@ -470,7 +472,7 @@ class BuildTriggerFieldValues(RepositoryParamResource):
""" Custom verb to fetch a values list for a particular field name. """
@require_repo_admin
@nickname('listTriggerFieldValues')
def post(self, namespace, repository, trigger_uuid, field_name):
def post(self, namespace_name, repo_name, trigger_uuid, field_name):
""" List the field values for a custom run field. """
try:
trigger = model.build.get_build_trigger(trigger_uuid)
@ -501,7 +503,7 @@ class BuildTriggerSources(RepositoryParamResource):
""" Custom verb to fetch the list of build sources for the trigger config. """
@require_repo_admin
@nickname('listTriggerBuildSources')
def get(self, namespace, repository, trigger_uuid):
def get(self, namespace_name, repo_name, trigger_uuid):
""" List the build sources for the trigger configuration thus far. """
try:
trigger = model.build.get_build_trigger(trigger_uuid)