blob: a8301009b511108597346588ab7dcdd74104b3cb [file] [log] [blame]
Thomas Vachuskaf9c84362015-04-15 11:20:45 -07001<!--
Brian O'Connora09fe5b2017-08-03 21:12:30 -07002 ~ Copyright 2015-present Open Networking Foundation
Thomas Vachuskaf9c84362015-04-15 11:20:45 -07003 ~
4 ~ Licensed under the Apache License, Version 2.0 (the "License");
5 ~ you may not use this file except in compliance with the License.
6 ~ You may obtain a copy of the License at
7 ~
8 ~ http://www.apache.org/licenses/LICENSE-2.0
9 ~
10 ~ Unless required by applicable law or agreed to in writing, software
11 ~ distributed under the License is distributed on an "AS IS" BASIS,
12 ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 ~ See the License for the specific language governing permissions and
14 ~ limitations under the License.
15 -->
16<scenario name="setup" description="ONOS cluster setup">
17 <group name="Setup">
Carmelo Cascone6ea3ec42019-06-28 12:23:59 -070018
19 <step name="Set-Jdk-11" exec="stc-set-openjdk11" />
Jordan Halterman6b384252018-10-26 19:13:25 -070020 <step name="Push-Atomix-Bits" exec="atomix-push-bits-through-proxy" if="${OCT}"/>
21 <step name="Push-ONOS-Bits" exec="onos-push-bits-through-proxy" if="${OCT}"/>
22
Thomas Vachuska68acdba2016-03-02 19:41:27 -080023 <step name="Enable-Flow-Objective-Intents" if="${ONOS_USE_FOI}"
24 exec="onos ${OC1} cfg set org.onosproject.net.intent.impl.compiler.IntentConfigurableRegistrator useFlowObjectives true"/>
Thomas Vachuska8189a742015-05-29 10:02:52 -070025
Jon Hallfe4a0732017-03-31 10:46:02 -070026 <group name="Cleanup">
Jordan Halterman19c123a2018-07-30 13:57:19 -070027 <group name="Cleanup-ONOS">
28 <parallel var="${OC#}">
Jordan Halterman6b384252018-10-26 19:13:25 -070029 <step name="Push-ONOS-Bits-${#}" exec="onos-push-bits ${OC#}"
Jordan Halterman19c123a2018-07-30 13:57:19 -070030 unless="${OCT}"/>
31 <step name="Uninstall-${#}" exec="onos-uninstall ${OC#}"/>
32 <step name="Kill-${#}" env="~" exec="onos-kill ${OC#}"
33 requires="Uninstall-${#}"/>
34 </parallel>
35 </group>
Jordan Haltermand326de12018-07-31 11:57:21 -070036 <group name="Cleanup-Atomix-OC" unless="${OCC1}">
37 <parallel var="${OC#}">
Jordan Halterman6b384252018-10-26 19:13:25 -070038 <step name="Push-Atomix-Bits-${#}" exec="atomix-push-bits ${OC#}"
39 unless="${OCT}"/>
Jordan Haltermand326de12018-07-31 11:57:21 -070040 <step name="Atomix-Kill-${#}"
41 env="~"
42 exec="atomix-kill ${OC#}"/>
43 <step name="Atomix-Uninstall-${#}"
44 exec="atomix-uninstall ${OC#}"
45 requires="Atomix-Kill-${#}"/>
46 </parallel>
47 </group>
48 <group name="Cleanup-Atomix-OCC" if="${OCC1}">
Jordan Halterman19c123a2018-07-30 13:57:19 -070049 <parallel var="${OCC#}">
Jordan Halterman6b384252018-10-26 19:13:25 -070050 <step name="Push-Atomix-Bits-${#}" exec="atomix-push-bits ${OC#}"
51 unless="${OCT}"/>
Jordan Halterman19c123a2018-07-30 13:57:19 -070052 <step name="Atomix-Kill-${#}"
53 env="~"
54 exec="atomix-kill ${OCC#}"/>
55 <step name="Atomix-Uninstall-${#}"
56 exec="atomix-uninstall ${OCC#}"
57 requires="Atomix-Kill-${#}"/>
58 </parallel>
59 </group>
Jon Hallfe4a0732017-03-31 10:46:02 -070060 </group>
Thomas Vachuska8189a742015-05-29 10:02:52 -070061
Jordan Halterman19c123a2018-07-30 13:57:19 -070062 <step name="Generate-Cluster-Key" exec="onos-gen-cluster-key -f"/>
Brian O'Connor740e98c2017-06-29 17:07:17 -070063
Jordan Haltermand326de12018-07-31 11:57:21 -070064 <group name="Install-Atomix">
65 <group name="Install-Atomix-OC" unless="${OCC1}">
66 <group name="Parallel-Install-Atomix">
67 <parallel var="${OC#}">
68 <step name="Parallel-Install-Atomix-${#}" exec="atomix-install ${OC#}"
Carmelo Cascone6ea3ec42019-06-28 12:23:59 -070069 requires="Generate-Cluster-Key,Push-Atomix-Bits-${#},Push-Atomix-Bits,Cleanup,Set-Jdk-11"/>
Jordan Haltermand326de12018-07-31 11:57:21 -070070 </parallel>
71 </group>
72 </group>
73
74 <group name="Install-Atomix-OCC" if="${OCC1}">
75 <group name="Parallel-Install-Atomix">
76 <parallel var="${OCC#}">
77 <step name="Parallel-Install-Atomix-${#}" exec="atomix-install ${OCC#}"
Carmelo Cascone6ea3ec42019-06-28 12:23:59 -070078 requires="Generate-Cluster-Key,Push-Atomix-Bits-${#},Push-Atomix-Bits,Cleanup,Set-Jdk-11"/>
Jordan Haltermand326de12018-07-31 11:57:21 -070079 </parallel>
80 </group>
Jon Hallfe4a0732017-03-31 10:46:02 -070081 </group>
82 </group>
Thomas Vachuska12bf4452015-06-26 09:15:38 -070083
Jordan Halterman00e92da2018-05-22 23:05:52 -070084 <group name="Install-ONOS">
85 <group name="Sequential-Install-ONOS" if="${ONOS_STC_SEQ_START}">
86 <sequential var="${OC#}"
87 starts="Sequential-Install-${#}"
88 ends="Sequential-Install-${#-1}">
89 <step name="Sequential-Install-${#}" exec="onos-install ${OC#}"
Carmelo Cascone6ea3ec42019-06-28 12:23:59 -070090 requires="Generate-Cluster-Key,Push-ONOS-Bits-${#},Push-ONOS-Bits,Cleanup,Install-Atomix,Set-Jdk-11"/>
Jordan Halterman00e92da2018-05-22 23:05:52 -070091 </sequential>
92 </group>
93
94 <group name="Parallel-Install-ONOS" unless="${ONOS_STC_SEQ_START}">
95 <parallel var="${OC#}">
96 <step name="Parallel-Install-${#}" exec="onos-install ${OC#}"
Carmelo Cascone6ea3ec42019-06-28 12:23:59 -070097 requires="Generate-Cluster-Key,Push-ONOS-Bits-${#},Push-ONOS-Bits,Cleanup,Install-Atomix,Set-Jdk-11"/>
Jordan Halterman00e92da2018-05-22 23:05:52 -070098 </parallel>
99 </group>
100 </group>
101
102 <group name="Verify" requires="Install-ONOS">
Jon Hallfe4a0732017-03-31 10:46:02 -0700103 <parallel var="${OC#}">
104 <step name="Secure-SSH-${#}"
105 exec="onos-secure-ssh -u ${ONOS_WEB_USER} -p ${ONOS_WEB_PASS} ${OC#}"
Jordan Halterman00e92da2018-05-22 23:05:52 -0700106 requires="Install-ONOS"/>
Thomas Vachuska8189a742015-05-29 10:02:52 -0700107
Jon Hallfe4a0732017-03-31 10:46:02 -0700108 <step name="Wait-for-Start-${#}" exec="onos-wait-for-start ${OC#}"
109 requires="~Secure-SSH-${#}"/>
Thomas Vachuska731193d2015-12-10 11:41:46 -0800110
Jon Hallfe4a0732017-03-31 10:46:02 -0700111 <step name="Check-Nodes-${#}" exec="onos-check-nodes ${OC#}" delay="3"
112 requires="~Wait-for-Start-${#}"/>
Jon Hall5812b582020-09-14 12:22:01 -0700113 <step name="Check-Storage-Nodes-${#}" exec="onos-check-storage-nodes ${OC#}" delay="3"
114 requires="~Wait-for-Start-${#}"/>
Jon Hallfe4a0732017-03-31 10:46:02 -0700115 <step name="Check-Components-${#}" delay="5"
116 exec="onos-check-components ${OC#}"
117 requires="~Wait-for-Start-${#}"/>
Thomas Vachuska68acdba2016-03-02 19:41:27 -0800118
Jon Hallfe4a0732017-03-31 10:46:02 -0700119 <step name="Check-Logs-${#}" exec="onos-check-logs ${OC#}"
120 requires="~Check-Components-${#}"/>
121 <step name="Check-Apps-${#}" exec="onos-check-apps ${OC#} ${ONOS_APPS} includes"
122 requires="~Check-Components-${#}"/>
123
124 <dependency name="Enable-Flow-Objective-Intents" requires="Check-Apps-${#}"/>
125 </parallel>
126 </group>
127
Thomas Vachuskaf9c84362015-04-15 11:20:45 -0700128 </group>
129</scenario>