class SRStaging: | |
def __init__( self ): | |
self.default = '' | |
def CASE1( self, main ): | |
main.case("Testing connections") | |
main.persistentSetup = True | |
def CASE2( self, main ): | |
""" | |
Connect to Pod | |
Perform rolling ONOS failure/recovery test | |
Collect logs and analyze results | |
""" | |
pass | |
def CASE3( self, main ): | |
""" | |
Connect to Pod | |
Perform ONL reboot failure/recovery test | |
Collect logs and analyze results | |
""" | |
pass | |
def CASE4( self, main ): | |
""" | |
Connect to Pod | |
Perform Stratum agent failure/recovery test | |
Collect logs and analyze results | |
""" | |
pass | |
def CASE5( self, main ): | |
""" | |
Connect to Pod | |
Perform Switch Power Cycle failure/recovery test | |
Collect logs and analyze results | |
""" | |
pass | |
def CASE6( self, main ): | |
""" | |
Connect to Pod | |
Perform eNB Leaf-Spine Link, portstate failure/recovery test | |
Collect logs and analyze results | |
""" | |
try: | |
from tests.USECASE.SegmentRouting.SRStaging.dependencies.SRStagingTest import SRStagingTest | |
import json | |
except ImportError: | |
main.log.error( "SRStagingTest not found. Exiting the test" ) | |
main.cleanAndExit() | |
try: | |
main.funcs | |
except ( NameError, AttributeError ): | |
main.funcs = SRStagingTest() | |
descPrefix = "eNB_Leaf_Spine_Portstate" | |
main.funcs.setupTest( main, | |
topology='2x2staging', | |
onosNodes=3, | |
description="%s tests on the staging pod" % descPrefix ) | |
srcComponentNames = main.params[ 'PERF' ][ 'traffic_host' ].split() | |
srcComponentList = [] | |
for name in srcComponentNames: | |
srcComponentList.append( getattr( main, name ) ) | |
dstComponent = getattr( main, main.params[ 'PERF' ][ 'pcap_host' ] ) | |
main.downtimeResults = {} | |
# TODO: MOVE TO CONFIG FILE | |
device = "device:leaf1" | |
portsList = [ 176, 180, 184, 188 ] | |
port1 = None | |
port2 = None | |
port3 = None | |
port4 = None | |
## First Link Down | |
shortDesc = descPrefix + "-Failure1" | |
longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device ) | |
port1 = main.funcs.linkDown( device, portsList, srcComponentList, dstComponent, shortDesc, longDesc ) | |
## Second Link Down | |
shortDesc = descPrefix + "-Failure2" | |
longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device ) | |
port2 = main.funcs.linkDown( device, portsList, srcComponentList, dstComponent, shortDesc, longDesc ) | |
## First Link Up | |
shortDesc = descPrefix + "-Recovery1" | |
longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port1 ) | |
main.funcs.linkUp( device, port1, srcComponentList, dstComponent, shortDesc, longDesc ) | |
## Second Link Up | |
shortDesc = descPrefix + "-Recovery2" | |
longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port2 ) | |
main.funcs.linkUp( device, port2, srcComponentList, dstComponent, shortDesc, longDesc ) | |
## Third Link Down | |
shortDesc = descPrefix + "-Failure3" | |
longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device ) | |
port3 = main.funcs.linkDown( device, portsList, srcComponentList, dstComponent, shortDesc, longDesc ) | |
## Forth Link Down | |
shortDesc = descPrefix + "-Failure4" | |
longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device ) | |
port4 = main.funcs.linkDown( device, portsList, srcComponentList, dstComponent, shortDesc, longDesc ) | |
## Third Link Up | |
shortDesc = descPrefix + "-Recovery3" | |
longDesc = "%s Recovery: Bring upn %s/%s" % ( descPrefix, device, port3 ) | |
main.funcs.linkUp( device, port3, srcComponentList, dstComponent, shortDesc, longDesc ) | |
## Forth Link Up | |
shortDesc = descPrefix + "-Recovery4" | |
longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port4 ) | |
main.funcs.linkUp( device, port4, srcComponentList, dstComponent, shortDesc, longDesc ) | |
main.log.warn( json.dumps( main.downtimeResults, indent=4, sort_keys=True ) ) | |
main.funcs.cleanup( main ) | |
def CASE7( self, main ): | |
""" | |
Connect to Pod | |
Perform Upstream Leaf-Spine Link, portstate failure/recovery test | |
Collect logs and analyze results | |
""" | |
try: | |
from tests.USECASE.SegmentRouting.SRStaging.dependencies.SRStagingTest import SRStagingTest | |
import json | |
except ImportError: | |
main.log.error( "SRStagingTest not found. Exiting the test" ) | |
main.cleanAndExit() | |
try: | |
main.funcs | |
except ( NameError, AttributeError ): | |
main.funcs = SRStagingTest() | |
descPrefix = "Upstream_Leaf_Spine_Portstate" | |
main.funcs.setupTest( main, | |
topology='2x2staging', | |
onosNodes=3, | |
description="%s tests on the staging pod" % descPrefix ) | |
srcComponentNames = main.params[ 'PERF' ][ 'traffic_host' ].split() | |
srcComponentList = [] | |
for name in srcComponentNames: | |
srcComponentList.append( getattr( main, name ) ) | |
dstComponent = getattr( main, main.params[ 'PERF' ][ 'pcap_host' ] ) | |
main.downtimeResults = {} | |
# TODO: MOVE TO CONFIG FILE | |
device = "device:leaf2" | |
portsList = [260, 268, 276, 284 ] | |
port1 = None | |
port2 = None | |
port3 = None | |
port4 = None | |
## First Link Down | |
shortDesc = descPrefix + "-Failure1" | |
longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device ) | |
port1 = main.funcs.linkDown( device, portsList, srcComponentList, dstComponent, shortDesc, longDesc ) | |
## Second Link Down | |
shortDesc = descPrefix + "-Failure2" | |
longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device ) | |
port2 = main.funcs.linkDown( device, portsList, srcComponentList, dstComponent, shortDesc, longDesc ) | |
## First Link Up | |
shortDesc = descPrefix + "-Recovery1" | |
longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port1 ) | |
main.funcs.linkUp( device, port1, srcComponentList, dstComponent, shortDesc, longDesc ) | |
## Second Link Up | |
shortDesc = descPrefix + "-Recovery2" | |
longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port2 ) | |
main.funcs.linkUp( device, port2, srcComponentList, dstComponent, shortDesc, longDesc ) | |
## Third Link Down | |
shortDesc = descPrefix + "-Failure3" | |
longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device ) | |
port3 = main.funcs.linkDown( device, portsList, srcComponentList, dstComponent, shortDesc, longDesc ) | |
## Forth Link Down | |
shortDesc = descPrefix + "-Failure4" | |
longDesc = "%s Failure: Bring down port with most traffic on %s" % ( descPrefix, device ) | |
port4 = main.funcs.linkDown( device, portsList, srcComponentList, dstComponent, shortDesc, longDesc ) | |
## Third Link Up | |
shortDesc = descPrefix + "-Recovery3" | |
longDesc = "%s Recovery: Bring upn %s/%s" % ( descPrefix, device, port3 ) | |
main.funcs.linkUp( device, port3, srcComponentList, dstComponent, shortDesc, longDesc ) | |
## Forth Link Up | |
shortDesc = descPrefix + "-Recovery4" | |
longDesc = "%s Recovery: Bring up %s/%s" % ( descPrefix, device, port4 ) | |
main.funcs.linkUp( device, port4, srcComponentList, dstComponent, shortDesc, longDesc ) | |
main.log.warn( json.dumps( main.downtimeResults, indent=4, sort_keys=True ) ) | |
main.funcs.cleanup( main ) |