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