import "run-test.cwlex" as run_test import "superuser-tok.cwl" as superuser_tok def workflow main( arvados_api_hosts string[], arvados_cluster_ids string[], superuser_tokens string[], arvbox_containers string[], fed_migrate="arv-federation-migrate", arvbox_bin File, refspec="15531-logincluster-migrate" ) { logincluster = run expr (arvados_cluster_ids) string (inputs.arvados_cluster_ids[0]) scatter arvbox_containers as container, arvados_cluster_ids as cluster_id, arvados_api_hosts as host do run workflow(logincluster, arvbox_bin, refspec) { requirements { EnvVarRequirement { envDef: { ARVBOX_CONTAINER: "$(inputs.container)" } } } run tool(container, cluster_id, logincluster, set_login = File("set_login.py")) { sh <<< set -x docker cp $(inputs.container):/var/lib/arvados/cluster_config.yml.override . chmod +w cluster_config.yml.override python $(inputs.set_login.path) cluster_config.yml.override $(inputs.cluster_id) $(inputs.logincluster) docker cp cluster_config.yml.override $(inputs.container):/var/lib/arvados >>> return container as c } run tool(container, host, arvbox_bin, c, refspec) { sh <<< set -xe $(inputs.arvbox_bin.path) pipe </dev/null ; do sleep 3 ; done export ARVADOS_API_HOST=$(inputs.host) export ARVADOS_API_TOKEN=\$($(inputs.arvbox_bin.path) cat /var/lib/arvados/superuser_token) export ARVADOS_API_HOST_INSECURE=1 ARVADOS_VIRTUAL_MACHINE_UUID=\$($(inputs.arvbox_bin.path) cat /var/lib/arvados/vm-uuid) while ! python -c "import arvados ; arvados.api().virtual_machines().get(uuid='$ARVADOS_VIRTUAL_MACHINE_UUID').execute()" 2>/dev/null ; do sleep 3; done >>> return c as d } supertok = superuser_tok(container, d) return supertok } report = run_test(arvados_api_hosts, superuser_tokens=supertok, fed_migrate) return supertok, report }