Update Cluster Driver

Change-Id: I8a3a57e19637ff210548e57d41178e6f194cf694
diff --git a/TestON/tests/SCPF/SCPFintentEventTp/SCPFintentEventTp.py b/TestON/tests/SCPF/SCPFintentEventTp/SCPFintentEventTp.py
index 1b55d54..3599806 100644
--- a/TestON/tests/SCPF/SCPFintentEventTp/SCPFintentEventTp.py
+++ b/TestON/tests/SCPF/SCPFintentEventTp/SCPFintentEventTp.py
@@ -54,22 +54,26 @@
         main.testSetUp.envSetupDescription()
         stepResult = main.FALSE
         try:
-            main.cellName = main.params[ 'ENV'][ 'cellName']
+            main.cellName = main.params[ 'ENV' ][ 'cellName' ]
             main.apps = main.params[ 'ENV' ][ 'cellApps' ]
             main.BENCHIp = main.params[ 'BENCH' ][ 'ip1' ]
             main.BENCHUser = main.params[ 'BENCH' ][ 'user' ]
             main.MN1Ip = main.params[ 'MN' ][ 'ip1' ]
-            main.maxNodes = int( main.params[ 'max' ] )
-            main.numSwitches = ( main.params[ 'TEST' ][ 'numSwitches' ] ).split(",")
+            main.numSwitches = ( main.params[ 'TEST' ][ 'numSwitches' ] ).split( "," )
             main.skipRelRsrc = main.params[ 'TEST' ][ 'skipReleaseResourcesOnWithdrawal' ]
             main.flowObj = main.params[ 'TEST' ][ 'flowObj' ]
             main.startUpSleep = int( main.params[ 'SLEEP' ][ 'startup' ] )
             main.installSleep = int( main.params[ 'SLEEP' ][ 'install' ] )
             main.verifySleep = int( main.params[ 'SLEEP' ][ 'verify' ] )
-            main.scale = ( main.params[ 'SCALE' ] ).split(",")
+            main.scale = ( main.params[ 'SCALE' ] ).split( "," )
             main.testDuration = main.params[ 'TEST' ][ 'duration' ]
             main.logInterval = main.params[ 'TEST' ][ 'log_interval' ]
             main.debug = main.params[ 'debugMode' ]
+            main.intentManagerCfg = main.params[ 'CFG' ][ 'intentManager' ]
+            main.intentConfigRegiCfg = main.params[ 'CFG' ][ 'intentConfigRegi' ]
+            main.nullProviderCfg = main.params[ 'CFG' ][ 'nullProvider' ]
+            main.linkCollectionIntentCfg = main.params[ 'CFG' ][ 'linkCollectionIntent' ]
+            main.intentPerfInstallerCfg = main.params[ 'CFG' ][ 'intentPerfInstaller' ]
             main.timeout = int( main.params[ 'SLEEP' ][ 'timeout' ] )
             main.cyclePeriod = main.params[ 'TEST' ][ 'cyclePeriod' ]
             if main.flowObj == "True":
@@ -81,7 +85,7 @@
                 main.dbFileName = main.params[ 'DATABASE' ][ 'dbName' ]
                 main.numKeys = main.params[ 'TEST' ][ 'numKeys' ]
 
-            stepResult = main.testSetUp.gitPulling()
+            stepResult = main.testSetUp.envSetup()
             # Create DataBase file
             main.log.info( "Create Database file " + main.dbFileName )
             resultsDB = open( main.dbFileName, "w+" )
@@ -98,75 +102,78 @@
         # Clean up test environment and set up
         import time
         main.maxNumBatch = 0
-        main.testSetUp.getNumCtrls( True )
-        main.testSetUp.envSetup( includeGitPull=False, makeMaxNodes=False )
-        main.testSetUp.ONOSSetUp( main.MN1Ip, True,
-                                  cellName=main.cellName, killRemoveMax=False,
-                                  CtrlsSet=False )
+        main.testSetUp.ONOSSetUp( main.MN1Ip, main.Cluster, True,
+                                  cellName=main.cellName, killRemoveMax=False )
 
         # config apps
-        main.CLIs[0].setCfg( "org.onosproject.net.intent.impl.IntentManager",
-                                  "skipReleaseResourcesOnWithdrawal " + main.skipRelRsrc )
-        main.CLIs[0].setCfg( "org.onosproject.provider.nil.NullProviders", "deviceCount " + str(int( main.numCtrls*10)) )
-        main.CLIs[0].setCfg( "org.onosproject.provider.nil.NullProviders", "topoShape linear" )
-        main.CLIs[0].setCfg( "org.onosproject.provider.nil.NullProviders", "enabled true" )
+        main.Cluster.active( 0 ).CLI.setCfg( main.intentManagerCfg,
+                                             "skipReleaseResourcesOnWithdrawal " + main.skipRelRsrc )
+        main.Cluster.active( 0 ).CLI.setCfg( main.nullProviderCfg,
+                                             "deviceCount " + str( int( main.Cluster.numCtrls * 10 ) ) )
+        main.Cluster.active( 0 ).CLI.setCfg( main.nullProviderCfg, "topoShape linear" )
+        main.Cluster.active( 0 ).CLI.setCfg( main.nullProviderCfg, "enabled true" )
         if main.flowObj:
-            main.CLIs[0].setCfg("org.onosproject.net.intent.impl.compiler.IntentConfigurableRegistrator",
-                                "useFlowObjectives", value="true")
-            main.CLIs[0].setCfg("org.onosproject.net.intent.impl.compiler.IntentConfigurableRegistrator",
-                                "defaultFlowObjectiveCompiler",
-                                value='org.onosproject.net.intent.impl.compiler.LinkCollectionIntentObjectiveCompiler')
+            main.Cluster.active( 0 ).CLI.setCfg( main.intentConfigRegiCfg(),
+                                                 "useFlowObjectives", value="true" )
+            main.Cluster.active( 0 ).CLI.setCfg( main.intentConfigRegiCfg(),
+                                                 "defaultFlowObjectiveCompiler",
+                                                 value=main.linkCollectionIntentCfg )
         time.sleep( main.startUpSleep )
 
         # balanceMasters
-        main.CLIs[0].balanceMasters()
+        main.Cluster.active( 0 ).CLI.balanceMasters()
         time.sleep( main.startUpSleep )
 
-    def CASE2(self, main):
+    def CASE2( self, main ):
         import numpy
 
-        main.log.info( "Cluster Count = " + str( main.numCtrls ) )
+        main.log.info( "Cluster Count = " + str( main.Cluster.numCtrls ) )
         # adjust neighbors
-        if main.numCtrls == 1:
+        if main.Cluster.numCtrls == 1:
             main.neighbors = "0"
             main.log.info( "Neighbors: 0" )
         elif main.neighbors != "0":
             main.neighbors = "0"
             main.log.info( "Neighbors: 0" )
         elif main.neighbors == "0":
-            main.neighbors = str( main.numCtrls - 1 )
+            main.neighbors = str( main.Cluster.numCtrls - 1 )
             main.log.info( "Neighbors: " + main.neighbors )
 
         main.log.info( "Config intent-perf app" )
-        main.CLIs[0].setCfg( "org.onosproject.intentperf.IntentPerfInstaller", "numKeys " + main.numKeys )
-        main.CLIs[0].setCfg( "org.onosproject.intentperf.IntentPerfInstaller", "numNeighbors " + str( main.neighbors ) )
-        main.CLIs[0].setCfg( "org.onosproject.intentperf.IntentPerfInstaller", "cyclePeriod " + main.cyclePeriod )
+        main.Cluster.active( 0 ).CLI.setCfg( main.intentPerfInstallerCfg,
+                                             "numKeys " + main.numKeys )
+        main.Cluster.active( 0 ).CLI.setCfg( main.intentPerfInstallerCfg,
+                                             "numNeighbors " + str( main.neighbors ) )
+        main.Cluster.active( 0 ).CLI.setCfg( main.intentPerfInstallerCfg,
+                                             "cyclePeriod " + main.cyclePeriod )
 
-        main.log.info( "Starting intent-perf test for " + str( main.testDuration) + " seconds..." )
-        main.CLIs[0].sendline( "intent-perf-start" )
+        main.log.info( "Starting intent-perf test for " + str( main.testDuration ) + " seconds..." )
+        main.Cluster.active( 0 ).CLI.sendline( "intent-perf-start" )
         stop = time.time() + float( main.testDuration )
 
         while time.time() < stop:
-            time.sleep(15)
-            result = main.CLIs[0].getIntentPerfSummary()
+            time.sleep( 15 )
+            result = main.Cluster.active( 0 ).CLI.getIntentPerfSummary()
             if result:
-                for i in range( main.numCtrls ):
-                    main.log.info( "Node {} Overall Rate: {}".format( main.ONOSip[ i ], result[ main.ONOSip[ i ] ] ) )
+                for ctrl in main.Cluster.active():
+                    main.log.info( "Node {} Overall Rate: {}".format( ctrl.ipAddress,
+                                                                      result[ ctrl.ipAddress ] ) )
         main.log.info( "Stop intent-perf" )
-        for i in range( main.numCtrls ):
-            main.CLIs[i].sendline( "intent-perf-stop" )
+        for ctrl in main.Cluster.active():
+            ctrl.CLI.sendline( "intent-perf-stop" )
         if result:
-            for i in range( main.numCtrls ):
-                main.log.info( "Node {} final Overall Rate: {}".format( main.ONOSip[ i ], result[ main.ONOSip[ i ] ] ) )
+            for ctrl in main.Cluster.active():
+                main.log.info( "Node {} final Overall Rate: {}".format( ctrl.ipAddress,
+                                                                        result[ ctrl.ipAddress ] ) )
 
         with open( main.dbFileName, "a" ) as resultDB:
-            for nodes in range( main.numCtrls ):
+            for nodes in range( main.Cluster.numCtrls ):
                 resultString = "'" + main.commit + "',"
                 resultString += "'1gig',"
-                resultString += str( main.numCtrls) + ","
-                resultString += "'baremetal" + str( nodes+1 ) + "',"
+                resultString += str( main.Cluster.numCtrls ) + ","
+                resultString += "'baremetal" + str( nodes + 1 ) + "',"
                 resultString += main.neighbors + ","
-                resultString += result[ main.ONOSip[ nodes ] ]+","
-                resultString += str(0) + "\n"  # no stddev
+                resultString += result[ main.Cluster.active( nodes ).ipAddress ] + ","
+                resultString += str( 0 ) + "\n"  # no stddev
                 resultDB.write( resultString )
         resultDB.close()