X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/588358fc0aa03a5036a9aa21f15b604e9e5c98c7..305ca4a6af3a93c0c85adadc330ac6b0c6abddf4:/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 a8bd059581..eb2784c714 100644 --- a/sdk/python/tests/run_test_server.py +++ b/sdk/python/tests/run_test_server.py @@ -12,9 +12,9 @@ import errno import glob import httplib2 import os -import pipes import random import re +import shlex import shutil import signal import socket @@ -338,7 +338,7 @@ def run(leave_running_atexit=False): 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) + newtemplate = re.sub(r'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: @@ -535,7 +535,7 @@ def run_keep(num_servers=2, **kwargs): # If keepproxy and/or keep-web is running, send SIGHUP to make # them discover the new keepstore services. for svc in ('keepproxy', 'keep-web'): - pidfile = _pidfile('keepproxy') + pidfile = _pidfile(svc) if os.path.exists(pidfile): try: with open(pidfile) as pid: @@ -561,7 +561,7 @@ def run_keep_proxy(): env['ARVADOS_API_TOKEN'] = auth_token('anonymous') logf = open(_logfilename('keepproxy'), WRITE_MODE) kp = subprocess.Popen( - ['keepproxy'], env=env, stdin=open('/dev/null'), stdout=logf, stderr=logf, close_fds=True) + ['arvados-server', 'keepproxy'], env=env, stdin=open('/dev/null'), stdout=logf, stderr=logf, close_fds=True) with open(_pidfile('keepproxy'), 'w') as f: f.write(str(kp.pid)) @@ -598,17 +598,17 @@ def run_arv_git_httpd(): gitport = internal_port_from_config("GitHTTP") env = os.environ.copy() env.pop('ARVADOS_API_TOKEN', None) - logf = open(_logfilename('arv-git-httpd'), WRITE_MODE) - agh = subprocess.Popen(['arv-git-httpd'], + logf = open(_logfilename('githttpd'), WRITE_MODE) + agh = subprocess.Popen(['arvados-server', 'git-httpd'], env=env, stdin=open('/dev/null'), stdout=logf, stderr=logf) - with open(_pidfile('arv-git-httpd'), 'w') as f: + with open(_pidfile('githttpd'), 'w') as f: f.write(str(agh.pid)) _wait_until_port_listens(gitport) def stop_arv_git_httpd(): if 'ARVADOS_TEST_PROXY_SERVICES' in os.environ: return - kill_server_pid(_pidfile('arv-git-httpd')) + kill_server_pid(_pidfile('githttpd')) def run_keep_web(): if 'ARVADOS_TEST_PROXY_SERVICES' in os.environ: @@ -619,7 +619,7 @@ def run_keep_web(): env = os.environ.copy() logf = open(_logfilename('keep-web'), WRITE_MODE) keepweb = subprocess.Popen( - ['keep-web'], + ['arvados-server', 'keep-web'], env=env, stdin=open('/dev/null'), stdout=logf, stderr=logf) with open(_pidfile('keep-web'), 'w') as f: f.write(str(keepweb.pid)) @@ -635,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") @@ -659,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') @@ -697,7 +699,6 @@ def setup_config(): keepstore_ports = sorted([str(find_available_port()) for _ in range(0,4)]) keep_web_port = find_available_port() keep_web_external_port = find_available_port() - keep_web_dl_port = find_available_port() keep_web_dl_external_port = find_available_port() configsrc = os.environ.get("CONFIGSRC", None) @@ -779,7 +780,7 @@ def setup_config(): "WebDAVDownload": { "ExternalURL": "https://%s:%s" % (localhost, keep_web_dl_external_port), "InternalURLs": { - "http://%s:%s"%(localhost, keep_web_dl_port): {}, + "http://%s:%s"%(localhost, keep_web_port): {}, }, }, } @@ -791,6 +792,7 @@ def setup_config(): "SystemRootToken": auth_token('system_user'), "API": { "RequestTimeout": "30s", + "LockBeforeUpdate": True, }, "Login": { "Test": { @@ -831,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, @@ -924,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), @@ -959,7 +964,7 @@ if __name__ == "__main__": 'start_keep', 'stop_keep', 'start_keep_proxy', 'stop_keep_proxy', 'start_keep-web', 'stop_keep-web', - 'start_arv-git-httpd', 'stop_arv-git-httpd', + 'start_githttpd', 'stop_githttpd', 'start_nginx', 'stop_nginx', 'setup_config', ] parser = argparse.ArgumentParser() @@ -975,14 +980,17 @@ 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) host = os.environ['ARVADOS_API_HOST'] if args.auth is not None: token = auth_token(args.auth) - print("export ARVADOS_API_TOKEN={}".format(pipes.quote(token))) - print("export ARVADOS_API_HOST={}".format(pipes.quote(host))) + print("export ARVADOS_API_TOKEN={}".format(shlex.quote(token))) + print("export ARVADOS_API_HOST={}".format(shlex.quote(host))) print("export ARVADOS_API_HOST_INSECURE=true") else: print(host) @@ -1004,9 +1012,9 @@ if __name__ == "__main__": run_keep_proxy() elif args.action == 'stop_keep_proxy': stop_keep_proxy() - elif args.action == 'start_arv-git-httpd': + elif args.action == 'start_githttpd': run_arv_git_httpd() - elif args.action == 'stop_arv-git-httpd': + elif args.action == 'stop_githttpd': stop_arv_git_httpd() elif args.action == 'start_keep-web': run_keep_web()