Fix for running TestON tests on multiple branches simultaneously

Change-Id: I474dcbab57e3c5e90fce4c769e8f6336c3022699
diff --git a/TestON/JenkinsFile/MasterTrigger.groovy b/TestON/JenkinsFile/MasterTrigger.groovy
index 8347add..4c1fcad 100644
--- a/TestON/JenkinsFile/MasterTrigger.groovy
+++ b/TestON/JenkinsFile/MasterTrigger.groovy
@@ -37,7 +37,6 @@
 isFabric = null
 testsParam = null
 simulateDay = null
-day = null
 
 dayMap = [:]
 fullDayMap = [:]
@@ -195,6 +194,8 @@
 
 def generateRunList(){
     runList = [:]
+    validSchedules = test_list.getValidSchedules( day )
+    echo "validSchedules: " + validSchedules
     for ( branch in onos_branches ){
         runBranch = []
         nodeLabels = test_list.getAllNodeLabels( branch, selectedTests )
@@ -203,8 +204,26 @@
             selectedNodeLabelCategories = test_list.getAllTestCategories( selectedNodeLabelTests )
             for ( category in selectedNodeLabelCategories ){
                 selectedNodeLabelCategoryTests = test_list.getTestsFromCategory( category, selectedNodeLabelTests )
-                exeTestList = test_list.getTestListAsString( selectedNodeLabelCategoryTests )
-                runList.put( branch + "-" + nodeLabel + "-" + category, triggerFuncs.trigger_pipeline( branch, exeTestList, nodeLabel, category, manually_run, onos_tag ) )
+
+                filteredList = [:]
+                for ( key in selectedNodeLabelCategoryTests.keySet() ){
+                    for ( sch in selectedNodeLabelCategoryTests[ key ][ "schedules" ] ){
+                        if ( validSchedules.contains( sch[ "day" ] ) && sch[ "branch" ] == test_list.convertBranchToBranchCode( branch ) ){
+                            filteredList.put( key, selectedNodeLabelCategoryTests[ key ] )
+                            break
+                        }
+                    }
+                }
+
+                echo "=========================================="
+                echo "BRANCH: " + branch
+                echo "CATEGORY: " + category
+                echo "TESTS: " + filteredList
+                if ( filteredList != [:] ){
+                    exeTestList = test_list.getTestListAsString( filteredList )
+                    runList.put( branch + "-" + nodeLabel + "-" + category, triggerFuncs.trigger_pipeline( branch, exeTestList, nodeLabel, category, manually_run, onos_tag ) )
+                }
+
             }
         }
     }
diff --git a/TestON/JenkinsFile/dependencies/JenkinsTestONTests.groovy b/TestON/JenkinsFile/dependencies/JenkinsTestONTests.groovy
index 2a358df..d62e114 100644
--- a/TestON/JenkinsFile/dependencies/JenkinsTestONTests.groovy
+++ b/TestON/JenkinsFile/dependencies/JenkinsTestONTests.groovy
@@ -107,8 +107,9 @@
     for ( String key in tests.keySet() ){
         for ( subDict in tests[ key ][ "schedules" ] ){
             sch = subDict[ "day" ]
-            if ( validSchedules.contains( sch ) && !branchesFromDayResult.contains( sch ) ){
-                branchesFromDayResult += convertBranchCodeToBranch( subDict[ "branch" ], false )
+            new_branch = convertBranchCodeToBranch( subDict[ "branch" ], false )
+            if ( validSchedules.contains( sch ) && !branchesFromDayResult.contains( new_branch ) ){
+                branchesFromDayResult += new_branch
             }
         }
     }
@@ -210,7 +211,7 @@
     return validSchedules
 }
 
-// given a day and branch, returns all tests that run on the given day on the given branch
+// given a day, returns all tests that run on the given day on the given branch
 def getTestsFromDay( day, tests=[:] ){
     resultDict = [:]
     if ( tests == [:] ){