Fix some startup issues now that we use cluster size

- Change max cluster size to size of largest cluster
- Cleanup some reading of params
- Catch when ONOS isn't fully started

Change-Id: I5b2ca791046bd4061d31355276958ead39f8b65c
(cherry picked from commit ace1f317e19fd50924e78e53b566d69db23f5683)
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