Send Ctrl+C to exit from previous command when getting pexpect timeout

Change-Id: I549afb797e0f8c033d198d23a5a60e0b8e15e21d
diff --git a/TestON/drivers/common/cli/onosclidriver.py b/TestON/drivers/common/cli/onosclidriver.py
index 7aa8a40..3c48114 100755
--- a/TestON/drivers/common/cli/onosclidriver.py
+++ b/TestON/drivers/common/cli/onosclidriver.py
@@ -502,6 +502,8 @@
         except pexpect.TIMEOUT:
             main.log.error( self.name + ": ONOS timeout" )
             main.log.debug( self.handle.before )
+            self.handle.send( "\x03" )
+            self.handle.expect( "onos>" )
             return None
         except pexpect.EOF:
             main.log.error( self.name + ": EOF exception found" )
@@ -588,6 +590,8 @@
             main.log.error( self.name + ": ONOS timeout" )
             if debug:
                 main.log.debug( self.handle.before )
+            self.handle.send( "\x03" )
+            self.handle.expect( "onos>" )
             return None
         except IndexError:
             main.log.exception( self.name + ": Object not as expected" )
diff --git a/TestON/drivers/common/cli/onosdriver.py b/TestON/drivers/common/cli/onosdriver.py
index cffc805..4a9b33e 100755
--- a/TestON/drivers/common/cli/onosdriver.py
+++ b/TestON/drivers/common/cli/onosdriver.py
@@ -232,6 +232,8 @@
         except pexpect.TIMEOUT:
             main.log.exception( self.name + ": TIMEOUT exception found in onosPackage" )
             main.log.error( self.name + ":    " + 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" )
@@ -390,6 +392,8 @@
         except pexpect.TIMEOUT:
             main.log.exception( self.name + ": TIMEOUT exception found" )
             main.log.error( self.name + ":    " + 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" )
@@ -515,6 +519,8 @@
                 main.log.error(
                     self.name + " Response was: " + str(
                         self.handle.before ) )
+                self.handle.send( "\x03" )  # Control-C
+                self.handle.expect( self.prompt )
                 return main.ERROR
             else:
                 main.log.error(
@@ -598,6 +604,8 @@
                 main.log.error( self.name + ": Git Checkout- TIMEOUT" )
                 main.log.error(
                     self.name + " Response was: " + str( self.handle.before ) )
+                self.handle.send( "\x03" )  # Control-C
+                self.handle.expect( self.prompt )
                 return main.ERROR
             elif i == 5:
                 self.handle.expect( "Aborting" )
@@ -973,7 +981,7 @@
                 return returnString
             elif i == 1:
                 main.log.error( self.name + ": Timeout when sending " + cmdstr )
-                self.handle.sendline( "\x03" )  # Control-C
+                self.handle.send( "\x03" )  # Control-C
                 self.handle.expect( self.prompt )
                 return main.FALSE
         except pexpect.TIMEOUT:
@@ -1088,6 +1096,8 @@
                     " 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" )
@@ -1196,6 +1206,8 @@
             return main.TRUE
         except pexpect.TIMEOUT:
             main.log.exception( self.name + ": Timeout in onosUninstall" )
+            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" )
@@ -1854,6 +1866,8 @@
         except pexpect.TIMEOUT:
             main.log.exception( self.name + ": Timeout exception in "
                                 "setIpTables function" )
+            self.handle.send( "\x03" )  # Control-C
+            self.handle.expect( self.prompt )
             return main.ERROR
         except pexpect.EOF:
             main.log.error( self.name + ": EOF exception found" )
@@ -1898,6 +1912,8 @@
         except pexpect.TIMEOUT:
             main.log.exception( self.name + ": Timeout exception in "
                                 "setIpTables function" )
+            self.handle.send( "\x03" )  # Control-C
+            self.handle.expect( self.prompt )
             return 'ERROR', "Pexpect Timeout"
         except pexpect.EOF:
             main.log.error( self.name + ": EOF exception found" )
@@ -2604,6 +2620,8 @@
         except pexpect.TIMEOUT:
             main.log.exception( self.name + ": TIMEOUT exception found in onosDiagnostics" )
             main.log.error( self.name + ":    " + 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" )