blob: 6b0ecaeace707ff75f2eb8f046410966edacbb42 [file] [log] [blame]
Jordan Haltermancbbdb8c2017-12-20 18:12:26 -08001<!--
2 ~ Copyright 2017-present Open Networking Foundation
3 ~
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
17<scenario name="ha-multi-node"
18 description="ONOS cluster multiple node failure and recovery">
19 <group name="Multi-Node-Failure" if="${OC2}">
20 <sequential var="${OC#}"
21 starts="Node-Death-${#}"
22 ends="Check-All-Logs-${#-1}">
23 <step name="Node-Death-${#}"
24 exec="onos-power ${OC#} off"/>
25
26 <step name="Validate-Death-${#}"
27 requires="Node-Death-${#}"
28 exec="onos-check-node-status ${OC#} INACTIVE"/>
29
30 <step name="Breathe-${#}"
31 requires="Validate-Death-${#}"
32 exec="sleep 5"/>
33
34 <step name="Node-Start-${#}"
35 requires="Breathe-${#}"
36 exec="onos-power ${OC#} on"/>
37
38 <step name="Wait-for-Start-${#}"
39 requires="~Node-Start-${#}"
40 exec="onos-wait-for-start ${OC#}"/>
41
42 <step name="Check-Nodes-${#}"
43 requires="Wait-for-Start-${#}"
44 exec="onos-check-nodes ${OC#}"/>
45
46 <step name="Check-Masters-${#}"
47 requires="~Check-Nodes-${#}"
48 exec="check-masters.py ${OC#}"/>
49
50 <step name="Check-Components-${#}"
51 requires="~Check-Nodes-${#}"
52 exec="onos-check-components ${OC#}"/>
53
54 <step name="Check-Apps-${#}"
55 requires="~Check-Nodes-${#}"
56 exec="onos-check-apps ${OC#} ${ONOS_APPS} includes"/>
57
58 <step name="Check-Flows-${#}"
59 requires="~Check-Nodes-${#}"
60 exec="onos-check-flows ${OC#}"/>
61
62 <step name="Check-All-Logs-${#}"
63 requires="~Check-Nodes-${#},~Check-Masters-${#},~Check-Components-${#},~Check-Apps-${#},~Check-Flows-${#}"
64 exec="onos-check-all-logs --ignore-store-exceptions"/>
65 </sequential>
66 </group>
67
68 <group name="Multi-Node-NA" unless="${OC2}">
69 <step name="No-Op" exec="echo Scenario not supported for this cell size"/>
70 </group>
71</scenario>