Bump loofah from 2.2.3 to 2.3.1 in /apps/workbench
[arvados.git] / sdk / python / tests / fed-migrate / fed-migrate.cwlex
1 import "run-test.cwlex" as run_test
2 import "superuser-tok.cwl" as superuser_tok
3
4 def workflow main(
5   arvados_api_hosts string[],
6   arvados_cluster_ids string[],
7   superuser_tokens string[],
8   arvbox_containers string[],
9   fed_migrate="arv-federation-migrate",
10   arvbox_bin File,
11   refspec="15531-logincluster-migrate"
12 ) {
13
14   logincluster = run expr (arvados_cluster_ids) string (inputs.arvados_cluster_ids[0])
15
16   scatter arvbox_containers as container,
17           arvados_cluster_ids as cluster_id,
18           arvados_api_hosts as host
19     do run workflow(logincluster, arvbox_bin, refspec)
20   {
21     requirements {
22       EnvVarRequirement {
23         envDef: {
24           ARVBOX_CONTAINER: "$(inputs.container)"
25         }
26       }
27     }
28
29     run tool(container, cluster_id, logincluster, set_login = File("set_login.py")) {
30 sh <<<
31 set -x
32 docker cp $(inputs.container):/var/lib/arvados/cluster_config.yml.override .
33 chmod +w cluster_config.yml.override
34 python $(inputs.set_login.path) cluster_config.yml.override $(inputs.cluster_id) $(inputs.logincluster)
35 docker cp cluster_config.yml.override $(inputs.container):/var/lib/arvados
36 >>>
37       return container as c
38     }
39     run tool(container, host, arvbox_bin, c, refspec) {
40 sh <<<
41 set -xe
42 $(inputs.arvbox_bin.path) pipe <<EOF
43 cd /usr/src/arvados
44 git fetch
45 git checkout -f $(inputs.refspec)
46 git pull
47 chown arvbox:arvbox -R .
48 EOF
49
50 $(inputs.arvbox_bin.path) hotreset
51
52 while ! curl --fail --insecure --silent https://$(inputs.host)/discovery/v1/apis/arvados/v1/rest >/dev/null ; do sleep 3 ; done
53 export ARVADOS_API_HOST=$(inputs.host)
54 export ARVADOS_API_TOKEN=\$($(inputs.arvbox_bin.path) cat /var/lib/arvados/superuser_token)
55 export ARVADOS_API_HOST_INSECURE=1
56 ARVADOS_VIRTUAL_MACHINE_UUID=\$($(inputs.arvbox_bin.path) cat /var/lib/arvados/vm-uuid)
57 while ! python -c "import arvados ; arvados.api().virtual_machines().get(uuid='$ARVADOS_VIRTUAL_MACHINE_UUID').execute()" 2>/dev/null ; do sleep 3; done
58 >>>
59       return c as d
60     }
61     supertok = superuser_tok(container, d)
62     return supertok
63   }
64
65   report = run_test(arvados_api_hosts, superuser_tokens=supertok, fed_migrate)
66   return supertok, report
67 }