16955: a number of fixes to make the federation migration tests pass
[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="master"
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     run tool(container, host, arvbox_bin, refspec) {
22 sh <<<
23 set -xe
24 export ARVBOX_CONTAINER="$(inputs.container)"
25 $(inputs.arvbox_bin.path) pipe <<EOF
26 cd /usr/src/arvados
27 git fetch
28 git checkout -f $(inputs.refspec)
29 git pull
30 chown arvbox:arvbox -R .
31 EOF
32
33 $(inputs.arvbox_bin.path) hotreset
34
35 while ! curl --fail --insecure --silent https://$(inputs.host)/discovery/v1/apis/arvados/v1/rest >/dev/null ; do sleep 3 ; done
36
37 ARVADOS_VIRTUAL_MACHINE_UUID=\$($(inputs.arvbox_bin.path) cat /var/lib/arvados-arvbox/vm-uuid)
38 ARVADOS_API_TOKEN=\$($(inputs.arvbox_bin.path) cat /var/lib/arvados-arvbox/superuser_token)
39 while ! curl --fail --insecure --silent -H "Authorization: Bearer $ARVADOS_API_TOKEN" https://$(inputs.host)/arvados/v1/virtual_machines/$ARVADOS_VIRTUAL_MACHINE_UUID >/dev/null ; do sleep 3 ; done
40
41 >>>
42       return container as d
43     }
44     supertok = superuser_tok(container, d)
45     return supertok
46   }
47
48   report = run_test(arvados_api_hosts, superuser_tokens=supertok, fed_migrate)
49   return supertok, report
50 }