blob: 63a5280f04c3129675bdfd91108f030f6af186ac [file] [log] [blame]
Jon Hall06fd0df2021-01-25 15:50:06 -08001class SRStaging:
2 def __init__( self ):
3 self.default = ''
4
5 def CASE1( self, main ):
6 main.case("Testing connections")
7 main.persistentSetup = True
Jon Hall06fd0df2021-01-25 15:50:06 -08008
Jon Hall50a00012021-03-08 11:06:11 -08009 def CASE2( self, main ):
10 """
11 Connect to Pod
12 Perform rolling ONOS failure/recovery test
13 Collect logs and analyze results
14 """
15 pass
16
17 def CASE3( self, main ):
18 """
19 Connect to Pod
20 Perform ONL reboot failure/recovery test
21 Collect logs and analyze results
22 """
23 pass
24
25 def CASE4( self, main ):
26 """
27 Connect to Pod
28 Perform Stratum agent failure/recovery test
29 Collect logs and analyze results
30 """
31 pass
32
33 def CASE5( self, main ):
34 """
35 Connect to Pod
36 Perform Switch Power Cycle failure/recovery test
37 Collect logs and analyze results
38 """
39 pass
40
41 def CASE6( self, main ):
42 """
43 Connect to Pod
44 Perform eNB Leaf-Spine Link, portstate failure/recovery test
45 Collect logs and analyze results
Jon Hall06fd0df2021-01-25 15:50:06 -080046 """
47 try:
48 from tests.USECASE.SegmentRouting.SRStaging.dependencies.SRStagingTest import SRStagingTest
Jon Hall50a00012021-03-08 11:06:11 -080049 import json
Jon Hall06fd0df2021-01-25 15:50:06 -080050 except ImportError:
51 main.log.error( "SRStagingTest not found. Exiting the test" )
52 main.cleanAndExit()
53 try:
54 main.funcs
55 except ( NameError, AttributeError ):
56 main.funcs = SRStagingTest()
Jon Hall06fd0df2021-01-25 15:50:06 -080057
Jon Hall50a00012021-03-08 11:06:11 -080058 descPrefix = "eNB_Leaf_Spine_Portstate"
Jon Hall06fd0df2021-01-25 15:50:06 -080059 main.funcs.setupTest( main,
Jon Hall06fd0df2021-01-25 15:50:06 -080060 topology='2x2staging',
61 onosNodes=3,
Jon Hall50a00012021-03-08 11:06:11 -080062 description="%s tests on the staging pod" % descPrefix )
Jon Hall06fd0df2021-01-25 15:50:06 -080063 srcComponentNames = main.params[ 'PERF' ][ 'traffic_host' ].split()
64 srcComponentList = []
65 for name in srcComponentNames:
66 srcComponentList.append( getattr( main, name ) )
67 dstComponent = getattr( main, main.params[ 'PERF' ][ 'pcap_host' ] )
68
69 main.downtimeResults = {}
70
Jon Hall06fd0df2021-01-25 15:50:06 -080071 # TODO: MOVE TO CONFIG FILE
Jon Hall50a00012021-03-08 11:06:11 -080072 device = "device:leaf1"
73 portsList = [ 176, 180, 184, 188 ]
74 port1 = None
75 port2 = None
76 port3 = None
77 port4 = None
Jon Hall06fd0df2021-01-25 15:50:06 -080078
Jon Hall06fd0df2021-01-25 15:50:06 -080079 ## First Link Down
80 shortDesc = descPrefix + "-Failure1"
Jon Hall50a00012021-03-08 11:06:11 -080081 longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device )
82 port1 = main.funcs.linkDown( device, portsList, srcComponentList, dstComponent, shortDesc, longDesc )
Jon Hall06fd0df2021-01-25 15:50:06 -080083 ## Second Link Down
84 shortDesc = descPrefix + "-Failure2"
Jon Hall50a00012021-03-08 11:06:11 -080085 longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device )
86 port2 = main.funcs.linkDown( device, portsList, srcComponentList, dstComponent, shortDesc, longDesc )
Jon Hall06fd0df2021-01-25 15:50:06 -080087 ## First Link Up
Jon Hall06fd0df2021-01-25 15:50:06 -080088 shortDesc = descPrefix + "-Recovery1"
89 longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port1 )
90 main.funcs.linkUp( device, port1, srcComponentList, dstComponent, shortDesc, longDesc )
91 ## Second Link Up
92 shortDesc = descPrefix + "-Recovery2"
93 longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port2 )
94 main.funcs.linkUp( device, port2, srcComponentList, dstComponent, shortDesc, longDesc )
95 ## Third Link Down
96 shortDesc = descPrefix + "-Failure3"
Jon Hall50a00012021-03-08 11:06:11 -080097 longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device )
98 port3 = main.funcs.linkDown( device, portsList, srcComponentList, dstComponent, shortDesc, longDesc )
Jon Hall06fd0df2021-01-25 15:50:06 -080099 ## Forth Link Down
100 shortDesc = descPrefix + "-Failure4"
Jon Hall50a00012021-03-08 11:06:11 -0800101 longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device )
102 port4 = main.funcs.linkDown( device, portsList, srcComponentList, dstComponent, shortDesc, longDesc )
103 ## Third Link Up
104 shortDesc = descPrefix + "-Recovery3"
Jon Halla7b27e62021-06-29 12:13:51 -0700105 longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port3 )
Jon Hall50a00012021-03-08 11:06:11 -0800106 main.funcs.linkUp( device, port3, srcComponentList, dstComponent, shortDesc, longDesc )
107 ## Forth Link Up
108 shortDesc = descPrefix + "-Recovery4"
Jon Halla7b27e62021-06-29 12:13:51 -0700109 longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port4 )
Jon Hall50a00012021-03-08 11:06:11 -0800110 main.funcs.linkUp( device, port4, srcComponentList, dstComponent, shortDesc, longDesc )
111
112 main.log.warn( json.dumps( main.downtimeResults, indent=4, sort_keys=True ) )
113 main.funcs.cleanup( main )
114
115 def CASE7( self, main ):
116 """
117 Connect to Pod
118 Perform Upstream Leaf-Spine Link, portstate failure/recovery test
119 Collect logs and analyze results
120 """
121 try:
122 from tests.USECASE.SegmentRouting.SRStaging.dependencies.SRStagingTest import SRStagingTest
123 import json
124 except ImportError:
125 main.log.error( "SRStagingTest not found. Exiting the test" )
126 main.cleanAndExit()
127 try:
128 main.funcs
129 except ( NameError, AttributeError ):
130 main.funcs = SRStagingTest()
131
132 descPrefix = "Upstream_Leaf_Spine_Portstate"
133 main.funcs.setupTest( main,
134 topology='2x2staging',
135 onosNodes=3,
136 description="%s tests on the staging pod" % descPrefix )
137 srcComponentNames = main.params[ 'PERF' ][ 'traffic_host' ].split()
138 srcComponentList = []
139 for name in srcComponentNames:
140 srcComponentList.append( getattr( main, name ) )
141 dstComponent = getattr( main, main.params[ 'PERF' ][ 'pcap_host' ] )
142
143 main.downtimeResults = {}
144
145 # TODO: MOVE TO CONFIG FILE
146 device = "device:leaf2"
147 portsList = [260, 268, 276, 284 ]
148 port1 = None
149 port2 = None
150 port3 = None
151 port4 = None
152
153 ## First Link Down
154 shortDesc = descPrefix + "-Failure1"
155 longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device )
156 port1 = main.funcs.linkDown( device, portsList, srcComponentList, dstComponent, shortDesc, longDesc )
157 ## Second Link Down
158 shortDesc = descPrefix + "-Failure2"
159 longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device )
160 port2 = main.funcs.linkDown( device, portsList, srcComponentList, dstComponent, shortDesc, longDesc )
161 ## First Link Up
162 shortDesc = descPrefix + "-Recovery1"
163 longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port1 )
164 main.funcs.linkUp( device, port1, srcComponentList, dstComponent, shortDesc, longDesc )
165 ## Second Link Up
166 shortDesc = descPrefix + "-Recovery2"
167 longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port2 )
168 main.funcs.linkUp( device, port2, srcComponentList, dstComponent, shortDesc, longDesc )
169 ## Third Link Down
170 shortDesc = descPrefix + "-Failure3"
171 longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device )
172 port3 = main.funcs.linkDown( device, portsList, srcComponentList, dstComponent, shortDesc, longDesc )
173 ## Forth Link Down
174 shortDesc = descPrefix + "-Failure4"
175 longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device )
176 port4 = main.funcs.linkDown( device, portsList, srcComponentList, dstComponent, shortDesc, longDesc )
Jon Hall06fd0df2021-01-25 15:50:06 -0800177 ## Third Link Up
178 shortDesc = descPrefix + "-Recovery3"
Jon Halla7b27e62021-06-29 12:13:51 -0700179 longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port3 )
Jon Hall06fd0df2021-01-25 15:50:06 -0800180 main.funcs.linkUp( device, port3, srcComponentList, dstComponent, shortDesc, longDesc )
181 ## Forth Link Up
182 shortDesc = descPrefix + "-Recovery4"
Jon Halla7b27e62021-06-29 12:13:51 -0700183 longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port4 )
Jon Hall06fd0df2021-01-25 15:50:06 -0800184 main.funcs.linkUp( device, port4, srcComponentList, dstComponent, shortDesc, longDesc )
185
Jon Hall06fd0df2021-01-25 15:50:06 -0800186 main.log.warn( json.dumps( main.downtimeResults, indent=4, sort_keys=True ) )
187 main.funcs.cleanup( main )