[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 +