Revert local validation context, extract another util

This commit is contained in:
Sam Chow 2018-06-28 19:42:08 -04:00 committed by Sam Chow
parent d7ffb54333
commit 14fefea38f
6 changed files with 18 additions and 24 deletions

View file

@ -271,15 +271,11 @@ class SuperUserConfigValidate(ApiResource):
# Note: This method is called to validate the database configuration before super users exists,
# so we also allow it to be called if there is no valid registry configuration setup. Note that
# this is also safe since this method does not access any information not given in the request.
# We can skip localstorage validation, since we can't guarantee that this will be the same machine
# Q.E. will run under
config = request.get_json()['config']
validator_context = ValidatorContext.from_app(app, config, request.get_json().get('password', ''),
instance_keys=instance_keys,
ip_resolver=ip_resolver,
config_provider=config_provider,
skip_localstorage_validation=True)
config_provider=config_provider)
return validate_service_for_config(service, validator_context)

View file

@ -8,7 +8,7 @@ from data.database import configure
from config_app.c_app import app, config_provider
from config_app.config_endpoints.api import resource, ApiResource, nickname
from config_app.config_util.tar import tarinfo_filter_partial
from config_app.config_util.tar import tarinfo_filter_partial, strip_absolute_path_and_add_trailing_dir
@resource('/v1/configapp/initialization')
class ConfigInitialization(ApiResource):
@ -19,7 +19,6 @@ class ConfigInitialization(ApiResource):
@nickname('scStartNewConfig')
def post(self):
config_provider.new_config_dir()
return make_response('OK')
@ -33,19 +32,14 @@ class TarConfigLoader(ApiResource):
@nickname('scGetConfigTarball')
def get(self):
config_path = config_provider.get_config_dir_path()
# remove the initial trailing / from the prefix path, and add the last dir one
tar_dir_prefix = config_path[1:] + '/'
tar_dir_prefix = strip_absolute_path_and_add_trailing_dir(config_path)
temp = tempfile.NamedTemporaryFile()
tar = tarfile.open(temp.name, mode="w|gz")
for name in os.listdir(config_path):
tar.add(os.path.join(config_path, name), filter=tarinfo_filter_partial(tar_dir_prefix))
tar.close()
return send_file(temp.name, mimetype='application/gzip')
@nickname('scUploadTarballConfig')
@ -53,7 +47,6 @@ class TarConfigLoader(ApiResource):
""" Loads tarball config into the config provider """
# Generate a new empty dir to load the config into
config_provider.new_config_dir()
input_stream = request.stream
with tarfile.open(mode="r|gz", fileobj=input_stream) as tar_stream:
tar_stream.extractall(config_provider.get_config_dir_path())
@ -61,7 +54,6 @@ class TarConfigLoader(ApiResource):
# now try to connect to the db provided in their config to validate it works
combined = dict(**app.config)
combined.update(config_provider.get_config())
configure(combined)
return make_response('OK')