blob: 815206b0326328c43791825d8a338308caccb520 [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 Hall66ce22f2021-06-30 14:57:40 -070079 targets = {}
80 targets[device] = portsList
Jon Hall06fd0df2021-01-25 15:50:06 -080081 ## First Link Down
82 shortDesc = descPrefix + "-Failure1"
Jon Hall50a00012021-03-08 11:06:11 -080083 longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device )
Jon Hall66ce22f2021-06-30 14:57:40 -070084 device1, port1 = main.funcs.linkDown( targets, srcComponentList, dstComponent, shortDesc, longDesc )
Jon Hall06fd0df2021-01-25 15:50:06 -080085 ## Second Link Down
86 shortDesc = descPrefix + "-Failure2"
Jon Hall50a00012021-03-08 11:06:11 -080087 longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device )
Jon Hall66ce22f2021-06-30 14:57:40 -070088 device2, port2 = main.funcs.linkDown( targets, srcComponentList, dstComponent, shortDesc, longDesc )
Jon Hall06fd0df2021-01-25 15:50:06 -080089 ## First Link Up
Jon Hall06fd0df2021-01-25 15:50:06 -080090 shortDesc = descPrefix + "-Recovery1"
91 longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port1 )
92 main.funcs.linkUp( device, port1, srcComponentList, dstComponent, shortDesc, longDesc )
93 ## Second Link Up
94 shortDesc = descPrefix + "-Recovery2"
95 longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port2 )
96 main.funcs.linkUp( device, port2, srcComponentList, dstComponent, shortDesc, longDesc )
97 ## Third Link Down
98 shortDesc = descPrefix + "-Failure3"
Jon Hall50a00012021-03-08 11:06:11 -080099 longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device )
Jon Hall66ce22f2021-06-30 14:57:40 -0700100 device3, port3 = main.funcs.linkDown( targets, srcComponentList, dstComponent, shortDesc, longDesc )
Jon Hall06fd0df2021-01-25 15:50:06 -0800101 ## Forth Link Down
102 shortDesc = descPrefix + "-Failure4"
Jon Hall50a00012021-03-08 11:06:11 -0800103 longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device )
Jon Hall66ce22f2021-06-30 14:57:40 -0700104 device4, port4 = main.funcs.linkDown( targets, srcComponentList, dstComponent, shortDesc, longDesc )
Jon Hall50a00012021-03-08 11:06:11 -0800105 ## Third Link Up
106 shortDesc = descPrefix + "-Recovery3"
Jon Halla7b27e62021-06-29 12:13:51 -0700107 longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port3 )
Jon Hall50a00012021-03-08 11:06:11 -0800108 main.funcs.linkUp( device, port3, srcComponentList, dstComponent, shortDesc, longDesc )
109 ## Forth Link Up
110 shortDesc = descPrefix + "-Recovery4"
Jon Halla7b27e62021-06-29 12:13:51 -0700111 longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port4 )
Jon Hall50a00012021-03-08 11:06:11 -0800112 main.funcs.linkUp( device, port4, srcComponentList, dstComponent, shortDesc, longDesc )
113
114 main.log.warn( json.dumps( main.downtimeResults, indent=4, sort_keys=True ) )
115 main.funcs.cleanup( main )
116
117 def CASE7( self, main ):
118 """
119 Connect to Pod
120 Perform Upstream Leaf-Spine Link, portstate failure/recovery test
121 Collect logs and analyze results
122 """
123 try:
124 from tests.USECASE.SegmentRouting.SRStaging.dependencies.SRStagingTest import SRStagingTest
125 import json
126 except ImportError:
127 main.log.error( "SRStagingTest not found. Exiting the test" )
128 main.cleanAndExit()
129 try:
130 main.funcs
131 except ( NameError, AttributeError ):
132 main.funcs = SRStagingTest()
133
134 descPrefix = "Upstream_Leaf_Spine_Portstate"
135 main.funcs.setupTest( main,
136 topology='2x2staging',
137 onosNodes=3,
138 description="%s tests on the staging pod" % descPrefix )
139 srcComponentNames = main.params[ 'PERF' ][ 'traffic_host' ].split()
140 srcComponentList = []
141 for name in srcComponentNames:
142 srcComponentList.append( getattr( main, name ) )
143 dstComponent = getattr( main, main.params[ 'PERF' ][ 'pcap_host' ] )
144
145 main.downtimeResults = {}
146
147 # TODO: MOVE TO CONFIG FILE
148 device = "device:leaf2"
149 portsList = [260, 268, 276, 284 ]
150 port1 = None
151 port2 = None
152 port3 = None
153 port4 = None
154
155 ## First Link Down
156 shortDesc = descPrefix + "-Failure1"
157 longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device )
Jon Hall66ce22f2021-06-30 14:57:40 -0700158 device1, port1 = main.funcs.linkDown( targets, srcComponentList, dstComponent, shortDesc, longDesc )
Jon Hall50a00012021-03-08 11:06:11 -0800159 ## Second Link Down
160 shortDesc = descPrefix + "-Failure2"
161 longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device )
Jon Hall66ce22f2021-06-30 14:57:40 -0700162 device2, port2 = main.funcs.linkDown( targets, srcComponentList, dstComponent, shortDesc, longDesc )
Jon Hall50a00012021-03-08 11:06:11 -0800163 ## First Link Up
164 shortDesc = descPrefix + "-Recovery1"
165 longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port1 )
166 main.funcs.linkUp( device, port1, srcComponentList, dstComponent, shortDesc, longDesc )
167 ## Second Link Up
168 shortDesc = descPrefix + "-Recovery2"
169 longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port2 )
170 main.funcs.linkUp( device, port2, srcComponentList, dstComponent, shortDesc, longDesc )
171 ## Third Link Down
172 shortDesc = descPrefix + "-Failure3"
173 longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device )
Jon Hall66ce22f2021-06-30 14:57:40 -0700174 device3, port3 = main.funcs.linkDown( targets, srcComponentList, dstComponent, shortDesc, longDesc )
Jon Hall50a00012021-03-08 11:06:11 -0800175 ## Forth Link Down
176 shortDesc = descPrefix + "-Failure4"
177 longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device )
Jon Hall66ce22f2021-06-30 14:57:40 -0700178 device4, port4 = main.funcs.linkDown( targets, srcComponentList, dstComponent, shortDesc, longDesc )
Jon Hall06fd0df2021-01-25 15:50:06 -0800179 ## Third Link Up
180 shortDesc = descPrefix + "-Recovery3"
Jon Halla7b27e62021-06-29 12:13:51 -0700181 longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port3 )
Jon Hall06fd0df2021-01-25 15:50:06 -0800182 main.funcs.linkUp( device, port3, srcComponentList, dstComponent, shortDesc, longDesc )
183 ## Forth Link Up
184 shortDesc = descPrefix + "-Recovery4"
Jon Halla7b27e62021-06-29 12:13:51 -0700185 longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port4 )
Jon Hall06fd0df2021-01-25 15:50:06 -0800186 main.funcs.linkUp( device, port4, srcComponentList, dstComponent, shortDesc, longDesc )
187
Jon Hall06fd0df2021-01-25 15:50:06 -0800188 main.log.warn( json.dumps( main.downtimeResults, indent=4, sort_keys=True ) )
189 main.funcs.cleanup( main )