16263: make the checker happy
[arvados.git] / sdk / cwl / tests / federation / arvboxcwl / start.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   arvbox_data: Directory
13   arvbox_bin: File
14   branch:
15     type: string
16     default: master
17   arvbox_mode:
18     type: string?
19     default: "dev"
20 outputs:
21   cluster_id:
22     type: string
23     outputBinding:
24       glob: status.txt
25       loadContents: true
26       outputEval: |
27         ${
28         var sp = self[0].contents.split("\n");
29         for (var i = 0; i < sp.length; i++) {
30           if (sp[i].startsWith("Cluster id: ")) {
31             return sp[i].substr(12);
32           }
33         }
34         }
35   container_host:
36     type: string
37     outputBinding:
38       glob: status.txt
39       loadContents: true
40       outputEval: |
41         ${
42         var sp = self[0].contents.split("\n");
43         for (var i = 0; i < sp.length; i++) {
44           if (sp[i].startsWith("Container IP: ")) {
45             return sp[i].substr(14)+":8000";
46           }
47         }
48         }
49   superuser_token:
50     type: string
51     outputBinding:
52       glob: superuser_token.txt
53       loadContents: true
54       outputEval: $(self[0].contents.trim())
55   arvbox_data_out:
56     type: Directory
57     outputBinding:
58       outputEval: $(inputs.arvbox_data)
59 requirements:
60   EnvVarRequirement:
61     envDef:
62       ARVBOX_CONTAINER: $(inputs.container_name)
63       ARVBOX_DATA: $(inputs.arvbox_data.path)
64   ShellCommandRequirement: {}
65   InitialWorkDirRequirement:
66     listing:
67       - entry: $(inputs.arvbox_data)
68         entryname: $(inputs.container_name)
69         writable: true
70   InplaceUpdateRequirement:
71     inplaceUpdate: true
72   InlineJavascriptRequirement: {}
73 arguments:
74   - shellQuote: false
75     valueFrom: |
76       set -ex
77       mkdir -p $ARVBOX_DATA
78       if ! test -d $ARVBOX_DATA/arvados ; then
79         cd $ARVBOX_DATA
80         git clone https://git.arvados.org/arvados.git
81       fi
82       cd $ARVBOX_DATA/arvados
83       gitver=`git rev-parse HEAD`
84       git fetch
85       git checkout -f $(inputs.branch)
86       git pull
87       pulled=`git rev-parse HEAD`
88       git --no-pager log -n1 $pulled
89
90       cd $(runtime.outdir)
91       if test "$gitver" = "$pulled" ; then
92         $(inputs.arvbox_bin.path) start $(inputs.arvbox_mode)
93       else
94         $(inputs.arvbox_bin.path) restart $(inputs.arvbox_mode)
95       fi
96       $(inputs.arvbox_bin.path) status > status.txt
97       $(inputs.arvbox_bin.path) cat /var/lib/arvados/superuser_token > superuser_token.txt