Merge "Revert "[ONOS-7756] Start/stop Atomix cluster as part of ONOS cluster setup""
diff --git a/TestON/drivers/common/cli/onosdriver.py b/TestON/drivers/common/cli/onosdriver.py
index 8890871..89dc363 100755
--- a/TestON/drivers/common/cli/onosdriver.py
+++ b/TestON/drivers/common/cli/onosdriver.py
@@ -2668,111 +2668,3 @@
         except Exception:
             main.log.exception( self.name + ": Uncaught exception!" )
             main.cleanAndExit()
-
-    def atomixKill( self, nodeIp ):
-        """
-        Calls the command: 'atomix-kill [<node-ip>]'
-        Kills the Atomix instance running on the specified node
-        """
-        try:
-            self.handle.sendline( "" )
-            self.handle.expect( self.prompt )
-            self.handle.sendline( "atomix-kill " + str( nodeIp ) )
-            i = self.handle.expect( [
-                self.prompt,
-                "No\sroute\sto\shost",
-                "password:",
-                pexpect.TIMEOUT ], timeout=60 )
-
-            if i == 0:
-                main.log.info( "Atomix instance " + str( nodeIp ) + " was killed" )
-                return main.TRUE
-            elif i == 1:
-                main.log.info( "No route to host" )
-                return main.FALSE
-            elif i == 2:
-                main.log.info( "Passwordless login for host: " + str( nodeIp ) + " not configured" )
-                return main.FALSE
-            else:
-                main.log.info( "Atomix instance was not killed" )
-                return main.FALSE
-
-        except pexpect.EOF:
-            main.log.error( self.name + ": EOF exception found" )
-            main.log.error( self.name + ":    " + self.handle.before )
-            main.cleanAndExit()
-        except Exception:
-            main.log.exception( self.name + ": Uncaught exception!" )
-            main.cleanAndExit()
-
-    def atomixUninstall( self, nodeIp="" ):
-        """
-        Calls the command: 'atomix-uninstall'
-        Uninstalls Atomix from the designated node, stopping if needed
-        """
-        try:
-            self.handle.sendline( "" )
-            self.handle.expect( self.prompt, timeout=180 )
-            self.handle.sendline( "atomix-uninstall " + str( nodeIp ) )
-            self.handle.expect( self.prompt, timeout=180 )
-            main.log.info( "Atomix " + nodeIp + " was uninstalled" )
-            # onos-uninstall command does not return any text
-            return main.TRUE
-        except pexpect.TIMEOUT:
-            main.log.exception( self.name + ": Timeout in atomixUninstall" )
-            self.handle.send( "\x03" )  # Control-C
-            self.handle.expect( self.prompt )
-            return main.FALSE
-        except pexpect.EOF:
-            main.log.error( self.name + ": EOF exception found" )
-            main.log.error( self.name + ":    " + self.handle.before )
-            main.cleanAndExit()
-        except Exception:
-            main.log.exception( self.name + ": Uncaught exception!" )
-            main.cleanAndExit()
-
-    def atomixInstall( self, options="", node="" ):
-        """
-        Installs Atomix on the designated nodes.
-        Returns: main.TRUE on success and main.FALSE on failure
-        """
-        try:
-            if options:
-                self.handle.sendline( "atomix-install " + options + " " + node )
-            else:
-                self.handle.sendline( "atomix-install " + node )
-            self.handle.expect( "atomix-install " )
-            i = self.handle.expect( [ "Network\sis\sunreachable",
-                                      "is already installed",
-                                      "saved",
-                                      self.prompt,
-                                      pexpect.TIMEOUT ], timeout=180 )
-            if i == 0:
-                # can't reach ONOS node
-                main.log.warn( "Network is unreachable" )
-                self.handle.expect( self.prompt )
-                return main.FALSE
-            elif i == 1:
-                # same bits are already on Atomix node
-                main.log.info( "Atomix is already installed on " + node )
-                self.handle.expect( self.prompt )
-                return main.TRUE
-            elif i == 2 or i == 3:
-                main.log.info( "Atomix was installed on " + node )
-                self.handle.expect( self.prompt )
-                return main.TRUE
-            elif i == 4:
-                # timeout
-                main.log.info( "Installation of Atomix on " + node + " timed out" )
-                self.handle.expect( self.prompt )
-                main.log.warn( self.handle.before )
-                self.handle.send( "\x03" )  # Control-C
-                self.handle.expect( self.prompt )
-                return main.FALSE
-        except pexpect.EOF:
-            main.log.error( self.name + ": EOF exception found" )
-            main.log.error( self.name + ": " + self.handle.before )
-            main.cleanAndExit()
-        except Exception:
-            main.log.exception( self.name + ": Uncaught exception!" )
-            main.cleanAndExit()
diff --git a/TestON/tests/dependencies/Cluster.py b/TestON/tests/dependencies/Cluster.py
index 6bfbb3f..a67bad5 100644
--- a/TestON/tests/dependencies/Cluster.py
+++ b/TestON/tests/dependencies/Cluster.py
@@ -176,27 +176,7 @@
                       specificDriver=1,
                       getFrom=0 if installMax else 1 )
 
-    def uninstallAtomix( self, uninstallMax ):
-        """
-        Description:
-            uninstalling atomix
-        Required:
-            * uninstallMax - True for uninstalling max number of nodes
-            False for uninstalling the current running nodes.
-        Returns:
-            Returns main.TRUE if it successfully uninstalled.
-        """
-        result = main.TRUE
-        uninstallResult = self.command( "atomixUninstall",
-                                        kwargs={ "nodeIp": "ipAddress" },
-                                        specificDriver=1,
-                                        getFrom=0 if uninstallMax else 1,
-                                        funcFromCtrl=True )
-        for uninstallR in uninstallResult:
-            result = result and uninstallR
-        return result
-
-    def uninstallOnos( self, uninstallMax ):
+    def uninstall( self, uninstallMax ):
         """
         Description:
             uninstalling onos
@@ -264,31 +244,7 @@
                 main.log.warn( ctrl.name + " may not be up." )
         return onosIsUp
 
-    def killAtomix( self, killMax, stopAtomix ):
-        """
-        Description:
-            killing atomix. It will either kill the current runningnodes or
-            max number of the nodes.
-        Required:
-            * killRemoveMax - The boolean that will decide either to kill
-            only running nodes ( False ) or max number of nodes ( True ).
-            * stopAtomix - If wish to atomix onos before killing it. True for
-            enable stop, False for disable stop.
-        Returns:
-            Returns main.TRUE if successfully killing it.
-        """
-        result = main.TRUE
-        killResult = self.command( "atomixKill",
-                                   args=[ "ipAddress" ],
-                                   specificDriver=1,
-                                   getFrom=0 if killMax else 1,
-                                   funcFromCtrl=True )
-        for i in range( len( killResult ) ):
-            result = result and killResult[ i ]
-            self.controllers[ i ].active = False
-        return result
-
-    def killOnos( self, killMax, stopOnos ):
+    def kill( self, killMax, stopOnos ):
         """
         Description:
             killing the onos. It will either kill the current runningnodes or
@@ -331,42 +287,7 @@
             result = result and sshR
         return result
 
-    def installAtomix( self, installMax=True, installParallel=True ):
-        """
-        Description:
-            Installing onos.
-        Required:
-            * installMax - True for installing max number of nodes
-            False for installing current running nodes only.
-        Returns:
-            Returns main.TRUE if it successfully installed
-        """
-        result = main.TRUE
-        threads = []
-        i = 0
-        for ctrl in self.controllers if installMax else self.runningNodes:
-            options = ""
-            if installMax and i >= self.numCtrls:
-                # TODO: is installMax supported here?
-                pass
-            if installParallel:
-                t = main.Thread( target=ctrl.Bench.atomixInstall,
-                                 name="atomix-install-" + ctrl.name,
-                                 kwargs={ "node" : ctrl.ipAddress,
-                                          "options" : options } )
-                threads.append( t )
-                t.start()
-            else:
-                result = result and \
-                            main.ONOSbench.atomixInstall( node=ctrl.ipAddress, options=options )
-            i += 1
-        if installParallel:
-            for t in threads:
-                t.join()
-                result = result and t.result
-        return result
-
-    def installOnos( self, installMax=True, installParallel=True ):
+    def install( self, installMax=True, installParallel=True ):
         """
         Description:
             Installing onos.
@@ -385,7 +306,7 @@
                 options = "-nf"
             if installParallel:
                 t = main.Thread( target=ctrl.Bench.onosInstall,
-                                 name="onos-install-" + ctrl.name,
+                                 name="install-" + ctrl.name,
                                  kwargs={ "node" : ctrl.ipAddress,
                                           "options" : options } )
                 threads.append( t )
diff --git a/TestON/tests/dependencies/ONOSSetup.py b/TestON/tests/dependencies/ONOSSetup.py
index 8879220..66eced1 100644
--- a/TestON/tests/dependencies/ONOSSetup.py
+++ b/TestON/tests/dependencies/ONOSSetup.py
@@ -183,23 +183,6 @@
             # main.scale[ 0 ] determines the current number of ONOS controller
             main.Cluster.setRunningNode( int( main.scale.pop( 0 ) ) )
 
-    def killingAllAtomix( self, cluster, killRemoveMax, stopAtomix ):
-        """
-        Description:
-            killing atomix. It will either kill the current runningnodes or
-            max number of the nodes.
-        Required:
-            * cluster - the cluster driver that will be used.
-            * killRemoveMax - The boolean that will decide either to kill
-            only running nodes ( False ) or max number of nodes ( True ).
-            * stopAtomix - If wish to stop atomix before killing it. True for
-            enable stop, False for disable stop.
-        Returns:
-            Returns main.TRUE if successfully killing it.
-        """
-        main.log.info( "Safety check, killing all Atomix processes" )
-        return cluster.killAtomix( killRemoveMax, stopAtomix )
-
     def killingAllOnos( self, cluster, killRemoveMax, stopOnos ):
         """
         Description:
@@ -210,12 +193,13 @@
             * killRemoveMax - The boolean that will decide either to kill
             only running nodes ( False ) or max number of nodes ( True ).
             * stopOnos - If wish to stop onos before killing it. True for
-            enable stop, False for disable stop.
+            enable stop , False for disable stop.
         Returns:
             Returns main.TRUE if successfully killing it.
         """
         main.log.info( "Safety check, killing all ONOS processes" )
-        return cluster.killOnos( killRemoveMax, stopOnos )
+
+        return cluster.kill( killRemoveMax, stopOnos )
 
     def createApplyCell( self, cluster, newCell, cellName, cellApps,
                          mininetIp, useSSH, ips, installMax=False ):
@@ -245,25 +229,6 @@
                                  onfail="Failed to apply cell to environment" )
         return stepResult
 
-    def uninstallAtomix( self, cluster, uninstallMax ):
-        """
-        Description:
-            uninstalling atomix and verify the result.
-        Required:
-            * cluster - a cluster driver that will be used.
-            * uninstallMax - True for uninstalling max number of nodes
-            False for uninstalling the current running nodes.
-        Returns:
-            Returns main.TRUE if it successfully uninstalled.
-        """
-        main.step( "Uninstalling Atomix" )
-        atomixUninstallResult = cluster.uninstallAtomix( uninstallMax )
-        utilities.assert_equals( expect=main.TRUE,
-                                 actual=atomixUninstallResult,
-                                 onpass="Successfully uninstalled Atomix",
-                                 onfail="Failed to uninstall Atomix" )
-        return atomixUninstallResult
-
     def uninstallOnos( self, cluster, uninstallMax ):
         """
         Description:
@@ -276,7 +241,7 @@
             Returns main.TRUE if it successfully uninstalled.
         """
         main.step( "Uninstalling ONOS package" )
-        onosUninstallResult = cluster.uninstallOnos( uninstallMax )
+        onosUninstallResult = cluster.uninstall( uninstallMax )
         utilities.assert_equals( expect=main.TRUE,
                                  actual=onosUninstallResult,
                                  onpass="Successfully uninstalled ONOS package",
@@ -300,29 +265,6 @@
                                  onfail="Failed to create ONOS package" )
         return packageResult
 
-    def installAtomix( self, cluster, installMax, parallel=True ):
-        """
-        Description:
-            Installing atomix and verify the result
-        Required:
-            * cluster - the cluster driver that will be used.
-            * installMax - True for installing max number of nodes
-            False for installing current running nodes only.
-        Returns:
-            Returns main.TRUE if it successfully installed
-        """
-        main.step( "Installing Atomix" )
-        atomixInstallResult = main.TRUE
-
-        cluster.installAtomix( installMax, parallel )
-        utilities.assert_equals( expect=main.TRUE,
-                                 actual=atomixInstallResult,
-                                 onpass="Successfully installed Atomix",
-                                 onfail="Failed to install Atomix" )
-        if not atomixInstallResult:
-            main.cleanAndExit()
-        return atomixInstallResult
-
     def installOnos( self, cluster, installMax, parallel=True ):
         """
         Description:
@@ -337,7 +279,7 @@
         main.step( "Installing ONOS package" )
         onosInstallResult = main.TRUE
 
-        cluster.installOnos( installMax, parallel )
+        cluster.install( installMax, parallel )
         utilities.assert_equals( expect=main.TRUE,
                                  actual=onosInstallResult,
                                  onpass="Successfully installed ONOS package",
@@ -417,8 +359,7 @@
     def ONOSSetUp( self, cluster, hasMultiNodeRounds=False, startOnos=True, newCell=True,
                    cellName="temp", cellApps="drivers", mininetIp="", removeLog=False, extraApply=None, applyArgs=None,
                    extraClean=None, cleanArgs=None, skipPack=False, installMax=False, useSSH=True,
-                   killRemoveMax=True, stopAtomix=False, stopOnos=False, installParallel=True, cellApply=True,
-                   includeCaseDesc=True ):
+                   killRemoveMax=True, stopOnos=False, installParallel=True, cellApply=True, includeCaseDesc=True ):
         """
         Description:
             Initial ONOS setting up of the tests. It will also verify the result of each steps.
@@ -453,7 +394,6 @@
             * useSSH - True for using ssh when creating a cell
             * killRemoveMax - True for removing/killing max number of nodes. False for
             removing/killing running nodes only.
-            * stopAtomix - True if wish to stop atomix before killing it.
             * stopOnos - True if wish to stop onos before killing it.
         Returns:
             Returns main.TRUE if it everything successfully proceeded.
@@ -464,9 +404,7 @@
                        " node(s) ONOS cluster" )
             main.caseExplanation = "Set up ONOS with " + str( cluster.numCtrls ) + \
                                    " node(s) ONOS cluster"
-        atomixKillResult = self.killingAllAtomix( cluster, killRemoveMax, stopAtomix )
-        onosKillResult = self.killingAllOnos( cluster, killRemoveMax, stopOnos )
-        killResult = atomixKillResult and onosKillResult
+        killResult = self.killingAllOnos( cluster, killRemoveMax, stopOnos )
 
         main.log.info( "NODE COUNT = " + str( cluster.numCtrls ) )
         cellResult = main.TRUE
@@ -490,17 +428,13 @@
         if removeLog:
             main.log.info("Removing raft logs")
             main.ONOSbench.onosRemoveRaftLogs()
-        atomixUninstallResult = self.uninstallAtomix( cluster, killRemoveMax )
         onosUninstallResult = self.uninstallOnos( cluster, killRemoveMax )
-        uninstallResult = atomixUninstallResult and onosUninstallResult
         self.processList( extraApply, applyArgs )
 
         if not skipPack:
             packageResult = self.buildOnos(cluster)
 
-        atomixInstallResult = self.installAtomix( cluster, installMax, installParallel )
         onosInstallResult = self.installOnos( cluster, installMax, installParallel )
-        installResult = atomixInstallResult and onosInstallResult
 
         self.processList( extraClean, cleanArgs )
         secureSshResult = self.setupSsh( cluster )
@@ -510,5 +444,5 @@
         if startOnos:
             onosCliResult = self.startOnosClis( cluster )
 
-        return killResult and cellResult and packageResult and uninstallResult and \
-               installResult and secureSshResult and onosServiceResult and onosCliResult
+        return killResult and cellResult and packageResult and onosUninstallResult and \
+               onosInstallResult and secureSshResult and onosServiceResult and onosCliResult