Add writing config to file, modal for validation

This commit is contained in:
Sam Chow 2018-06-18 11:01:14 -04:00
parent c7513199df
commit 8aa18a29a8
4 changed files with 43 additions and 44 deletions

View file

@ -1,6 +1,8 @@
import logging
from flask import abort, request
from flask import request, make_response
from config_app.c_app import config_provider
from config_app.config_endpoints.api import resource, ApiResource, nickname, validate_json_request
logger = logging.getLogger(__name__)
@ -8,40 +10,16 @@ logger = logging.getLogger(__name__)
@resource('/v1/configapp/tarconfig')
class TarConfigLoader(ApiResource):
""" Resource for validating a block of configuration against an external service. """
schemas = {
'ValidateUploadConfig': {
'type': 'object',
'description': '',
'required': [
'config'
],
'properties': {
'config': {
'type': 'object'
},
},
},
}
@nickname('uploadTarballConfig')
# @validate_json_request('ValidateUploadConfig')
def post(self):
""" Extracts and validates all configuration from """
logger.debug('hello world!')
logger.debug(request)
logger.debug('hello world!')
logger.debug(request.files)
# logger.debug('hello world!')
# logger.debug(request.body)
# logger.debug(request.data)
logger.debug('hello world!')
logger.debug(request.files)
logger.debug('hello world!')
logger.debug(request.mimetype)
logger.debug('hello world!')
logger.debug(request.get_data())
logger.debug('hello world!')
logger.debug(request.get_json())
logger.debug('hello world!')
""" Loads tarball config into the config provider """
input_stream = request.stream
abort(418)
# since we're working with a tar file, shouldn't be larger than ~20KB, so just read the whole thing into mem
buf = input_stream.read(-1)
# TODO(sam): refactor config provider to accept a stream write to avoid loading into memory
config_provider.write_volume_file('test_tar.tar.gz', buf)
return make_response('OK')