[ONOS-6619] Allow different bash prompts in TestON components, Also including part of ONOS-6595
Change-Id: I31c923347dd8fac018aaf47868394552a2deefbc
diff --git a/TestON/drivers/common/cli/emulator/flowvisordriver.py b/TestON/drivers/common/cli/emulator/flowvisordriver.py
index 35c0bbf..5839e18 100644
--- a/TestON/drivers/common/cli/emulator/flowvisordriver.py
+++ b/TestON/drivers/common/cli/emulator/flowvisordriver.py
@@ -37,7 +37,7 @@
FlowVisorDriver is the basic driver which will handle the Mininet functions
"""
def __init__( self ):
- super( Emulator, self ).__init__()
+ super( FlowVisorDriver, self ).__init__()
self.handle = self
self.wrapped = sys.modules[ __name__ ]
@@ -61,13 +61,13 @@
# Copying the readme file to process the
if self.handle:
- self.execute( cmd='\r', prompt='\$', timeout=10 )
+ self.execute( cmd='\r', prompt=self.prompt, timeout=10 )
self.options[ 'path' ] = '/home/openflow/flowvisor/scripts/'
#self.handle.logfile = sys.stdout
self.execute(
cmd='cd ' +
self.options[ 'path' ],
- prompt='\$',
+ prompt=self.prompt,
timeout=10 )
main.log.info( "Starting FlowVisor " )
@@ -92,7 +92,7 @@
main.log.info( response )
#import time
# time.sleep( 10 )
- #response = self.execute( cmd='./start_visualizer.sh & \r',prompt='\$',timeout=10 )
+ #response = self.execute( cmd='./start_visualizer.sh & \r',prompt=self.prompt,timeout=10 )
return main.TRUE
else:
@@ -111,13 +111,13 @@
for id in flow_ids:
self.removeFlowSpace( id )
else:
- self.execute( cmd="clear", prompt="\$", timeout=10 )
+ self.execute( cmd="clear", prompt=self.prompt, timeout=10 )
self.execute(
cmd="./fvctl.sh removeFlowSpace " +
id,
prompt="passwd:",
timeout=10 )
- self.execute( cmd="\n", prompt="\$", timeout=10 )
+ self.execute( cmd="\n", prompt=self.prompt, timeout=10 )
main.log.info( "Removed flowSpace which is having id :" + id )
return main.TRUE
@@ -155,13 +155,13 @@
except Exception:
main.log.error( "Please specify flowspace properly" )
"""
- # self.execute( cmd="clear",prompt="\$",timeout=10 )
+ # self.execute( cmd="clear",prompt=self.prompt,timeout=10 )
self.execute(
cmd="./fvctl.sh addFlowSpace " +
flowspace,
prompt="passwd:",
timeout=10 )
- self.execute( cmd="\n", prompt="\$", timeout=10 )
+ self.execute( cmd="\n", prompt=self.prompt, timeout=10 )
sucess_match = re.search( "success\:\s+(\d+)", main.last_response )
if sucess_match:
main.log.info(
@@ -172,12 +172,12 @@
return main.FALSE
def listFlowSpace( self ):
- self.execute( cmd="clear", prompt="\$", timeout=10 )
+ self.execute( cmd="clear", prompt=self.prompt, timeout=10 )
self.execute(
cmd="./fvctl.sh listFlowSpace ",
prompt="passwd:",
timeout=10 )
- self.execute( cmd="\n", prompt="\$", timeout=10 )
+ self.execute( cmd="\n", prompt=self.prompt, timeout=10 )
flow_space = main.last_response
flow_space = self.remove_contol_chars( flow_space )
flow_space = re.sub(
@@ -191,9 +191,9 @@
return flow_space
def listDevices( self ):
- # self.execute( cmd="clear",prompt="\$",timeout=10 )
+ # self.execute( cmd="clear",prompt=self.prompt,timeout=10 )
#self.execute( cmd="./fvctl.sh listDevices ",prompt="passwd:",timeout=10 )
- # self.execute( cmd="\n",prompt="\$",timeout=10 )
+ # self.execute( cmd="\n",prompt=self.prompt,timeout=10 )
devices_list = ''
last_response = re.findall(
"(Device\s\d+\:\s((\d|[a-z])(\d|[a-z])\:)+(\d|[a-z])(\d|[a-z]))",
diff --git a/TestON/drivers/common/cli/emulator/lincoedriver.py b/TestON/drivers/common/cli/emulator/lincoedriver.py
index 5024f17..dfc7511 100644
--- a/TestON/drivers/common/cli/emulator/lincoedriver.py
+++ b/TestON/drivers/common/cli/emulator/lincoedriver.py
@@ -31,7 +31,7 @@
LincOEDriver class will handle all emulator functions
"""
def __init__( self ):
- super( Emulator, self ).__init__()
+ super( LincOEDriver, self ).__init__()
self.handle = self
self.wrapped = sys.modules[ __name__ ]
self.flag = 0
@@ -103,12 +103,12 @@
self.handle.sendline( "make rel" )
i = self.handle.expect( [
"ERROR",
- "\$" ] )
+ self.prompt ] )
if i == 0:
self.handle.sendline( "sudo pkill -9 epmd" )
self.handle.sendline( "make rel" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
handle = self.handle.before
return handle
@@ -222,7 +222,7 @@
"""
try:
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
self.handle.sendline( "sudo ~/linc-oe/rel/linc/bin/linc attach" )
self.handle.expect( ">" )
return main.TRUE
@@ -317,19 +317,19 @@
# Send CTRL+C twice to exit CLI
self.handle.send( "\x03" )
self.handle.send( "\x03" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
handle1 = self.handle.before
cmd = "pgrep -f linc"
self.handle.sendline( cmd )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
handle2 = self.handle.before
main.log.info( "pid's = " + handle2 )
cmd = "sudo kill -9 `pgrep -f linc`"
self.handle.sendline( cmd )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
# Close the ssh connection
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
self.handle.sendline( "exit" )
self.handle.expect( "closed" )
except pexpect.EOF:
diff --git a/TestON/drivers/common/cli/emulator/mininetclidriver.py b/TestON/drivers/common/cli/emulator/mininetclidriver.py
index 90f79a9..21ba948 100644
--- a/TestON/drivers/common/cli/emulator/mininetclidriver.py
+++ b/TestON/drivers/common/cli/emulator/mininetclidriver.py
@@ -44,12 +44,11 @@
class MininetCliDriver( Emulator ):
-
"""
MininetCliDriver is the basic driver which will handle
the Mininet functions"""
def __init__( self ):
- super( Emulator, self ).__init__()
+ super( MininetCliDriver, self ).__init__()
self.handle = self
self.name = None
self.home = None
@@ -155,7 +154,7 @@
main.log.info( self.name + ": Sending sudo password" )
self.handle.sendline( self.pwd )
i = self.handle.expect( [ '%s:' % self.user,
- '\$',
+ self.prompt,
pexpect.EOF,
pexpect.TIMEOUT ],
timeout )
@@ -197,7 +196,7 @@
cmdString += mnCmd
# Send the command and check if network started
self.handle.sendline( "" )
- self.handle.expect( '\$' )
+ self.handle.expect( self.prompt )
main.log.info( "Sending '" + cmdString + "' to " + self.name )
self.handle.sendline( cmdString )
while True:
@@ -213,7 +212,7 @@
elif i == 1:
response = str( self.handle.before +
self.handle.after )
- self.handle.expect( '\$' )
+ self.handle.expect( self.prompt )
response += str( self.handle.before +
self.handle.after )
main.log.error(
@@ -2370,7 +2369,7 @@
try:
self.handle.sendline( "" )
i = self.handle.expect( [ 'mininet>',
- '\$',
+ self.prompt,
pexpect.EOF,
pexpect.TIMEOUT ],
timeout )
@@ -2395,7 +2394,7 @@
if fileName:
self.handle.sendline( "" )
- self.handle.expect( '\$' )
+ self.handle.expect( self.prompt )
self.handle.sendline(
"sudo kill -9 \`ps -ef | grep \"" +
fileName +
diff --git a/TestON/drivers/common/cli/emulator/poxclidriver.py b/TestON/drivers/common/cli/emulator/poxclidriver.py
index 02c43b1..349e54e 100644
--- a/TestON/drivers/common/cli/emulator/poxclidriver.py
+++ b/TestON/drivers/common/cli/emulator/poxclidriver.py
@@ -41,7 +41,7 @@
PoxCliDriver driver provides the basic functions of POX controller
"""
def __init__( self ):
- super( Emulator, self ).__init__()
+ super( PoxCliDriver, self ).__init__()
self.handle = self
self.wrapped = sys.modules[ __name__ ]
@@ -80,12 +80,12 @@
self.execute(
cmd="cd " +
self.options[ 'pox_lib_location' ],
- prompt="/pox\$",
+ prompt="/pox" + self.prompt,
timeout=120 )
else:
self.execute(
cmd="cd ~/TestON/lib/pox/",
- prompt="/pox\$",
+ prompt="/pox" + self.prompt,
timeout=120 )
# launching pox with components
main.log.info( "launching POX controller with given components" )
@@ -102,7 +102,7 @@
def disconnect( self, handle ):
if self.handle:
- self.execute( cmd="exit()", prompt="/pox\$", timeout=120 )
+ self.execute( cmd="exit()", prompt="/pox" + self.prompt, timeout=120 )
else:
main.log.error( "Connection failed to the host" )
diff --git a/TestON/drivers/common/cli/emulator/remotemininetdriver.py b/TestON/drivers/common/cli/emulator/remotemininetdriver.py
index 8788af0..4aa8ad4 100644
--- a/TestON/drivers/common/cli/emulator/remotemininetdriver.py
+++ b/TestON/drivers/common/cli/emulator/remotemininetdriver.py
@@ -39,7 +39,7 @@
mininet running on the target.
"""
def __init__( self ):
- super( Emulator, self ).__init__()
+ super( RemoteMininetDriver, self ).__init__()
self.handle = self
self.name = None
self.wrapped = sys.modules[ __name__ ]
@@ -103,12 +103,12 @@
"""
try:
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
self.handle.sendline( "cat " + pingList )
self.handle.expect( pingList )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
outputs = self.handle.before + self.handle.after
if re.search( " 0% packet loss", outputs ):
return main.FALSE
@@ -140,7 +140,7 @@
"""
try:
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
args = utilities.parse_args(
[ "SRC", "TARGET", "PINGTIME" ], **pingParams )
precmd = "sudo rm /tmp/ping." + args[ "SRC" ]
@@ -152,7 +152,7 @@
main.log.info( command )
self.execute( cmd=command, prompt="(.*)", timeout=10 )
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
return main.TRUE
except TypeError:
main.log.exception(self.name + ": Object not as expected")
@@ -179,14 +179,14 @@
"""
try:
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
args = utilities.parse_args( [ "SRC" ], **pingParams )
self.handle.sendline( "tail /tmp/ping." + args[ "SRC" ] )
self.handle.expect( "tail" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
result = self.handle.before + self.handle.after
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
if re.search( 'Unreachable', result ):
main.log.info( "Unreachable found in ping logs..." )
return main.FALSE
@@ -220,7 +220,7 @@
"""
try:
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
command = "sudo kill -SIGINT `pgrep ping`"
main.log.info( command )
self.execute( cmd=command, prompt="(.*)", timeout=10 )
@@ -231,11 +231,11 @@
self.execute( cmd=command, prompt="100%", timeout=20 )
# Make sure the output is cleared
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
self.handle.sendline( "" )
- i = self.handle.expect( [ "password", "\$" ] )
+ i = self.handle.expect( [ "password", self.prompt ] )
if i == 0:
main.log.error( "Error, sudo asking for password" )
main.log.error( self.handle.before )
@@ -260,12 +260,12 @@
def pingLongKill( self ):
try:
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
command = "sudo kill -SIGING `pgrep ping`"
main.log.info( command )
self.execute( cmd=command, prompt="(.*)", timeout=10 )
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
return main.TRUE
except pexpect.TIMEOUT:
main.log.exception( self.name + ": TIMEOUT exception found in pingLongKill" )
@@ -330,7 +330,7 @@
"""
try:
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
args = utilities.parse_args( [ "SRC", "TARGET" ], **pingParams )
command = "mininet/util/m " + \
args[ "SRC" ] + " ping " + args[ "TARGET" ] + " -c 4 -W 1 -i .2"
@@ -365,15 +365,15 @@
try:
if self.handle:
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
self.handle.sendline( 'ifconfig -a | grep "sw.. " | wc -l' )
self.handle.expect( "wc" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
response = self.handle.before
self.handle.sendline(
'ps -ef | grep "bash -ms mininet:sw" | grep -v color | wc -l' )
self.handle.expect( "color" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
response2 = self.handle.before
if re.search( num, response ):
@@ -424,7 +424,7 @@
self.handle.sendline( "" )
self.handle.sendline( "" )
i = self.handle.expect( [ 'No\ssuch\device', 'listening\son',
- pexpect.TIMEOUT, "\$" ], timeout=10 )
+ pexpect.TIMEOUT, self.prompt ], timeout=10 )
main.log.info( self.handle.before + self.handle.after )
if i == 0:
main.log.error( self.name + ": tcpdump - No such device exists.\
@@ -459,7 +459,7 @@
try:
self.handle.sendline( "sudo pkill tcpdump" )
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
except pexpect.EOF:
main.log.error( self.name + ": EOF exception found" )
main.log.error( self.name + ": " + self.handle.before )
@@ -487,9 +487,9 @@
"""
try:
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
self.handle.sendline( "cd ~/" + name + "/tools/test/topos" )
- self.handle.expect( "topos\$" )
+ self.handle.expect( "topos"+ self.prompt )
if ctrllerIP == None:
main.log.info( "You need to specify the IP" )
return main.FALSE
@@ -531,7 +531,7 @@
"""
try:
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
self.handle.sendline( "sudo ~/linc-oe/rel/linc/bin/linc attach" )
self.handle.expect( ">" )
return main.TRUE
@@ -548,8 +548,8 @@
if self.handle:
# Close the ssh connection
self.handle.sendline( "" )
- # self.handle.expect( "\$" )
- i = self.handle.expect( [ '\$', 'mininet>', pexpect.TIMEOUT,
+ # self.handle.expect( self.prompt )
+ i = self.handle.expect( [ self.prompt, 'mininet>', pexpect.TIMEOUT,
pexpect.EOF ], timeout=2 )
if i == 0:
self.handle.sendline( "exit" )
@@ -557,7 +557,7 @@
elif i == 1:
self.handle.sendline( "exit" )
self.handle.expect( "exit" )
- self.handle.expect('\$')
+ self.handle.expect(self.prompt)
self.handle.sendline( "exit" )
self.handle.expect( "exit" )
self.handle.expect( "closed" )
@@ -637,7 +637,7 @@
# at the time of writing this function )
# Check for existing rules on current input
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
self.handle.sendline(
"sudo iptables -C OUTPUT -p " +
str( packetType ) +
@@ -647,7 +647,7 @@
str( dstPort ) +
" -j " +
str( rule ) )
- i = self.handle.expect( [ "iptables:", "\$" ] )
+ i = self.handle.expect( [ "iptables:", self.prompt ] )
print i
print self.handle.before
print "after: "
@@ -656,7 +656,7 @@
elif actionType == 'remove':
# Check for existing rules on current input
self.handle.sendline( "" )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
self.handle.sendline(
"sudo iptables -C OUTPUT -p " +
str( packetType ) +
@@ -666,7 +666,7 @@
str( dstPort ) +
" -j " +
str( rule ) )
- self.handle.expect( "\$" )
+ self.handle.expect( self.prompt )
print "before: "
print self.handle.before
actualString = self.handle.after
@@ -710,7 +710,7 @@
main.log.info( infoString )
self.handle.expect(
- [ "\$", pexpect.EOF, pexpect.TIMEOUT ] )
+ [ self.prompt, pexpect.EOF, pexpect.TIMEOUT ] )
except pexpect.TIMEOUT:
main.log.error(
self.name +
@@ -754,7 +754,7 @@
main.log.info( infoString )
self.handle.expect(
- [ "\$", pexpect.EOF, pexpect.TIMEOUT ] )
+ [ self.prompt, pexpect.EOF, pexpect.TIMEOUT ] )
except pexpect.TIMEOUT:
main.log.error(
self.name +
diff --git a/TestON/drivers/common/cli/emulator/scapyclidriver.py b/TestON/drivers/common/cli/emulator/scapyclidriver.py
index f1457ea..f61536c 100644
--- a/TestON/drivers/common/cli/emulator/scapyclidriver.py
+++ b/TestON/drivers/common/cli/emulator/scapyclidriver.py
@@ -38,7 +38,7 @@
ScapyCliDriver is the basic driver which will handle
the Scapy functions"""
def __init__( self ):
- super( Emulator, self ).__init__()
+ super( ScapyCliDriver, self ).__init__()
self.handle = self
self.name = None
self.home = None
@@ -147,7 +147,7 @@
try:
self.handle.sendline( "" )
i = self.handle.expect( [ '>>>',
- '\$',
+ self.prompt,
pexpect.EOF,
pexpect.TIMEOUT ],
timeout )
@@ -171,7 +171,7 @@
if fileName:
self.handle.sendline( "" )
- self.handle.expect( '\$' )
+ self.handle.expect( self.prompt )
self.handle.sendline(
"sudo kill -9 \`ps -ef | grep \"" +
fileName +