Add TOST spine failure tests
- Add SRONLReboot
- Add SRstratumRestart
- Refactoring SR Staging functions
- Use Network bench component to send traffic
- Add params file for 2x2 qa pod
- Add saving p4 write requests files
Change-Id: I60e43e2acde8b86cab0e47d62533fcf14937702d
diff --git a/TestON/tests/USECASE/SegmentRouting/SRStaging/SRstratumRestart/SRstratumRestart.params b/TestON/tests/USECASE/SegmentRouting/SRStaging/SRstratumRestart/SRstratumRestart.params
index 41e1dbc..d635a91 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRStaging/SRstratumRestart/SRstratumRestart.params
+++ b/TestON/tests/USECASE/SegmentRouting/SRStaging/SRstratumRestart/SRstratumRestart.params
@@ -35,11 +35,27 @@
<PERF>
<traffic_host>Host1 Host2 Host3</traffic_host>
- <traffic_cmd_arguments> -u -b 20M -t 40</traffic_cmd_arguments>
-
<pcap_host>ng40vm</pcap_host>
<pcap_cmd_arguments>-t e -F pcap -s 100 </pcap_cmd_arguments>
-
+ <iterations>1</iterations>
+ <topo>
+ <leaf1>
+ <ports>176 180 184 188</ports>
+ <note>eNB</note>
+ </leaf1>
+ <leaf2>
+ <ports>260 268 276 284</ports>
+ <note>upstream</note>
+ </leaf2>
+ <spine1>
+ <ports>128 136 144 152</ports>
+ <note>spine</note>
+ </spine1>
+ <spine2>
+ <ports>132 140 148 156</ports>
+ <note>spine</note>
+ </spine2>
+ </topo>
</PERF>
<ONOS_Logging>
<org.onosproject.p4runtime.ctl.client>DEBUG</org.onosproject.p4runtime.ctl.client>
diff --git a/TestON/tests/USECASE/SegmentRouting/SRStaging/SRstratumRestart/SRstratumRestart.py b/TestON/tests/USECASE/SegmentRouting/SRStaging/SRstratumRestart/SRstratumRestart.py
index b566254..0912afd 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRStaging/SRstratumRestart/SRstratumRestart.py
+++ b/TestON/tests/USECASE/SegmentRouting/SRStaging/SRstratumRestart/SRstratumRestart.py
@@ -12,4 +12,43 @@
Perform Stratum agent failure/recovery test
Collect logs and analyze results
"""
- pass
+ 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 = "Stratum_Reboot"
+ 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 = {}
+
+ switchComponentList = [ getattr( main, "Spine%s" % n ) for n in range( 1, 2+1 ) ]
+ iterations = int( main.params[ 'PERF' ][ 'iterations' ] )
+
+ for i in range( 1, iterations + 1 ):
+ ## Spine Stratum agent Reboot
+ shortDescFailure = descPrefix + "-Failure%s" % i
+ longDescFailure = "%s Failure%s: Kill Stratum on switch" % ( descPrefix, i )
+ shortDescRecovery = descPrefix + "-Recovery%s" % i
+ longDescRecovery = "%s Recovery%s: Restart Stratum on switch" % ( descPrefix, i )
+ main.funcs.killSwitchAgent( switchComponentList, srcComponentList, dstComponent,
+ shortDescFailure, longDescFailure,
+ shortDescRecovery, longDescRecovery )
+
+ main.case( "Cleanup" )
+ main.log.warn( json.dumps( main.downtimeResults, indent=4, sort_keys=True ) )
+ main.funcs.cleanup( main )