Ray Milkey

STC changes to make smoke test more reliable

Change-Id: I8ecf2581b12e618bf3fe41baedf5c5decdd77221
...@@ -13,7 +13,7 @@ target=${1:-$OCI} ...@@ -13,7 +13,7 @@ target=${1:-$OCI}
13 echo onos-check-intent: $* 13 echo onos-check-intent: $*
14 14
15 set -x 15 set -x
16 -for i in {1..10}; do 16 +for i in {1..15}; do
17 onos $target "onos:intents" | tee $aux 17 onos $target "onos:intents" | tee $aux
18 ( cat $aux | grep "key=$2" | grep "state=$3" ) && cat $aux && exit 0 18 ( cat $aux | grep "key=$2" | grep "state=$3" ) && cat $aux && exit 0
19 sleep 1 19 sleep 1
......
1 +#!/bin/bash
2 +
3 +aux=/tmp/stc-$$.log
4 +trap "rm -f $aux 2>/dev/null" EXIT
5 +
6 +url=$1
7 +
8 +
9 +echo curl-with-retry: $*
10 +
11 +set -x
12 +for i in {1..3}; do
13 + curl -f -uonos:rocks ${url} >$aux
14 + if [ $? = 0 ]; then
15 + cat $aux
16 + exit 0
17 + fi
18 + sleep 1
19 +done
20 +
21 +cat $aux
22 +exit 1
23 +
...@@ -20,7 +20,9 @@ ...@@ -20,7 +20,9 @@
20 exec="onos-mininet sendAndExpect h1 ping -c1 h4 --expect \ 0% packet loss"/> 20 exec="onos-mininet sendAndExpect h1 ping -c1 h4 --expect \ 0% packet loss"/>
21 <step name="Link-1-Down" requires="~Ping-1" 21 <step name="Link-1-Down" requires="~Ping-1"
22 exec="onos-mininet sendAndExpect link s4 s7 down --expect ."/> 22 exec="onos-mininet sendAndExpect link s4 s7 down --expect ."/>
23 - <step name="Ping-2" requires="~Link-1-Down" 23 + <step name="Ping-2-Prep" requires="~Link-1-Down"
24 + exec="onos-mininet sendAndExpect h1 ping -c5 h4 --expect ."/>
25 + <step name="Ping-2" requires="~Ping-2-Prep"
24 exec="onos-mininet sendAndExpect h1 ping -c1 h4 --expect \ 0% packet loss"/> 26 exec="onos-mininet sendAndExpect h1 ping -c1 h4 --expect \ 0% packet loss"/>
25 <step name="Link-2-Down" requires="~Ping-2" 27 <step name="Link-2-Down" requires="~Ping-2"
26 exec="onos-mininet sendAndExpect link s4 s5 down --expect ."/> 28 exec="onos-mininet sendAndExpect link s4 s5 down --expect ."/>
...@@ -28,11 +30,15 @@ ...@@ -28,11 +30,15 @@
28 exec="onos-mininet sendAndExpect h1 ping -c1 -w1 h4 --expect 100% packet loss"/> 30 exec="onos-mininet sendAndExpect h1 ping -c1 -w1 h4 --expect 100% packet loss"/>
29 <step name="Link-1-Up" requires="~Ping-3" 31 <step name="Link-1-Up" requires="~Ping-3"
30 exec="onos-mininet sendAndExpect link s4 s7 up --expect ."/> 32 exec="onos-mininet sendAndExpect link s4 s7 up --expect ."/>
31 - <step name="Ping-4" requires="~Link-1-Up" 33 + <step name="Ping-4-Prep" requires="~Link-1-Up"
34 + exec="onos-mininet sendAndExpect h1 ping -c5 h4 --expect ."/>
35 + <step name="Ping-4" requires="~Ping-4-Prep"
32 exec="onos-mininet sendAndExpect h1 ping -c1 h4 --expect \ 0% packet loss"/> 36 exec="onos-mininet sendAndExpect h1 ping -c1 h4 --expect \ 0% packet loss"/>
33 <step name="Link-2-Up" requires="~Ping-4" 37 <step name="Link-2-Up" requires="~Ping-4"
34 exec="onos-mininet sendAndExpect link s4 s5 up --expect ."/> 38 exec="onos-mininet sendAndExpect link s4 s5 up --expect ."/>
35 - <step name="Ping-5" requires="~Link-2-Up" 39 + <step name="Ping-5-Prep" requires="~Link-2-Up"
40 + exec="onos-mininet sendAndExpect h1 ping -c5 h4 --expect ."/>
41 + <step name="Ping-5" requires="~Ping-5-Prep"
36 exec="onos-mininet sendAndExpect h1 ping -c1 h4 --expect \ 0% packet loss"/> 42 exec="onos-mininet sendAndExpect h1 ping -c1 h4 --expect \ 0% packet loss"/>
37 </group> 43 </group>
38 -</scenario>
...\ No newline at end of file ...\ No newline at end of file
44 +</scenario>
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
23 23
24 <!-- TODO: take this out when initial pingall sweep is 100% --> 24 <!-- TODO: take this out when initial pingall sweep is 100% -->
25 <step name="Initial-Ping-All" requires="Check-Apps" 25 <step name="Initial-Ping-All" requires="Check-Apps"
26 - exec="onos-mininet sendAndExpect py net.pingAll(1) --expect 600 received"/> 26 + exec="onos-mininet sendAndExpect py net.pingAll(1) --expect received"/>
27 27
28 <step name="Ping-All-And-Verify" requires="Check-Apps,Initial-Ping-All" 28 <step name="Ping-All-And-Verify" requires="Check-Apps,Initial-Ping-All"
29 exec="onos-mininet sendAndExpect py net.pingAll(1) --expect 600/600 received"/> 29 exec="onos-mininet sendAndExpect py net.pingAll(1) --expect 600/600 received"/>
...@@ -34,4 +34,4 @@ ...@@ -34,4 +34,4 @@
34 <step name="Config-Topo" requires="~Check-Summary-For-Hosts" 34 <step name="Config-Topo" requires="~Check-Summary-For-Hosts"
35 exec="onos-topo-cfg ${OC1} ${ONOS_ROOT}/tools/test/topos/attmpls.json"/> 35 exec="onos-topo-cfg ${OC1} ${ONOS_ROOT}/tools/test/topos/attmpls.json"/>
36 </group> 36 </group>
37 -</scenario>
...\ No newline at end of file ...\ No newline at end of file
37 +</scenario>
......
...@@ -101,10 +101,10 @@ ...@@ -101,10 +101,10 @@
101 <!-- Check that the intents can be fetched via the REST API --> 101 <!-- Check that the intents can be fetched via the REST API -->
102 <step name="Net-REST.Validate-Intent-XY-Installed" 102 <step name="Net-REST.Validate-Intent-XY-Installed"
103 requires="Net-REST.Create-Intent-YX" 103 requires="Net-REST.Create-Intent-YX"
104 - exec="curl -f -uonos:rocks ${xyLocation}"/> 104 + exec="curl-with-retry ${xyLocation}"/>
105 <step name="Net-REST.Validate-Intent-YX-Installed" 105 <step name="Net-REST.Validate-Intent-YX-Installed"
106 requires="^" 106 requires="^"
107 - exec="curl -f -uonos:rocks ${yxLocation}"/> 107 + exec="curl-with-retry ${yxLocation}"/>
108 108
109 <!-- Use REST API to query flows created by the intents --> 109 <!-- Use REST API to query flows created by the intents -->
110 <step name="Net-REST.Validate-Intent-XY-Flow-Installed" 110 <step name="Net-REST.Validate-Intent-XY-Flow-Installed"
...@@ -120,7 +120,7 @@ ...@@ -120,7 +120,7 @@
120 <step name="Net-REST.Validate-YX-Flow-State" requires="^" 120 <step name="Net-REST.Validate-YX-Flow-State" requires="^"
121 exec="test '${dev4outFlowState}' == 'ADDED' -o '${dev4outFlowState}' == 'PENDING_ADD'"/> 121 exec="test '${dev4outFlowState}' == 'ADDED' -o '${dev4outFlowState}' == 'PENDING_ADD'"/>
122 <step name="Net-REST.Validate-YX-Flow-Port" requires="^" 122 <step name="Net-REST.Validate-YX-Flow-Port" requires="^"
123 - exec="test '${dev4outFlowPort}' == '3'"/> 123 + exec="test ${dev4outFlowPort} -ge 1 -a ${dev4outFlowPort} -le 5"/>
124 124
125 <!-- Check that connectivity was established --> 125 <!-- Check that connectivity was established -->
126 <step name="Net-REST.Ping-XY" requires="Net-REST.Create-Intent-XY,Net-REST.Create-Intent-YX" 126 <step name="Net-REST.Ping-XY" requires="Net-REST.Create-Intent-XY,Net-REST.Create-Intent-YX"
...@@ -139,22 +139,23 @@ ...@@ -139,22 +139,23 @@
139 exec="curl -f -X DELETE -uonos:rocks ${xyLocation}"/> 139 exec="curl -f -X DELETE -uonos:rocks ${xyLocation}"/>
140 <step name="Net-REST.Delete-Intent-YX" requires="^" 140 <step name="Net-REST.Delete-Intent-YX" requires="^"
141 exec="curl -f -X DELETE -uonos:rocks ${yxLocation}"/> 141 exec="curl -f -X DELETE -uonos:rocks ${yxLocation}"/>
142 + <step name="Net-REST.Allow-Intents-To-Purge"
143 + exec="onos-check-intent ${OC1} xy INSTALLED" env="!"
144 + requires="Net-REST.Delete-Intent-XY,Net-REST.Delete-Intent-YX"/>
142 145
143 <!-- Use REST API to be sure that flows are no longer installed --> 146 <!-- Use REST API to be sure that flows are no longer installed -->
144 - <step name="Net-REST.Validate-XY-Flows-Removed" requires="Net-REST.Delete-Intent-XY" 147 + <step name="Net-REST.Validate-XY-Flows-Removed" requires="Net-REST.Allow-Intents-To-Purge"
145 exec="find-flow.py ${OC1} dev1out of:0000000000000001" 148 exec="find-flow.py ${OC1} dev1out of:0000000000000001"
146 env="!"/> 149 env="!"/>
147 - <step name="Net-REST.Validate-YX-Flows-Removed" requires="Net-REST.Delete-Intent-YX" 150 + <step name="Net-REST.Validate-YX-Flows-Removed" requires="Net-REST.Allow-Intents-To-Purge"
148 exec="find-flow.py ${OC1} dev4out of:0000000000000004" 151 exec="find-flow.py ${OC1} dev4out of:0000000000000004"
149 env="!"/> 152 env="!"/>
150 153
151 <!-- Check that the deleted intents no longer appear in the REST API --> 154 <!-- Check that the deleted intents no longer appear in the REST API -->
152 - <step name="Net-REST.Allow-Intents-To-Purge" requires="Net-REST.Delete-Intent-XY"
153 - exec="sleep 1"/>
154 <step name="Net-REST.Validate-Intent-XY-Removed" requires="Net-REST.Allow-Intents-To-Purge" 155 <step name="Net-REST.Validate-Intent-XY-Removed" requires="Net-REST.Allow-Intents-To-Purge"
155 - exec="curl -f -uonos:rocks ${xyLocation}" env="!"/> 156 + exec="curl-with-retry ${xyLocation}" env="!"/>
156 <step name="Net-REST.Validate-Intent-YX-Removed" requires="Net-REST.Allow-Intents-To-Purge" 157 <step name="Net-REST.Validate-Intent-YX-Removed" requires="Net-REST.Allow-Intents-To-Purge"
157 - exec="curl -f -uonos:rocks ${yxLocation}" env="!"/> 158 + exec="curl-with-retry ${yxLocation}" env="!"/>
158 159
159 </group> 160 </group>
160 </scenario> 161 </scenario>
......
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
42 <dependency name="Net-Teardown" requires="~Host-Intent-Connectivity, 42 <dependency name="Net-Teardown" requires="~Host-Intent-Connectivity,
43 ~P2P-Intent-Connectivity, 43 ~P2P-Intent-Connectivity,
44 ~Net-REST, 44 ~Net-REST,
45 - ~Net-Create-Flows"/> 45 + ~Net-Create-Flows,
46 + ~Net-topo"/>
46 </group> 47 </group>
47 </scenario> 48 </scenario>
......