diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py b/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
index 38dbaf6..9c73c0c 100755
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
@@ -101,7 +101,7 @@
         main.dynamicHosts = [ 'in1', 'out1' ]
         main.testSetUp.createApplyCell( main.Cluster, newCell=True, cellName=main.cellName,
                                         Mininet=main.Mininet1, useSSH=Testcaselib.useSSH,
-                                        ip=main.Cluster.getIps() )
+                                        ips=main.Cluster.getIps() )
         # kill off all onos processes
         main.log.info( "Safety check, killing all ONOS processes" +
                        " before initiating environment setup" )
diff --git a/TestON/tests/USECASE/VPLS/dependencies/vpls.py b/TestON/tests/USECASE/VPLS/dependencies/vpls.py
index 34fffbb..47ffe78 100644
--- a/TestON/tests/USECASE/VPLS/dependencies/vpls.py
+++ b/TestON/tests/USECASE/VPLS/dependencies/vpls.py
@@ -69,14 +69,14 @@
 
     # Variables
     app = main.params[ 'vpls' ][ 'name' ]
-    pprint = main.ONOSrest1.pprint
+    pprint = main.Cluster.active( 0 ).REST.pprint
     SLEEP = int( main.params[ 'SLEEP' ][ 'netcfg' ] )
 
     main.step( "Check network configurations for vpls application" )
     clusterResult = True
-    for node in main.RESTs:
+    for ctrl in main.Cluster.active():
         result = False
-        getVPLS = utilities.retry( f=node.getNetCfg,
+        getVPLS = utilities.retry( f=ctrl.REST.getNetCfg,
                                    retValue=False,
                                    kwargs={"subjectClass":"apps", "subjectKey":app},
                                    sleep=SLEEP )
@@ -98,10 +98,10 @@
 
     main.step( "Check vpls app configurations" )
     clusterResult = True
-    for node in main.CLIs:
+    for ctrl in main.Cluster.active():
         result = False
         #TODO Read from vpls show and match to pushed json
-        vpls = node.parseVplsShow()
+        vpls = ctrl.CLI.parseVplsShow()
         parsedVpls = pprint( sanitizeConfig( vpls ) )
         sentVpls = pprint( sanitizeConfig( main.vplsConfig ) )
         result = parsedVpls == sentVpls
@@ -155,7 +155,7 @@
 
 def checkIntentState( main , bl=[] ):
     # Print the intent states
-    intents = main.CLIs[ 0 ].intents()
+    intents = main.Cluster.active( 0 ).CLI.intents()
     count = 0
     while count <= 5:
         installedCheck = True
@@ -227,8 +227,8 @@
 def compareApps( main ):
     result = True
     first = None
-    for cli in main.CLIs:
-        currentApps = cli.apps( summary=True, active=True )
+    for ctrl in main.Cluster.active():
+        currentApps = ctrl.CLI.apps( summary=True, active=True )
         if not result:
             first = currentApps
         else:
