14198: Federation feature and testing
[arvados.git] / sdk / cwl / tests / federation / arvbox / arvbox-fed-config.cwl
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: Apache-2.0
4
5 cwlVersion: v1.0
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 outputs:
17   arvbox_data_out:
18     type: Directory
19     outputBinding:
20       outputEval: $(inputs.arvbox_data)
21 requirements:
22   EnvVarRequirement:
23     envDef:
24       ARVBOX_CONTAINER: $(inputs.container_name)
25       ARVBOX_DATA: $(inputs.arvbox_data.path)
26   InitialWorkDirRequirement:
27     listing:
28       - entryname: cluster_config.yml.override
29         entry: >-
30           ${
31           var remoteClusters = {};
32           for (var i = 0; i < inputs.cluster_ids.length; i++) {
33             remoteClusters[inputs.cluster_ids[i]] = {
34               "Host": inputs.cluster_hosts[i],
35               "Proxy": true,
36               "Insecure": true
37             };
38           }
39           var r = {"Clusters": {}};
40           r["Clusters"][inputs.this_cluster_id] = {"RemoteClusters": remoteClusters};
41           return JSON.stringify(r);
42           }
43       - entryname: application.yml.override
44         entry: >-
45           ${
46           var remoteClusters = {};
47           for (var i = 0; i < inputs.cluster_ids.length; i++) {
48             remoteClusters[inputs.cluster_ids[i]] = inputs.cluster_hosts[i];
49           }
50           return JSON.stringify({"development": {"remote_hosts": remoteClusters}});
51           }
52   cwltool:LoadListingRequirement:
53     loadListing: no_listing
54   ShellCommandRequirement: {}
55   InlineJavascriptRequirement: {}
56   cwltool:InplaceUpdateRequirement:
57     inplaceUpdate: true
58 arguments:
59   - shellQuote: false
60     valueFrom: |
61       docker cp cluster_config.yml.override $(inputs.container_name):/var/lib/arvados
62       docker cp application.yml.override $(inputs.container_name):/usr/src/arvados/services/api/config
63       arvbox sv restart api
64       arvbox sv restart controller
65       arvbox sv restart keepstore0
66       arvbox sv restart keepstore1