diff --git a/TestON/drivers/common/cli/onosclidriver.py b/TestON/drivers/common/cli/onosclidriver.py
index 158c706..4112977 100755
--- a/TestON/drivers/common/cli/onosclidriver.py
+++ b/TestON/drivers/common/cli/onosclidriver.py
@@ -800,7 +800,8 @@
                 cmdStr += " -j"
             output = self.sendline( cmdStr )
             assert output is not None, "Error in sendline"
-            assert "Command not found:" not in output, output
+            # "Command not found" or "Service org.onosproject.security.AuditService not found"
+            assert "not found" not in output, output
             return output
         except AssertionError:
             main.log.exception( "" )
diff --git a/TestON/drivers/common/cli/onosclusterdriver.py b/TestON/drivers/common/cli/onosclusterdriver.py
index 6ca91b7..11c44ae 100755
--- a/TestON/drivers/common/cli/onosclusterdriver.py
+++ b/TestON/drivers/common/cli/onosclusterdriver.py
@@ -93,6 +93,7 @@
         self.handle = None
         self.useDocker = False
         self.dockerPrompt = None
+        self.maxNodes = None
         self.nodes = []
         super( OnosClusterDriver, self ).__init__()
 
@@ -110,7 +111,7 @@
             self.home = "~/onos"
             for key in self.options:
                 if key == "home":
-                    self.home = self.options[ 'home' ]
+                    self.home = self.options[ key ]
                 elif key == "karaf_username":
                     self.karafUser = self.options[ key ]
                 elif key == "karaf_password":
@@ -125,6 +126,9 @@
                     self.webUser = self.options[ key ]
                 elif key == "web_pass":
                     self.webPass = self.options[ key ]
+                elif key == "nodes":
+                    # Maximum number of ONOS nodes to run, if there is any
+                    self.maxNodes = self.options[ key ]
 
             self.home = self.checkOptions( self.home, "~/onos" )
             self.karafUser = self.checkOptions( self.karafUser, self.user_name )
@@ -134,20 +138,10 @@
             prefix = self.checkOptions( prefix, "ONOS" )
             self.useDocker = self.checkOptions( self.useDocker, False )
             self.dockerPrompt = self.checkOptions( self.dockerPrompt, "~/onos#" )
+            self.maxNodes = int( self.checkOptions( self.maxNodes, 100 ) )
 
             self.name = self.options[ 'name' ]
 
-            # The 'nodes' tag is optional and it is not required in .topo file
-            for key in self.options:
-                if key == "nodes":
-                    # Maximum number of ONOS nodes to run, if there is any
-                    self.maxNodes = int( self.options[ 'nodes' ] )
-                    break
-                self.maxNodes = None
-
-            if self.maxNodes is None or self.maxNodes == "":
-                self.maxNodes = 100
-
             # Grabs all OC environment variables based on max number of nodes
             # TODO: Also support giving an ip range as a compononet option
             self.onosIps = {}  # Dictionary of all possible ONOS ip
diff --git a/TestON/drivers/common/cli/onosdriver.py b/TestON/drivers/common/cli/onosdriver.py
index 18540f0..3ac31dd 100755
--- a/TestON/drivers/common/cli/onosdriver.py
+++ b/TestON/drivers/common/cli/onosdriver.py
@@ -65,10 +65,10 @@
             # The 'nodes' tag is optional and it is not required in .topo file
             for key in self.options:
                 if key == "home":
-                    self.home = self.options[ 'home' ]
+                    self.home = self.options[ key ]
                 elif key == "nodes":
                     # Maximum number of ONOS nodes to run, if there is any
-                    self.maxNodes = int( self.options[ 'nodes' ] )
+                    self.maxNodes = int( self.options[ key ] )
                 elif key == "web_user":
                     self.webUser = self.options[ key ]
                 elif key == "web_pass":
