[ONOS-7990]: Update Branch to Node Mapping in TestON Jenkins Pipelines
Change-Id: I609927123d239f92c5a648da87709c2676a32550
diff --git a/TestON/JenkinsFile/FabricJenkinsfileTrigger b/TestON/JenkinsFile/FabricJenkinsfileTrigger
index b958d17..4c9c822 100644
--- a/TestON/JenkinsFile/FabricJenkinsfileTrigger
+++ b/TestON/JenkinsFile/FabricJenkinsfileTrigger
@@ -104,12 +104,6 @@
isOldFlow = params.isOldFlow
println "Tests to be run manually : "
} else {
- // If it is automated running, it will post the beginning message to the channel.
- slackSend( channel: 'sr-failures', color: '#03CD9F',
- message: ":sparkles:" * 16 + "\n" +
- "Starting tests on : " + now.toString() +
- "\n" + ":sparkles:" * 16 )
-
for ( String b in onos_branches ){
// set the list of the tests to run.
all_testcases[ b ][ "SR" ][ "tests" ] += adder( "SR", dayMap[ today ], true, b )
@@ -125,10 +119,7 @@
// This will hold the block of code to be run.
def runTest = [
- "Fabric": [ : ],
- "Fabric2": [ : ],
- "Fabric3": [ : ],
- "Fabric4": [ : ]
+
]
for ( String b in onos_branches ){
if ( manually_run ){
diff --git a/TestON/JenkinsFile/VM_BMJenkinsfileTrigger b/TestON/JenkinsFile/VM_BMJenkinsfileTrigger
index b0cd743..7a7fabc 100644
--- a/TestON/JenkinsFile/VM_BMJenkinsfileTrigger
+++ b/TestON/JenkinsFile/VM_BMJenkinsfileTrigger
@@ -26,292 +26,198 @@
fileRelated = evaluate readTrusted( 'TestON/JenkinsFile/dependencies/JenkinsPathAndFiles.groovy' )
test_list = evaluate readTrusted( 'TestON/JenkinsFile/dependencies/JenkinsTestONTests.groovy' )
-test_list.init()
+onos_tag = null
+manually_run = null
+now = null
+today = null
+onos_branches = null
+day = null
+post_result = null
+branchesParam = null
+isFabric = null
+testsParam = null
-// set the versions of the onos
-fileRelated.init()
-
-// init trend graphs to be on VM.
-funcs.initializeTrend( "VM" );
-triggerFuncs.init( funcs )
-
-// contents for page https://wiki.onosproject.org/display/ONOS/Automated+Test+Schedule
-// which will demonstrates the list of the scheduled tests on the days.
-wikiContents = ""
-
+dayMap = [:]
+fullDayMap = [:]
all_testcases = [:]
+runTest = [:]
+selectedTests = [:]
+graphPaths = [:]
-// read the parameters from the Jenkins
-manually_run = params.manual_run
+main()
-onos_tag = params.ONOSTag
-isOldFlow = true
+def main() {
+ init()
+ runTests()
+ generateGraphs()
+}
+
+// **************
+// Initialization
+// **************
+
+// initialize file scope vars
+def init(){
+ // get the name of the job.
+ jobName = env.JOB_NAME
+
+ // set the versions of the onos
+ fileRelated.init()
+ test_list.init()
+ readParams()
+
+ if ( isFabric ){
+ funcs.initializeTrend( "Fabric" )
+ funcs.initialize( "Fabric" )
+ } else {
+ funcs.initializeTrend( "VM" );
+ }
+ triggerFuncs.init( funcs )
+
+ // list of the tests to be run will be saved in each choices.
+ day = ""
+
+ initDates()
+ onos_branches = getONOSBranches()
+ selectedTests = getONOSTests()
+}
+
+def readParams(){
+ // get post result from the params for manually run.
+ post_result = params.PostResult
+ manually_run = params.manual_run
+ onos_tag = params.ONOSTag
+ branchesParam = params.branches
+ isOldFlow = params.isOldFlow
+ testsParam = params.Tests
+ isFabric = params.isFabric
+}
// Set tests based on day of week
-def now = funcs.getCurrentTime()
-print now.toString()
-today = now[ Calendar.DAY_OF_WEEK ]
-
-dayMap = [ ( Calendar.MONDAY ) : "mon",
- ( Calendar.TUESDAY ) : "tue",
- ( Calendar.WEDNESDAY ) : "wed",
- ( Calendar.THURSDAY ) : "thu",
- ( Calendar.FRIDAY ) : "fri",
- ( Calendar.SATURDAY ) : "sat",
- ( Calendar.SUNDAY ) : "sun" ]
-fullDayMap = [ ( Calendar.MONDAY ) : "Monday",
- ( Calendar.TUESDAY ) : "Tuesday",
- ( Calendar.WEDNESDAY ) : "Wednesday",
- ( Calendar.THURSDAY ) : "Thursday",
- ( Calendar.FRIDAY ) : "Friday",
- ( Calendar.SATURDAY ) : "Saturday",
- ( Calendar.SUNDAY ) : "Sunday" ]
-
-if ( manually_run ){
- onos_branches = params.branches.tokenize( "\n;, " )
-} else {
- onos_branches = getBranchesFromDay( dayMap[ today ] )
+def initDates(){
+ echo "-> initDates()"
+ now = funcs.getCurrentTime()
+ today = now[ Calendar.DAY_OF_WEEK ]
+ dayMap = [ ( Calendar.MONDAY ) : "mon",
+ ( Calendar.TUESDAY ) : "tue",
+ ( Calendar.WEDNESDAY ) : "wed",
+ ( Calendar.THURSDAY ) : "thu",
+ ( Calendar.FRIDAY ) : "fri",
+ ( Calendar.SATURDAY ) : "sat",
+ ( Calendar.SUNDAY ) : "sun" ]
+ fullDayMap = [ ( Calendar.MONDAY ) : "Monday",
+ ( Calendar.TUESDAY ) : "Tuesday",
+ ( Calendar.WEDNESDAY ) : "Wednesday",
+ ( Calendar.THURSDAY ) : "Thursday",
+ ( Calendar.FRIDAY ) : "Friday",
+ ( Calendar.SATURDAY ) : "Saturday",
+ ( Calendar.SUNDAY ) : "Sunday" ]
+ print now.toString()
}
-// default FUNC,HA to be VM, SCPF,USECASE to be BM.
-// SR will not be used in here.
-testcases_template = [
- "FUNC": [ tests: "", nodeName: "VM", wikiContent: "" ],
- "HA": [ tests: "", nodeName: "VM", wikiContent: "" ],
- "SCPF": [ tests: "", nodeName: "BM", wikiContent: "" ],
- "SR": [ tests: "", nodeName: "Fabric", wikiContent: "" ],
- "SRHA": [ tests: "", nodeName: "Fabric", wikiContent: "" ],
- "USECASE": [ tests: "", nodeName: "BM", wikiContent: "" ]
-]
-
-for ( String b in onos_branches ){
- all_testcases.put( b, testcases_template )
-}
-
-// list of the tests to be run will be saved in each choices.
-day = ""
-
-// init some paths for the files and directories.
-stat_graph_generator_file = fileRelated.histogramMultiple
-pie_graph_generator_file = fileRelated.pieMultiple
-graph_saved_directory = fileRelated.jenkinsWorkspace + "postjob-VM/"
-
-// get post result from the params for manually run.
-post_result = params.PostResult
-
-// if automatically run, it will remove the comma at the end after dividing the tests.
-if ( manually_run ){
- for ( String b in onos_branches ){
- all_testcases[ b ] = triggerFuncs.organize_tests( params.Tests, all_testcases[ b ] )
- }
- isOldFlow = params.isOldFlow
- println "Tests to be run manually:"
-} else {
- testDivider( today )
- println "Defaulting to " + day + " tests:"
-}
-
-
-for ( String b in onos_branches ){
- triggerFuncs.print_tests( all_testcases[ b ] )
-}
-
-def runTest = [
- "VM": [ : ],
- "BM": [ : ]
-]
-
-def finalList = [ : ]
-
-finalList[ "VM" ] = [ : ]
-finalList[ "BM" ] = [ : ]
-
-// get the name of the job.
-jobName = env.JOB_NAME
-
-// set the test running function into the dictionary.
-for ( String b in onos_branches ){
- for ( String test in all_testcases[ b ].keySet() ){
- if ( all_testcases[ b ][ test ][ "tests" ] != "" ){
- runTest[ all_testcases[ b ][ test ][ "nodeName" ] ][ test ] = triggerFuncs.
- trigger_pipeline( b, all_testcases[ b ][ test ][ "tests" ], all_testcases[ b ][ test ][ "nodeName" ], test,
- manually_run, onos_tag )
- }
- }
-
- // first set the list of the functions to be run.
- finalList[ "VM" ][ b ] = triggerFuncs.runTestSeq( runTest[ "VM" ] )
- finalList[ "BM" ][ b ] = triggerFuncs.runTestSeq( runTest[ "BM" ] )
-}
-
-// if first two character of the job name is vm, only call VM.
-// else, only on BM
-
-if ( jobName.take( 2 ) == "vm" ){
- parallel finalList[ "VM" ]
-}
-else {
- parallel finalList[ "BM" ]
-}
-
-
-// If it is automated running, it will generate the stats graph on VM.
-if ( !manually_run ){
- for ( String b in onos_branches ){
- funcs.generateStatGraph( "TestStation-VMs",
- funcs.branchWithPrefix( b ),
- stat_graph_generator_file,
- pie_graph_generator_file,
- graph_saved_directory )
- }
-}
-
-// function that will divide tests depends on which day it is.
-def testDivider( today ){
- todayStr = today.toString()
-
- if ( today == Calendar.MONDAY ){
- initHtmlForWiki()
- day = fullDayMap[ today ]
- for ( key in dayMap.keySet() ){
- buildDay( dayMap[ key ], false )
- }
- closeHtmlForWiki()
- postToWiki( wikiContents )
- slackSend( color: '#FFD988',
- message: "Tests to be run this weekdays : \n" +
- triggerFuncs.printDaysForTest() )
+// gets ONOS branches from params or string parameter
+def getONOSBranches(){
+ echo "-> getONOSBranches()"
+ if ( manually_run ){
+ return branchesParam.tokenize( "\n;, " )
} else {
- day = fullDayMap[ today ]
- buildDay( dayMap[ today ], true )
+ return test_list.getBranchesFromDay( dayMap[ today ] )
}
}
-def buildDay( dayStr, getResult ){
- for ( String b in onos_branches ){
- addingHeader( "FUNC", b )
- all_testcases[ b ][ "FUNC" ][ "tests" ] += adder( "FUNC", dayStr, getResult, b )
- closingHeader( "FUNC", b )
- addingHeader( "HA", b )
- all_testcases[ b ][ "HA" ][ "tests" ] += adder( "HA", dayStr, getResult, b )
- closingHeader( "HA", b )
- addingHeader( "SCPF", b )
- all_testcases[ b ][ "SCPF" ][ "tests" ] += adder( "SCPF", dayStr, getResult, b )
- closingHeader( "SCPF", b )
- addingHeader( "SR", b )
- all_testcases[ b ][ "SR" ][ "tests" ] += adder( "SR", dayStr, false, b )
- closingHeader( "SR", b )
- addingHeader( "SRHA", b )
- all_testcases[ b ][ "SRHA" ][ "tests" ] += adder( "SRHA", dayStr, false, b )
- closingHeader( "SRHA", b )
- addingHeader( "USECASE", b )
- all_testcases[ b ][ "USECASE" ][ "tests" ] += adder( "USECASE", dayStr, getResult, b )
- closingHeader( "USECASE", b )
+def getONOSTests(){
+ echo "-> getONOSTests()"
+ if ( manually_run ){
+ return test_list.getTestsFromStringList( testsParam.tokenize( "\n;, " ) )
+ } else {
+ day = dayMap[ today ]
+ return test_list.getTestsFromDay( day )
}
}
-// adder that will return the list of the tests.
-def adder( category, day, getResult, branch ){
- // category : the category of the test which will be either FUNC,HA,SR...
- // day : the day you are trying to add (m,t,w,th... )
- // getResult : if want to get the list of the test to be run. False will return empty list.
- // And once the list is empty, it will not be run.
- def result = ""
- selectedTests = test_list.getTestsFromCategory( category, test_list.getTestsFromDay( day, branch ) )
+// init paths for the files and directories.
+def initGraphPaths(){
+ graphPaths[ "histogramMultiple" ] = fileRelated.histogramMultiple
+ graphPaths[ "pieMultiple" ] = fileRelated.pieMultiple
+ graphPaths[ "saveDirectory" ] = fileRelated.jenkinsWorkspace + "postjob-VM/"
+}
- for ( String test in selectedTests.keySet() ){
- if ( getResult ){
- result += test + ","
+// **********************
+// Determine Tests to Run
+// **********************
+
+def printTestsToRun( runList ){
+ if ( manually_run ){
+ println "Tests to be run manually:"
+ } else {
+ if ( isFabric ){
+ postToSlackSR()
}
- // make HTML columns for wiki page on schedule.
- makeHtmlColList( category, test, branch )
+ if ( today == Calendar.MONDAY ){
+ postToSlackTestsToRun()
+ }
+ println "Defaulting to " + day + " tests:"
}
- return result
+ for ( list in runList ){
+ // triggerFuncs.print_tests( all_testcases[ b ] )
+ echo "" + list
+ }
}
-// Initial part of the wiki page.
-def initHtmlForWiki(){
- wikiContents = '''
- <table class="wrapped confluenceTable">
- <colgroup>
- <col />
- <col />
- <col />
- <col />
- <col />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <th colspan="1" class="confluenceTh">
- <br />
- </th>
- <th class="confluenceTh"><p>Monday</p></th>
- <th class="confluenceTh"><p>Tuesday</p></th>
- <th class="confluenceTh"><p>Wednesday</p></th>
- <th class="confluenceTh"><p>Thursday</p></th>
- <th class="confluenceTh"><p>Friday</p></th>
- <th class="confluenceTh"><p>Saturday</p></th>
- <th class="confluenceTh"><p>Sunday</p></th>
- </tr>'''
- for ( String b in onos_branches ){
- for ( String test in all_testcases[ b ].keySet() ){
- all_testcases[ b ][ test ][ 'wikiContent' ] = '''
- <tr>
- <th colspan="1" class="confluenceTh">''' + test + '''</th>'''
+def postToSlackSR(){
+ // If it is automated running, it will post the beginning message to the channel.
+ slackSend( channel: 'sr-failures', color: '#03CD9F',
+ message: ":sparkles:" * 16 + "\n" +
+ "Starting tests on : " + now.toString() +
+ "\n" + ":sparkles:" * 16 )
+}
+
+def postToSlackTestsToRun(){
+ slackSend( color: '#FFD988',
+ message: "Tests to be run this weekdays : \n" +
+ triggerFuncs.printDaysForTest() )
+}
+
+// *********
+// Run Tests
+// *********
+
+def generateRunList(){
+ runList = [:]
+ for ( branch in onos_branches ){
+ nodeLabels = test_list.getAllNodeLabels( branch, selectedTests )
+ for ( nodeLabel in nodeLabels ){
+ selectedNodeLabelTests = test_list.getTestsFromNodeLabel( nodeLabel, branch, selectedTests )
+ selectedNodeLabelCategories = test_list.getAllTestCategories( selectedNodeLabelTests )
+ for ( category in selectedNodeLabelCategories ){
+ selectedNodeLabelCategoryTests = getTestsFromCategory( category, selectedNodeLabelTests )
+ exeTestList = test_list.getTestListAsString( selectedNodeLabelCategoryTests )
+ runList.put( nodeLabel, triggerFuncs.trigger_pipeline( branch, exeTestList, nodeLabel, category, manually_run, onos_tag ) )
+ }
}
}
+ return runList
}
-// adding header functionality.
-def addingHeader( testCategory, branch ){
- all_testcases[ branch ][ testCategory ][ 'wikiContent' ] += '''
- <td class="confluenceTd">
- <ul>'''
+def runTests(){
+ runList = generateRunList()
+ printTestsToRun( runList )
+ parallel runList
}
-// making column list for html
-def makeHtmlColList( testCategory, testName, branch ){
- all_testcases[ branch ][ testCategory ][ 'wikiContent' ] += '''
- <li>''' + testName + '''</li>'''
+// ***************
+// Generate Graphs
+// ***************
-}
-
-// closing the header for html
-def closingHeader( testCategory, branch ){
- all_testcases[ branch ][ testCategory ][ 'wikiContent' ] += '''
- </ul>
- </td>'''
-}
-
-// close the html for the wiki page.
-def closeHtmlForWiki(){
- for ( String b in onos_branches ){
- for ( String test in all_testcases[ b ].keySet() ){
- wikiContents += all_testcases[ b ][ test ][ 'wikiContent' ]
- wikiContents += '''
- </tr>'''
+def generateGraphs(){
+ // If it is automated running, it will generate the stats graph on VM.
+ if ( !manually_run ){
+ for ( String b in onos_branches ){
+ funcs.generateStatGraph( "TestStation-VMs",
+ funcs.branchWithPrefix( b ),
+ graphPaths[ "histogramMultiple" ],
+ graphPaths[ "pieMultiple" ],
+ graphPaths[ "saveDirectory" ] )
}
}
- wikiContents += '''
- </tbody>
- </table>
- <p><strong>Everyday</strong>, all SegmentRouting tests are built and run on every supported branch.</p>
- <p>On <strong>Weekdays</strong>, all the other tests are built and run on the master branch.</p>
- <p>On <strong>Saturdays</strong>, all the other tests are built and run on the ''' +
- test_list.convertBranchCodeToBranch( "onos-2.x" ) + ''' branch.</p>
- <p>On <strong>Sundays</strong>, all the other tests are built and run on the ''' +
- test_list.convertBranchCodeToBranch( "onos-1.x" ) + ''' branch.</p>'''
-}
-
-// post the result to wiki page using publish to confluence.
-def postToWiki( contents ){
- node( testMachine ) {
- workspace = fileRelated.jenkinsWorkspace + "all-pipeline-trigger/"
- filename = "jenkinsSchedule.txt"
- writeFile file: workspace + filename, text: contents
- funcs.publishToConfluence( "false", "true",
- "Automated Test Schedule",
- workspace + filename )
- }
}
diff --git a/TestON/JenkinsFile/dependencies/JenkinsTestONTests.groovy b/TestON/JenkinsFile/dependencies/JenkinsTestONTests.groovy
index 6ee0485..109b79b 100644
--- a/TestON/JenkinsFile/dependencies/JenkinsTestONTests.groovy
+++ b/TestON/JenkinsFile/dependencies/JenkinsTestONTests.groovy
@@ -32,6 +32,10 @@
branches = readJSON text: branches_buffer
}
+// ***************
+// General Methods
+// ***************
+
// returns the entire set of TestON tests from the json file
def getAllTests(){
return allTests
@@ -42,24 +46,128 @@
return schedules
}
+// returns a list of days corresponding to the given schedule code
+def convertScheduleKeyToDays( sch ){
+ return schedules[ sch ]
+}
+
+// given a test dictionary, returns a list of tests as a string
+def getTestListAsString( tests ){
+ str_result = ""
+ for ( String test in tests.keySet() ){
+ str_result += test + ","
+ }
+ return str_result[ 0..-2 ]
+}
+
+def getTestsFromStringList( list ){
+ testsResult = [:]
+ for ( item in list ){
+ if ( allTests.contains( item ) ){
+ testsResult.put( item, allTests[ item ] )
+ }
+ }
+ return testsResult
+}
+
+// Get a given test property from the schedules list for a given test
+// Example: getTestScheduleProperty( "FUNCflow", "nodeLabel" ) gets all node labels for each branch
+def getTestScheduleProperty( test_name, property, tests=[:] ){
+ schedulePropertyResult = [:]
+
+ if ( tests == [:] ){
+ tests = allTests
+ }
+ for ( subDict in tests[ test_name ][ "schedules" ] ){
+ schedulePropertyResult.put( subDict[ "branch" ], subDict[ property ] )
+ }
+
+ return schedulePropertyResult
+}
+
def getAllBranches(){
return branches
}
-// given a test category ("FUNC", "HA", etc.), returns all tests associated with that category
-def getTestsFromCategory( category, tests=[:] ){
- result = [:]
+// ********
+// Branches
+// ********
+
+// given a day, returns all branches that are run on that day
+def getBranchesFromDay( day, tests=[:] ){
+ branchesFromDayResult = []
if ( tests == [:] ){
tests = allTests
}
+ validSchedules = getValidSchedules( day )
+
for ( String key in tests.keySet() ){
- if ( tests[ key ][ "category" ] == category ){
- result.put( key, tests[ key ] )
+ for ( subDict in tests[ key ][ "schedules" ] ){
+ sch = subDict[ "day" ]
+ if ( validSchedules.contains( sch ) && !branchesFromDayResult.contains( sch ) ){
+ branchesFromDayResult += convertBranchCodeToBranch( subDict[ "branch" ] )
+ }
}
}
- return result
+ return branchesFromDayResult
}
+// Converts a branch code to an actual ONOS branch.
+// Example: converts onos-1.x to onos-1.15
+def convertBranchCodeToBranch( branch_code, withPrefix=true ){
+ for ( String branch_type in branches.keySet() ){
+ for ( String b in branches[ branch_type ].keySet() ){
+ if ( branch_code == b ){
+ return withPrefix ? ( "onos-" + branches[ branch_type ][ b ] ) : branches[ branch_type ][ b ]
+ }
+ }
+ }
+ return branch_code
+}
+
+// *************
+// Test Category
+// *************
+
+// given a test category ("FUNC", "HA", etc.), returns all tests associated with that category
+def getTestsFromCategory( category, tests=[:] ){
+ testsFromCategoryResult = [:]
+ if ( tests == [:] ){
+ tests = allTests
+ }
+ for ( String test_name in tests.keySet() ){
+ if ( getCategoryOfTest( test_name ) == category ){
+ testsFromCategoryResult.put( test_name, tests[ test_name ] )
+ }
+ }
+ return testsFromCategoryResult
+}
+
+def getCategoryOfTest( test_name, tests=[:] ){
+ if ( tests == [:] ){
+ tests = allTests
+ }
+ return tests[ test_name ][ "category" ]
+}
+
+def getAllTestCategories( tests=[:] ){
+ testCategoriesResult = []
+ if ( tests == [:] ){
+ tests = allTests
+ }
+ for ( String test_name in tests.keySet() ){
+ category = getCategoryOfTest( test_name, tests )
+ if ( !testCategoriesResult.contains( category ) ){
+ testCategoriesResult += category
+ }
+ }
+ return testCategoriesResult
+}
+
+// ********************
+// Test Schedule / Days
+// ********************
+
// given a day, returns schedules that contain that day
def getValidSchedules( day ){
validSchedules = []
@@ -72,80 +180,68 @@
}
// given a day and branch, returns all tests that run on the given day on the given branch
-def getTestsFromDay( day, branch, tests=[:] ){
- result = [:]
+def getTestsFromDay( day, tests=[:] ){
+ resultDict = [:]
if ( tests == [:] ){
tests = allTests
}
validSchedules = getValidSchedules( day )
for ( String key in tests.keySet() ){
- schedule = tests[ key ][ "schedule" ][ branch ]
- if ( validSchedules.contains( schedule ) ){
- result.put( key, tests[ key ] )
- }
- }
- return result
-}
-
-// given a day, returns all branches that are run on that day
-def getBranchesFromDay( day, tests=[:] ){
- result = []
- if ( tests == [:] ){
- tests = allTests
- }
- validSchedules = getValidSchedules( day )
-
- for ( String key in tests.keySet() ){
- for ( String branch in tests[ key ][ "schedule" ].keySet() ){
- sch = tests[ key ][ "schedule" ][ branch ]
- if ( validSchedules.contains( sch ) && !result.contains( sch ) ){
- result += convertBranchCodeToBranch( branch )
+ scheduleProperty = getTestScheduleProperty( key, "day", tests )
+ for ( b in scheduleProperty.keySet() ){
+ if ( validSchedules.contains( scheduleProperty[ b ] ) ){
+ resultDict.put( key, tests[ key ] )
+ break
}
}
}
- return result
+ return resultDict
}
-// given a nodeLabel ("vm", "bm", etc.), returns all tests that run on that node.
-def getTestsFromNodeLabel( nodeLabel, tests=[:] ){
+// **********
+// Node Label
+// **********
+
+// Given a node label and branch, return all tests that run on that node.
+def getTestsFromNodeLabel( nodeLabel, branch, tests=[:] ){
+ nodeLabelTestsResult = [:]
if ( tests == [:] ){
tests = allTests
}
for ( String key in tests.keySet() ){
- if ( tests[ key ][ "nodeLabel" ] == nodeLabel ){
- result.put( key, tests[ key ] )
+ branchNodeLabelMap = getTestScheduleProperty( key, "nodeLabel", tests )
+ if ( branchNodeLabelMap[ branch ] == nodeLabel ){
+ nodeLabelTestsResult.put( key, tests[ key ] )
}
}
+ return nodeLabelTestsResult
}
-// returns the test list as a string
-def getTestListAsString( tests ){
- result = ""
- for ( String test in tests.keySet() ){
- result += test + ","
+// Given a test name and branch, return the node label associated.
+def getNodeLabel( test_name, branch, tests ){
+ if ( tests == [:] ){
+ tests = allTests
}
- return result[ 0..-2 ]
+ result = getTestScheduleProperty( test_name, "nodeLabel", tests )
+ if ( result == [:] ){
+ return "UNKNOWN"
+ } else {
+ return result[ branch ]
+ }
}
-// returns the schedule for a given test
-def getTestSchedule( test ){
- return allTests[ test ][ "schedule" ]
-}
-
-// returns a list of days from the given schedule
-def convertScheduleKeyToDays( sch ){
- return schedules[ sch ]
-}
-
-def convertBranchCodeToBranch( branch_code, withPrefix=true ){
- for ( String branch_type in branches.keySet() ){
- for ( String b in branches[ branch_type ].keySet() ){
- if ( branch_code == b ){
- return withPrefix ? ( "onos-" + branches[ branch_type ][ b ] ) : branches[ branch_type ][ b ]
- }
+def getAllNodeLabels( branch, tests ){
+ nodeLabelResult = []
+ if ( tests == [:] ){
+ tests = allTests
+ }
+ for ( test_name in tests.keySet() ){
+ nodeLabel = getNodeLabel( test_name, branch, tests )
+ if ( !nodeLabelResult.contains( nodeLabel ) ){
+ nodeLabelResult += nodeLabel
}
}
- return branch_code
+ return nodeLabelResult
}
return this
diff --git a/TestON/JenkinsFile/dependencies/TriggerFuncs.groovy b/TestON/JenkinsFile/dependencies/TriggerFuncs.groovy
index c35a94e..4eb22ab 100644
--- a/TestON/JenkinsFile/dependencies/TriggerFuncs.groovy
+++ b/TestON/JenkinsFile/dependencies/TriggerFuncs.groovy
@@ -48,7 +48,7 @@
result += test + ": ["
test_schedule = test_list.getTestSchedule( test )
for ( String sch in test_schedule.keySet() ){
- for ( String day in convertScheduleKeyToDays( sch ) ){
+ for ( String day in test_list.convertScheduleKeyToDays( sch ) ){
result += day + " "
}
}
diff --git a/TestON/JenkinsFile/dependencies/tests.json b/TestON/JenkinsFile/dependencies/tests.json
index 89927de..ed48bcd 100644
--- a/TestON/JenkinsFile/dependencies/tests.json
+++ b/TestON/JenkinsFile/dependencies/tests.json
@@ -2,789 +2,1420 @@
"FUNCflow": {
"wikiName": "FUNCflow",
"wikiFile": "FUNCflowWiki.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "FUNC",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"FUNCintent": {
"wikiName": "FUNCintent",
"wikiFile": "FUNCintentWiki.txt",
- "schedule": {
- "master": "mon_wed_fri",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "mon_wed_fri",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "FUNC",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"FUNCintentRest": {
"wikiName": "FUNCintentRest",
"wikiFile": "FUNCintentRestWiki.txt",
- "schedule": {
- "master": "tue_thu",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "tue_thu",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "FUNC",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"FUNCipv6Intent": {
"wikiName": "FUNCipv6Intent",
"wikiFile": "FUNCipv6IntentWiki.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "FUNC",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"FUNCnetCfg": {
"wikiName": "FUNCnetCfg",
"wikiFile": "FUNCnetCfgWiki.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "FUNC",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"FUNCnetconf": {
"wikiName": "FUNCnetconf",
"wikiFile": "FUNCnetconfWiki.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "FUNC",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"FUNCoptical": {
"wikiName": "FUNCoptical",
"wikiFile": "FUNCopticalWiki.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "FUNC",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"FUNCovsdbtest": {
"wikiName": "FUNCovsdbtest",
"wikiFile": "FUNCovsdbtestWiki.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "FUNC",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"FUNCgroup": {
"wikiName": "FUNCgroup",
"wikiFile": "FUNCgroupWiki.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "FUNC",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"FUNCformCluster": {
"wikiName": "FUNCformCluster",
"wikiFile": "FUNCformClusterWiki.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "FUNC",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"HAsanity": {
"wikiName": "HA Sanity",
"wikiFile": "HAsanityWiki.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "HA",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"HAsingleInstanceRestart": {
"wikiName": "HA Single Instance Restart",
"wikiFile": "HAsingleInstanceRestartWiki.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "HA",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"HAclusterRestart": {
"wikiName": "HA Cluster Restart",
"wikiFile": "HAclusterRestart.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "HA",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"HAkillNodes": {
"wikiName": "HA Kill Nodes",
"wikiFile": "HAkillNodes.txt",
- "schedule": {
- "master": "tue_thu",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "tue_thu",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "HA",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"HAstopNodes": {
"wikiName": "HA Stop Nodes",
"wikiFile": "HAstopNodes.txt",
- "schedule": {
- "master": "mon_wed_fri",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "mon_wed_fri",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "HA",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"HAfullNetPartition": {
"wikiName": "HA Full Network Partition",
"wikiFile": "HAfullNetPartitionWiki.txt",
- "schedule": {
- "master": "mon_wed_fri",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "mon_wed_fri",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "HA",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"HAscaling": {
"wikiName": "HA Scaling",
"wikiFile": "HAscalingWiki.txt",
- "schedule": {
- "master": "tue_thu",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "tue_thu",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "HA",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"HAswapNodes": {
"wikiName": "HA Swap Nodes",
"wikiFile": "HAswapNodesWiki.txt",
- "schedule": {
- "master": "tue_thu",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "tue_thu",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "HA",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"HAupgrade": {
"wikiName": "HA Upgrade",
"wikiFile": "HAupgradeWiki.txt",
- "schedule": {
-
- },
+ "schedules": [
+ ],
"category": "HA",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"HAupgradeRollback": {
"wikiName": "HA Upgrade Rollback",
"wikiFile": "HAupgradeRollbackWiki.txt",
- "schedule": {
-
- },
+ "schedules": [
+ ],
"category": "HA",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"HAbackupRecover": {
"wikiName": "HA Backup Recover",
"wikiFile": "HAbackupRecoverWiki.txt",
- "schedule": {
- "master": "tue_thu",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "tue_thu",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "VM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "VM"
+ }
+ ],
"category": "HA",
- "nodeLabel": "VM",
"supportedBranches": [ "all" ]
},
"SCPFswitchLat": {
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "SCPF",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"SCPFportLat": {
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "SCPF",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"SCPFintentInstallWithdrawLat": {
- "schedule": {
- "master": "wed_fri",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "wed_fri",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "SCPF",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"SCPFintentInstallWithdrawLatWithFlowObj": {
- "schedule": {
- "master": "mon_thu",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "mon_thu",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "SCPF",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"SCPFintentRerouteLat": {
- "schedule": {
- "master": "wed_fri",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "wed_fri",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "SCPF",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"SCPFintentRerouteLatWithFlowObj": {
- "schedule": {
- "master": "mon_thu",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "mon_thu",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "SCPF",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"SCPFintentEventTp": {
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "SCPF",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"SCPFintentEventTpWithFlowObj": {
- "schedule": {
- "master": "mon_thu",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "mon_thu",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "SCPF",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"SCPFscaleTopo": {
- "schedule": {
- "master": "tue",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "tue",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "SCPF",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"SCPFflowTp1g": {
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "SCPF",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"SCPFflowTp1gWithFlowObj": {
- "schedule": {
- "master": "mon_thu",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "mon_thu",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "SCPF",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"SCPFcbench": {
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "SCPF",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"SCPFscalingMaxIntents": {
- "schedule": {
-
- },
+ "schedules": [
+ ],
"category": "SCPF",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"SCPFscalingMaxIntentsWithFlowObj": {
- "schedule": {
-
- },
+ "schedules": [
+ ],
"category": "SCPF",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"SCPFbatchFlowResp": {
- "schedule": {
- "master": "wed_fri",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "wed_fri",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "SCPF",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"SCPFhostLat": {
- "schedule": {
- "master": "wed_fri",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "wed_fri",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "SCPF",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"SCPFmastershipFailoverLat": {
- "schedule": {
- "master": "fri",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "fri",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "SCPF",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"SRBridging": {
"wikiName": "SR Bridging",
"wikiFile": "SRBridgingWiki.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "Fabric4"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "Fabric2"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "Fabric3"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRRouting": {
"wikiName": "SR Routing",
"wikiFile": "SRRoutingWiki.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
-
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "Fabric4"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "Fabric2"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "Fabric3"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRDhcprelay": {
"wikiName": "SR Dhcp Relay",
"wikiFile": "SRDhcprelayWiki.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
-
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "Fabric4"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "Fabric2"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "Fabric3"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRDynamicConf": {
"wikiName": "SR Dynamic Config",
"wikiFile": "SRDynamicConfWiki.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
-
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "Fabric4"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "Fabric2"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "Fabric3"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRMulticast": {
"wikiName": "SR Multi Cast",
"wikiFile": "SRMulticastWiki.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
-
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "Fabric4"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "Fabric2"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "Fabric3"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRSanity": {
"wikiName": "SR Sanity",
"wikiFile": "SRSanityWiki.txt",
- "schedule": {
- "master": "fri",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
-
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "fri",
+ "nodeLabel": "Fabric4"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "Fabric2"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "Fabric3"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRSwitchFailure": {
"wikiName": "SR Switch Failure",
"wikiFile": "SRSwitchFailureWiki.txt",
- "schedule": {
- "master": "fri",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
-
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "fri",
+ "nodeLabel": "Fabric4"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "Fabric2"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "Fabric3"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRLinkFailure": {
"wikiName": "SR Link Failure",
"wikiFile": "SRLinkFailureWiki.txt",
- "schedule": {
- "master": "fri",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
-
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "fri",
+ "nodeLabel": "Fabric4"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "Fabric2"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "Fabric3"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SROnosFailure": {
"wikiName": "SR Onos node Failure",
"wikiFile": "SROnosFailureWiki.txt",
- "schedule": {
- "master": "fri",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
-
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "fri",
+ "nodeLabel": "Fabric4"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "Fabric2"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "Fabric3"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRClusterRestart": {
"wikiName": "SR Cluster Restart",
"wikiFile": "SRClusterRestartWiki.txt",
- "schedule": {
- "master": "sat",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
-
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "sat",
+ "nodeLabel": "Fabric4"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "Fabric2"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "Fabric3"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRDynamic": {
"wikiName": "SR Dynamic",
"wikiFile": "SRDynamicWiki.txt",
- "schedule": {
- "master": "sat",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
-
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "sat",
+ "nodeLabel": "Fabric4"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "Fabric2"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "Fabric3"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRHighAvailability": {
"wikiName": "SR High Availability",
"wikiFile": "SRHighAvailabilityWiki.txt",
- "schedule": {
- "master": "sat",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
-
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "sat",
+ "nodeLabel": "Fabric4"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "Fabric2"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "Fabric3"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRHAsanity": {
"test": "HAsanity --params-file HAsanity.params.fabric",
"wikiName": "SR HA Sanity",
"wikiFile": "HAsanityWiki.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
-
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "Fabric4"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "Fabric2"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "Fabric3"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRHAclusterRestart": {
"test": "HAclusterRestart --params-file HAclusterRestart.params.fabric",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
-
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "Fabric4"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "Fabric2"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "Fabric3"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRHAsingleInstanceRestart": {
"test": "HAsingleInstanceRestart --params-file HAsingleInstanceRestart.params.fabric",
"wikiName": "SR HA Single Instance Restart",
"wikiFile": "HAsingleInstanceRestartWiki.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
-
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "Fabric4"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "Fabric2"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "Fabric3"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRHAstopNodes": {
"test": "HAstopNodes --params-file HAstopNodes.params.fabric",
"wikiName": "SR HA Stop Nodes",
"wikiFile": "HAstopNodes.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
-
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "Fabric4"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "Fabric2"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "Fabric3"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRHAfullNetPartition": {
"test": "HAfullNetPartition --params-file HAfullNetPartition.params.fabric",
"wikiName": "SR HA Full Network Partition",
"wikiFile": "HAfullNetPartitionWiki.txt",
- "schedule": {
- "master": "fri"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "fri",
+ "nodeLabel": "Fabric4"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRHAswapNodes": {
"test": "HAswapNodes --params-file HAswapNodes.params.fabric",
"wikiName": "SR HA Swap Nodes",
"wikiFile": "HAswapNodesWiki.txt",
- "schedule": {
- "master": "sat"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "sat",
+ "nodeLabel": "Fabric4"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRHAscaling": {
"test": "HAscaling --params-file HAscaling.params.fabric",
"wikiName": "SR HA Scaling",
"wikiFile": "HAscalingWiki.txt",
- "schedule": {
- "master": "sat"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "sat",
+ "nodeLabel": "Fabric4"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRHAkillNodes": {
"test": "HAkillNodes --params-file HAkillNodes.params.fabric",
"wikiName": "SR HA Kill Nodes",
"wikiFile": "HAkillNodes.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
-
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "Fabric4"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "Fabric2"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "Fabric3"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRHAbackupRecover": {
"test": "HAbackupRecover --params-file HAbackupRecover.params.fabric",
"wikiName": "SR HA Backup Recover",
"wikiFile": "HAbackupRecoverWiki.txt",
- "schedule": {
- "master": "weekdays",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
-
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "weekdays",
+ "nodeLabel": "Fabric4"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "Fabric2"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "Fabric3"
+ }
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRHAupgrade": {
"test": "HAupgrade --params-file HAupgrade.params.fabric",
"wikiName": "SR HA Upgrade",
"wikiFile": "HAupgradeWiki.txt",
- "schedule": {
- },
+ "schedules": [
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"SRHAupgradeRollback": {
"test": "HAupgradeRollback --params-file HAupgradeRollback.params.fabric",
"wikiName": "SR HA Upgrade Rollback",
"wikiFile": "HAupgradeRollbackWiki.txt",
- "schedule": {
- },
+ "schedule": [
+ ],
"category": "SR",
- "nodeLabel": "Fabric",
"supportedBranches": [ "all" ]
},
"FUNCvirNetNB": {
"wikiName": "FUNCvirNetNB",
"wikiFile": "FUNCvirNetNBWiki.txt",
- "schedule": {
- "master": "USECASE_master",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "USECASE_master",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "USECASE",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"FUNCbgpls": {
"wikiName": "FUNCbgpls",
"wikiFile": "FUNCbgplsWiki.txt",
- "schedule": {
- "master": "USECASE_master",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "USECASE_master",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "USECASE",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"VPLSBasic": {
"wikiName": "VPLSBasic",
"wikiFile": "VPLSBasicWiki.txt",
- "schedule": {
- "master": "USECASE_master",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "USECASE_master",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "USECASE",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"VPLSfailsafe": {
"wikiName": "VPLSfailsafe",
"wikiFile": "VPLSfailsafeWiki.txt",
- "schedule": {
- "master": "USECASE_master",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "USECASE_master",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "USECASE",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"USECASE_SdnipFunction": {
"wikiName": "SDNIP Function",
"wikiFile": "USECASE_SdnipFunctionWiki.txt",
- "schedule": {
- "master": "USECASE_master",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "USECASE_master",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "USECASE",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"USECASE_SdnipFunctionCluster": {
"wikiName": "SDNIP Function Cluster",
"wikiFile": "USECASE_SdnipFunctionClusterWiki.txt",
- "schedule": {
- "master": "USECASE_master",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "USECASE_master",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "USECASE",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
},
"PLATdockertest": {
"wikiName": "Docker Images sanity test",
"wikiFile": "PLATdockertestTableWiki.txt",
- "schedule": {
- "master": "USECASE_master",
- "onos-1.x": "onos-1.x_schedule",
- "onos-2.x": "onos-2.x_schedule"
- },
+ "schedules": [
+ {
+ "branch": "master",
+ "day": "USECASE_master",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-1.x",
+ "day": "onos-1.x_schedule",
+ "nodeLabel": "BM"
+ },
+ {
+ "branch": "onos-2.x",
+ "day": "onos-2.x_schedule",
+ "nodeLabel": "BM"
+ }
+ ],
"category": "USECASE",
- "nodeLabel": "BM",
"supportedBranches": [ "all" ]
}
}