fix(buildman, endpoint): added in fix upload gzip and dockerfile
This commit is contained in:
parent
64cd139552
commit
df5a6aabe2
4 changed files with 63 additions and 19 deletions
|
@ -1,29 +1,27 @@
|
|||
""" Create, list, cancel and get status/logs of repository builds. """
|
||||
import os
|
||||
from urlparse import urlparse
|
||||
|
||||
import logging
|
||||
import json
|
||||
import datetime
|
||||
import hashlib
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
from urlparse import urlparse
|
||||
|
||||
from flask import request
|
||||
|
||||
from app import userfiles as user_files, build_logs, log_archive, dockerfile_build_queue
|
||||
from auth.permissions import (ReadRepositoryPermission, ModifyRepositoryPermission,
|
||||
AdministerRepositoryPermission, AdministerOrganizationPermission,
|
||||
SuperUserPermission)
|
||||
from buildtrigger.basehandler import BuildTriggerHandler
|
||||
from data import database
|
||||
from data import model
|
||||
from data.buildlogs import BuildStatusRetrievalError
|
||||
from endpoints.api import (RepositoryParamResource, parse_args, query_param, nickname, resource,
|
||||
require_repo_read, require_repo_write, validate_json_request,
|
||||
ApiResource, internal_only, format_date, api, path_param,
|
||||
require_repo_admin, abort, disallow_for_app_repositories)
|
||||
from endpoints.exception import Unauthorized, NotFound, InvalidRequest
|
||||
from endpoints.building import start_build, PreparedBuild, MaximumBuildsQueuedException
|
||||
from data import database
|
||||
from data import model
|
||||
from auth.permissions import (ReadRepositoryPermission, ModifyRepositoryPermission,
|
||||
AdministerRepositoryPermission, AdministerOrganizationPermission,
|
||||
SuperUserPermission)
|
||||
|
||||
from data.buildlogs import BuildStatusRetrievalError
|
||||
from endpoints.exception import Unauthorized, NotFound, InvalidRequest
|
||||
from util.names import parse_robot_username
|
||||
|
||||
|
||||
|
@ -246,8 +244,7 @@ class RepositoryBuildList(RepositoryParamResource):
|
|||
if scheme != 'http' and scheme != 'https':
|
||||
raise InvalidRequest('Invalid Archive URL: Must be http or https')
|
||||
|
||||
subdir = request_json['subdirectory'] if 'subdirectory' in request_json else ''
|
||||
context = request_json['context'] if 'context' in request_json else os.path.dirname(subdir)
|
||||
context, subdir = self.get_dockerfile_context(request_json)
|
||||
tags = request_json.get('docker_tags', ['latest'])
|
||||
pull_robot_name = request_json.get('pull_robot', None)
|
||||
|
||||
|
@ -311,8 +308,17 @@ class RepositoryBuildList(RepositoryParamResource):
|
|||
}
|
||||
return resp, 201, headers
|
||||
|
||||
|
||||
|
||||
@staticmethod
|
||||
def get_dockerfile_context(request_json):
|
||||
context = request_json['context'] if 'context' in request_json else os.path.sep
|
||||
if 'subdirectory' in request_json:
|
||||
subdir = request_json["subdirectory"]
|
||||
else:
|
||||
if context.endswith(os.path.sep):
|
||||
subdir = context + "Dockerfile"
|
||||
else:
|
||||
subdir = context + os.path.sep + "Dockerfile"
|
||||
return context, subdir
|
||||
|
||||
@resource('/v1/repository/<apirepopath:repository>/build/<build_uuid>')
|
||||
@path_param('repository', 'The full path of the repository. e.g. namespace/name')
|
||||
|
|
Reference in a new issue