X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/f2c2cb93161f2a50c23e6e6ebbdf2bb879e05da2..150de14b0b265d86df11a04201320944d04fe3a5:/sdk/python/tests/run_test_server.py diff --git a/sdk/python/tests/run_test_server.py b/sdk/python/tests/run_test_server.py index 74722b256e..f9fb36a014 100644 --- a/sdk/python/tests/run_test_server.py +++ b/sdk/python/tests/run_test_server.py @@ -331,6 +331,19 @@ def run(leave_running_atexit=False): os.makedirs(gitdir) subprocess.check_output(['tar', '-xC', gitdir, '-f', gittarball]) + # Customizing the passenger config template is the only documented + # way to override the default passenger_stat_throttle_rate (10 s). + # In the testing environment, we want restart.txt to take effect + # immediately. + resdir = subprocess.check_output(['bundle', 'exec', 'passenger-config', 'about', 'resourcesdir']).decode().rstrip() + with open(resdir + '/templates/standalone/config.erb') as f: + template = f.read() + newtemplate = re.sub('http {', 'http {\n passenger_stat_throttle_rate 0;', template) + if newtemplate == template: + raise "template edit failed" + with open('tmp/passenger-nginx.conf.erb', 'w') as f: + f.write(newtemplate) + port = internal_port_from_config("RailsAPI") env = os.environ.copy() env['RAILS_ENV'] = 'test' @@ -344,6 +357,10 @@ def run(leave_running_atexit=False): railsapi = subprocess.Popen( ['bundle', 'exec', 'passenger', 'start', '-p{}'.format(port), + '--nginx-config-template', 'tmp/passenger-nginx.conf.erb', + '--no-friendly-error-pages', + '--disable-anonymous-telemetry', + '--disable-security-update-check', '--pid-file', pid_file, '--log-file', '/dev/stdout', '--ssl', @@ -618,7 +635,8 @@ def run_nginx(): return stop_nginx() nginxconf = {} - nginxconf['LISTENHOST'] = 'localhost' + nginxconf['UPSTREAMHOST'] = '127.0.0.1' + nginxconf['LISTENHOST'] = '127.0.0.1' nginxconf['CONTROLLERPORT'] = internal_port_from_config("Controller") nginxconf['ARVADOS_API_HOST'] = "0.0.0.0:" + str(external_port_from_config("Controller")) nginxconf['CONTROLLERSSLPORT'] = external_port_from_config("Controller") @@ -642,6 +660,7 @@ def run_nginx(): nginxconf['ACCESSLOG'] = _logfilename('nginx_access') nginxconf['ERRORLOG'] = _logfilename('nginx_error') nginxconf['TMPDIR'] = TEST_TMPDIR + '/nginx' + nginxconf['INTERNALSUBNETS'] = '169.254.0.0/16 0;' conftemplatefile = os.path.join(MY_DIRNAME, 'nginx.conf') conffile = os.path.join(TEST_TMPDIR, 'nginx.conf') @@ -773,6 +792,7 @@ def setup_config(): "SystemRootToken": auth_token('system_user'), "API": { "RequestTimeout": "30s", + "LockBeforeUpdate": True, }, "Login": { "Test": { @@ -813,6 +833,10 @@ def setup_config(): "JobsAPI": { "GitInternalDir": os.path.join(SERVICES_SRC_DIR, 'api', 'tmp', 'internal.git'), }, + "LocalKeepBlobBuffersPerVCPU": 0, + "Logging": { + "SweepInterval": 0, # disable, otherwise test cases can't acquire dblock + }, "SupportedDockerImageFormats": {"v1": {}}, "ShellAccess": { "Admin": True, @@ -906,7 +930,6 @@ class TestCaseWithServers(unittest.TestCase): cls._orig_config = arvados.config.settings().copy() cls._cleanup_funcs = [] os.environ.pop('ARVADOS_KEEP_SERVICES', None) - os.environ.pop('ARVADOS_EXTERNAL_CLIENT', None) for server_kwargs, start_func, stop_func in ( (cls.MAIN_SERVER, run, reset), (cls.WS_SERVER, run_ws, stop_ws), @@ -957,6 +980,9 @@ if __name__ == "__main__": format(args.action, actions), file=sys.stderr) sys.exit(1) + # Create a new process group so our child processes don't exit on + # ^C in run-tests.sh interactive mode. + os.setpgid(0, 0) if args.action == 'start': stop(force=('ARVADOS_TEST_API_HOST' not in os.environ)) run(leave_running_atexit=True)