X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/59a2d537f3450407aa48e32645d92a5246c046fe..d4ed3e6460469f2766e1f1676c538d6c86e000b6:/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 b073eff40d..e79b4843a2 100644 --- a/sdk/python/tests/run_test_server.py +++ b/sdk/python/tests/run_test_server.py @@ -26,6 +26,11 @@ import time import unittest import yaml +try: + from urllib.parse import urlparse +except ImportError: + from urlparse import urlparse + MY_DIRNAME = os.path.dirname(os.path.realpath(__file__)) if __name__ == '__main__' and os.path.exists( os.path.join(MY_DIRNAME, '..', 'arvados', '__init__.py')): @@ -395,10 +400,12 @@ def get_config(): return yaml.safe_load(f) def internal_port_from_config(service): - return int(list(get_config()["Clusters"]["zzzzz"]["Services"][service]["InternalURLs"].keys())[0].split(":")[2]) + return int(urlparse( + list(get_config()["Clusters"]["zzzzz"]["Services"][service]["InternalURLs"].keys())[0]). + netloc.split(":")[1]) def external_port_from_config(service): - return int(get_config()["Clusters"]["zzzzz"]["Services"][service]["ExternalURL"].split(":")[2]) + return int(urlparse(get_config()["Clusters"]["zzzzz"]["Services"][service]["ExternalURL"]).netloc.split(":")[1]) def run_controller(): if 'ARVADOS_TEST_PROXY_SERVICES' in os.environ: @@ -537,10 +544,11 @@ def run_keep_proxy(): env['ARVADOS_API_TOKEN'] = auth_token('anonymous') logf = open(_logfilename('keepproxy'), 'a') kp = subprocess.Popen( - ['keepproxy', - '-pid='+_pidfile('keepproxy'), - '-listen=:{}'.format(port)], - env=env, stdin=open('/dev/null'), stdout=logf, stderr=logf, close_fds=True) + ['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)) + _wait_until_port_listens(port) print("Using API %s token %s" % (os.environ['ARVADOS_API_HOST'], auth_token('admin')), file=sys.stdout) api = arvados.api( @@ -597,14 +605,9 @@ def run_keep_web(): keepwebport = internal_port_from_config("WebDAV") env = os.environ.copy() - env['ARVADOS_API_TOKEN'] = auth_token('anonymous') logf = open(_logfilename('keep-web'), 'a') keepweb = subprocess.Popen( - ['keep-web', - '-allow-anonymous', - '-attachment-only-host=download', - '-management-token=e687950a23c3a9bceec28c6223a06c79', - '-listen=:'+str(keepwebport)], + ['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)) @@ -670,54 +673,56 @@ def setup_config(): keep_web_dl_port = find_available_port() keep_web_dl_external_port = find_available_port() - if "CONFIGSRC" in os.environ: - dbconf = os.path.join(os.environ["CONFIGSRC"], "config.yml") - else: - dbconf = "/etc/arvados/config.yml" + dbconf = os.path.join(os.environ["CONFIGSRC"], "config.yml") print("Getting config from %s" % dbconf, file=sys.stderr) - pgconnection = list(yaml.safe_load(open(dbconf))["Clusters"].values())[0]["PostgreSQL"]["Connection"] - - if "test" not in pgconnection["dbname"]: - pgconnection["dbname"] = "arvados_test" + pgconnection = yaml.safe_load(open(dbconf))["Clusters"]["zzzzz"]["PostgreSQL"]["Connection"] + localhost = "127.0.0.1" services = { "RailsAPI": { - "InternalURLs": { } + "InternalURLs": { + "https://%s:%s"%(localhost, rails_api_port): {} + } }, "Controller": { - "ExternalURL": "https://localhost:%s" % controller_external_port, - "InternalURLs": { } + "ExternalURL": "https://%s:%s" % (localhost, controller_external_port), + "InternalURLs": { + "http://%s:%s"%(localhost, controller_port): {} + } }, "Websocket": { - "ExternalURL": "https://localhost:%s" % websocket_external_port, - "InternalURLs": { } + "ExternalURL": "wss://%s:%s/websocket" % (localhost, websocket_external_port), + "InternalURLs": { + "http://%s:%s"%(localhost, websocket_port): {} + } }, "GitHTTP": { - "ExternalURL": "https://localhost:%s" % git_httpd_external_port, - "InternalURLs": { } + "ExternalURL": "https://%s:%s" % (localhost, git_httpd_external_port), + "InternalURLs": { + "http://%s:%s"%(localhost, git_httpd_port): {} + } }, "Keepproxy": { - "ExternalURL": "https://localhost:%s" % keepproxy_external_port, - "InternalURLs": { } + "ExternalURL": "https://%s:%s" % (localhost, keepproxy_external_port), + "InternalURLs": { + "http://%s:%s"%(localhost, keepproxy_port): {} + } }, "WebDAV": { - "ExternalURL": "https://localhost:%s" % keep_web_external_port, - "InternalURLs": { } + "ExternalURL": "https://%s:%s" % (localhost, keep_web_external_port), + "InternalURLs": { + "http://%s:%s"%(localhost, keep_web_port): {} + } }, "WebDAVDownload": { - "ExternalURL": "https://localhost:%s" % keep_web_dl_external_port, - "InternalURLs": { } + "ExternalURL": "https://%s:%s" % (localhost, keep_web_dl_external_port), + "InternalURLs": { + "http://%s:%s"%(localhost, keep_web_dl_port): {} + } } } - services["RailsAPI"]["InternalURLs"]["https://localhost:%s"%rails_api_port] = {} - services["Controller"]["InternalURLs"]["http://localhost:%s"%controller_port] = {} - services["Websocket"]["InternalURLs"]["http://localhost:%s"%websocket_port] = {} - services["GitHTTP"]["InternalURLs"]["http://localhost:%s"%git_httpd_port] = {} - services["Keepproxy"]["InternalURLs"]["http://localhost:%s"%keepproxy_port] = {} - services["WebDAV"]["InternalURLs"]["http://localhost:%s"%keep_web_port] = {} - services["WebDAVDownload"]["InternalURLs"]["http://localhost:%s"%keep_web_dl_port] = {} config = { "Clusters": { @@ -736,7 +741,13 @@ def setup_config(): "TLS": { "Insecure": True }, - "Services": services + "Services": services, + "Users": { + "AnonymousUserToken": auth_token('anonymous') + }, + "Collections": { + "TrustAllContent": True + } } } } @@ -746,7 +757,6 @@ def setup_config(): yaml.safe_dump(config, f) ex = "export ARVADOS_CONFIG="+conf - print(ex, file=sys.stderr) print(ex)