blob: 41eb65dfbb9fdfac2cb1ef29305b35d13b05f9d4 [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">
Jordan Halterman6b384252018-10-26 19:13:25 -070018 <step name="Push-Atomix-Bits" exec="atomix-push-bits-through-proxy" if="${OCT}"/>
19 <step name="Push-ONOS-Bits" exec="onos-push-bits-through-proxy" if="${OCT}"/>
20
Thomas Vachuska68acdba2016-03-02 19:41:27 -080021 <step name="Enable-Flow-Objective-Intents" if="${ONOS_USE_FOI}"
22 exec="onos ${OC1} cfg set org.onosproject.net.intent.impl.compiler.IntentConfigurableRegistrator useFlowObjectives true"/>
Thomas Vachuska8189a742015-05-29 10:02:52 -070023
Jon Hallfe4a0732017-03-31 10:46:02 -070024 <group name="Cleanup">
Jordan Halterman19c123a2018-07-30 13:57:19 -070025 <group name="Cleanup-ONOS">
26 <parallel var="${OC#}">
Jordan Halterman6b384252018-10-26 19:13:25 -070027 <step name="Push-ONOS-Bits-${#}" exec="onos-push-bits ${OC#}"
Jordan Halterman19c123a2018-07-30 13:57:19 -070028 unless="${OCT}"/>
29 <step name="Uninstall-${#}" exec="onos-uninstall ${OC#}"/>
30 <step name="Kill-${#}" env="~" exec="onos-kill ${OC#}"
31 requires="Uninstall-${#}"/>
32 </parallel>
33 </group>
Jordan Haltermand326de12018-07-31 11:57:21 -070034 <group name="Cleanup-Atomix-OC" unless="${OCC1}">
35 <parallel var="${OC#}">
Jordan Halterman6b384252018-10-26 19:13:25 -070036 <step name="Push-Atomix-Bits-${#}" exec="atomix-push-bits ${OC#}"
37 unless="${OCT}"/>
Jordan Haltermand326de12018-07-31 11:57:21 -070038 <step name="Atomix-Kill-${#}"
39 env="~"
40 exec="atomix-kill ${OC#}"/>
41 <step name="Atomix-Uninstall-${#}"
42 exec="atomix-uninstall ${OC#}"
43 requires="Atomix-Kill-${#}"/>
44 </parallel>
45 </group>
46 <group name="Cleanup-Atomix-OCC" if="${OCC1}">
Jordan Halterman19c123a2018-07-30 13:57:19 -070047 <parallel var="${OCC#}">
Jordan Halterman6b384252018-10-26 19:13:25 -070048 <step name="Push-Atomix-Bits-${#}" exec="atomix-push-bits ${OC#}"
49 unless="${OCT}"/>
Jordan Halterman19c123a2018-07-30 13:57:19 -070050 <step name="Atomix-Kill-${#}"
51 env="~"
52 exec="atomix-kill ${OCC#}"/>
53 <step name="Atomix-Uninstall-${#}"
54 exec="atomix-uninstall ${OCC#}"
55 requires="Atomix-Kill-${#}"/>
56 </parallel>
57 </group>
Jon Hallfe4a0732017-03-31 10:46:02 -070058 </group>
Thomas Vachuska8189a742015-05-29 10:02:52 -070059
Jordan Halterman19c123a2018-07-30 13:57:19 -070060 <step name="Generate-Cluster-Key" exec="onos-gen-cluster-key -f"/>
Brian O'Connor740e98c2017-06-29 17:07:17 -070061
Jordan Haltermand326de12018-07-31 11:57:21 -070062 <group name="Install-Atomix">
63 <group name="Install-Atomix-OC" unless="${OCC1}">
64 <group name="Parallel-Install-Atomix">
65 <parallel var="${OC#}">
66 <step name="Parallel-Install-Atomix-${#}" exec="atomix-install ${OC#}"
Jordan Halterman6b384252018-10-26 19:13:25 -070067 requires="Generate-Cluster-Key,Push-Atomix-Bits-${#},Push-Atomix-Bits,Cleanup"/>
Jordan Haltermand326de12018-07-31 11:57:21 -070068 </parallel>
69 </group>
70 </group>
71
72 <group name="Install-Atomix-OCC" if="${OCC1}">
73 <group name="Parallel-Install-Atomix">
74 <parallel var="${OCC#}">
75 <step name="Parallel-Install-Atomix-${#}" exec="atomix-install ${OCC#}"
Jordan Halterman6b384252018-10-26 19:13:25 -070076 requires="Generate-Cluster-Key,Push-Atomix-Bits-${#},Push-Atomix-Bits,Cleanup"/>
Jordan Haltermand326de12018-07-31 11:57:21 -070077 </parallel>
78 </group>
Jon Hallfe4a0732017-03-31 10:46:02 -070079 </group>
80 </group>
Thomas Vachuska12bf4452015-06-26 09:15:38 -070081
Jordan Halterman00e92da2018-05-22 23:05:52 -070082 <group name="Install-ONOS">
83 <group name="Sequential-Install-ONOS" if="${ONOS_STC_SEQ_START}">
84 <sequential var="${OC#}"
85 starts="Sequential-Install-${#}"
86 ends="Sequential-Install-${#-1}">
87 <step name="Sequential-Install-${#}" exec="onos-install ${OC#}"
Jordan Halterman6b384252018-10-26 19:13:25 -070088 requires="Generate-Cluster-Key,Push-ONOS-Bits-${#},Push-ONOS-Bits,Cleanup,Install-Atomix"/>
Jordan Halterman00e92da2018-05-22 23:05:52 -070089 </sequential>
90 </group>
91
92 <group name="Parallel-Install-ONOS" unless="${ONOS_STC_SEQ_START}">
93 <parallel var="${OC#}">
94 <step name="Parallel-Install-${#}" exec="onos-install ${OC#}"
Jordan Halterman6b384252018-10-26 19:13:25 -070095 requires="Generate-Cluster-Key,Push-ONOS-Bits-${#},Push-ONOS-Bits,Cleanup,Install-Atomix"/>
Jordan Halterman00e92da2018-05-22 23:05:52 -070096 </parallel>
97 </group>
98 </group>
99
100 <group name="Verify" requires="Install-ONOS">
Jon Hallfe4a0732017-03-31 10:46:02 -0700101 <parallel var="${OC#}">
102 <step name="Secure-SSH-${#}"
103 exec="onos-secure-ssh -u ${ONOS_WEB_USER} -p ${ONOS_WEB_PASS} ${OC#}"
Jordan Halterman00e92da2018-05-22 23:05:52 -0700104 requires="Install-ONOS"/>
Thomas Vachuska8189a742015-05-29 10:02:52 -0700105
Jon Hallfe4a0732017-03-31 10:46:02 -0700106 <step name="Wait-for-Start-${#}" exec="onos-wait-for-start ${OC#}"
107 requires="~Secure-SSH-${#}"/>
Thomas Vachuska731193d2015-12-10 11:41:46 -0800108
Jon Hallfe4a0732017-03-31 10:46:02 -0700109 <step name="Check-Nodes-${#}" exec="onos-check-nodes ${OC#}" delay="3"
110 requires="~Wait-for-Start-${#}"/>
111 <step name="Check-Components-${#}" delay="5"
112 exec="onos-check-components ${OC#}"
113 requires="~Wait-for-Start-${#}"/>
Thomas Vachuska68acdba2016-03-02 19:41:27 -0800114
Jon Hallfe4a0732017-03-31 10:46:02 -0700115 <step name="Check-Logs-${#}" exec="onos-check-logs ${OC#}"
116 requires="~Check-Components-${#}"/>
117 <step name="Check-Apps-${#}" exec="onos-check-apps ${OC#} ${ONOS_APPS} includes"
118 requires="~Check-Components-${#}"/>
119
120 <dependency name="Enable-Flow-Objective-Intents" requires="Check-Apps-${#}"/>
121 </parallel>
122 </group>
123
Thomas Vachuskaf9c84362015-04-15 11:20:45 -0700124 </group>
125</scenario>