Changes to drivers to fix isup with tracing, to add mininet tcpdumps, and adding onossanityclidriver
diff --git a/TestON/drivers/common/cli/emulator/remotemininetdriver.py b/TestON/drivers/common/cli/emulator/remotemininetdriver.py
index 5668182..5c762fb 100644
--- a/TestON/drivers/common/cli/emulator/remotemininetdriver.py
+++ b/TestON/drivers/common/cli/emulator/remotemininetdriver.py
@@ -21,7 +21,7 @@
 
 MininetCliDriver is the basic driver which will handle the Mininet functions
 '''
-
+import traceback
 import pexpect
 import struct
 import fcntl
@@ -300,6 +300,66 @@
  #               
  #           
  #       return version    
+    def start_tcpdump(self, filename, intf = "eth0", port = "port 6633"):
+        ''' 
+        Runs tpdump on an intferface and saves the file
+        intf can be specified, or the default eth0 is used
+        '''
+        try:
+            self.handle.sendline("")
+            self.handle.sendline("sudo tcpdump -n -i "+ intf + " " + port + " -w " + filename.strip() + "  &")
+            self.handle.sendline("")
+            self.handle.sendline("")
+            i=self.handle.expect(['No\ssuch\device','listening\son',pexpect.TIMEOUT,"\$"],timeout=10)
+            main.log.warn(self.handle.before + self.handle.after)
+            if i == 0:
+                main.log.error(self.name + ": tcpdump - No such device exists. tcpdump attempted on: " + intf)
+                return main.FALSE
+            elif i == 1:
+                main.log.info(self.name + ": tcpdump started on " + intf)
+                return main.TRUE
+            elif i == 2:
+                main.log.error(self.name + ": tcpdump command timed out! Check interface name, given interface was: " + intf)
+                return main.FALSE
+            elif i ==3: 
+                main.log.info(self.name +": " +  self.handle.before)
+                return main.TRUE
+            else:
+                main.log.error(self.name + ": tcpdump - unexpected response")
+            return main.FALSE
+        except pexpect.EOF:
+            main.log.error(self.name + ": EOF exception found")
+            main.log.error(self.name + ":     " + self.handle.before)
+            main.cleanup()
+            main.exit()
+        except:
+            main.log.info(self.name + ":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::")
+            main.log.error( traceback.print_exc() )
+            main.log.info(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::")
+            main.cleanup()
+            main.exit()
+
+    def stop_tcpdump(self):
+        "pkills tcpdump"
+        try:
+            self.handle.sendline("sudo pkill tcpdump")
+            self.handle.sendline("")
+            self.handle.sendline("")
+            self.handle.expect("\$")
+        except pexpect.EOF:
+            main.log.error(self.name + ": EOF exception found")
+            main.log.error(self.name + ":     " + self.handle.before)
+            main.cleanup()
+            main.exit()
+        except:
+            main.log.info(self.name + ":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::")
+            main.log.error( traceback.print_exc() )
+            main.log.info(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::")
+            main.cleanup()
+            main.exit()
+
+
+
 
     def disconnect(self):
         '''