16955: a number of fixes to make the federation migration tests pass
[arvados.git] / sdk / cwl / tests / federation / arvboxcwl / fed-config.cwl
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: Apache-2.0
4
5 cwlVersion: v1.1
6 class: CommandLineTool
7 $namespaces:
8   arv: "http://arvados.org/cwl#"
9   cwltool: "http://commonwl.org/cwltool#"
10 inputs:
11   container_name: string
12   this_cluster_id: string
13   cluster_ids: string[]
14   cluster_hosts: string[]
15   arvbox_data: Directory
16   arvbox_bin: File
17   logincluster:
18     type: boolean
19     default: false
20 outputs:
21   arvbox_data_out:
22     type: Directory
23     outputBinding:
24       outputEval: $(inputs.arvbox_data)
25 requirements:
26   EnvVarRequirement:
27     envDef:
28       ARVBOX_CONTAINER: $(inputs.container_name)
29       ARVBOX_DATA: $(inputs.arvbox_data.path)
30   InitialWorkDirRequirement:
31     listing:
32       - entryname: cluster_config.yml.override
33         entry: >-
34           ${
35           var remoteClusters = {};
36           for (var i = 0; i < inputs.cluster_ids.length; i++) {
37             remoteClusters[inputs.cluster_ids[i]] = {
38               "Host": inputs.cluster_hosts[i],
39               "Proxy": true,
40               "Insecure": true
41             };
42           }
43           var r = {"Clusters": {}};
44           r["Clusters"][inputs.this_cluster_id] = {"RemoteClusters": remoteClusters};
45           if (r["Clusters"][inputs.this_cluster_id]) {
46             r["Clusters"][inputs.this_cluster_id]["Login"] = {"LoginCluster": inputs.cluster_ids[0]};
47           }
48           return JSON.stringify(r);
49           }
50       - entryname: application.yml.override
51         entry: >-
52           ${
53           var remoteClusters = {};
54           for (var i = 0; i < inputs.cluster_ids.length; i++) {
55             remoteClusters[inputs.cluster_ids[i]] = inputs.cluster_hosts[i];
56           }
57           return JSON.stringify({"development": {"remote_hosts": remoteClusters}});
58           }
59   LoadListingRequirement:
60     loadListing: no_listing
61   ShellCommandRequirement: {}
62   InlineJavascriptRequirement: {}
63   InplaceUpdateRequirement:
64     inplaceUpdate: true
65 arguments:
66   - shellQuote: false
67     valueFrom: |
68       docker cp cluster_config.yml.override $(inputs.container_name):/var/lib/arvados-arvbox
69       docker cp application.yml.override $(inputs.container_name):/usr/src/arvados/services/api/config
70       $(inputs.arvbox_bin.path) sv restart api
71       $(inputs.arvbox_bin.path) sv restart controller
72       $(inputs.arvbox_bin.path) sv restart keepstore0
73       $(inputs.arvbox_bin.path) sv restart keepstore1