Merging with master (TestON drivers have changed)
Merge branch 'master' of https://github.com/OPENNETWORKINGLAB/ONLabTest
diff --git a/README.md b/README.md
index b29c092..5986719 100644
--- a/README.md
+++ b/README.md
@@ -26,13 +26,47 @@
 ------------
 1. ONOS
 
-2. Mininet
+2. Mininet - Some driver functions rely on a modified version of Mininet. These functions are noted in the mininet driver file. To checkout this branch from your Mininet folder:
 
-3. Install python packages configObj and pexpect. they can be installed as :
+    $ git remote add jhall11 https://github.com/jhall11/mininet.git
 
-     $ sudo pip install configObj
+    $ git fetch jhall11
 
-     $ sudo easy_install pexpect 
+    $ git checkout -b dynamic_topo remotes/jhall11/dynamic_topo
+
+    $ git pull
+
+    Note that you may need to run 'sudo make develop' if your mnexec.c file changed when switching branches.
+
+3. Install python packages configObj and pexpect (Note: pexpect 3.3 has a known bug. We recommend using version 3.2 for now). They can be installed as :
+
+    $ sudo pip install configObj
+
+    $ sudo pip install pexpect==3.2
+
+    $ sudo pip install numpy
+
+4. STS  - This can be installed by:
+
+    $ git clone https://github.com/jhall11/sts.git
+
+5. Linc-OE - Some testcases use this to emulate optical devices
+
+    Requirements:
+
+    1. Erlang R15B, R16B, R17 - if possible please use R17
+
+    2. libpcap-dev package if eth interfaces will be used
+
+    Building and Running:
+
+    $ git clone https://github.com/shivarammysore/LINC-Switch.git linc-oe
+
+    $ cd linc-oe
+
+    $ git checkout tags/oe-0.3
+
+    $ make rel
 
 Configuration
 ------------
@@ -58,7 +92,7 @@
 
 3. Run the test 
 
-    teston> run MininetTest 
+    teston> run PingallExample
 
 The Tests
 -----------------------------------------------
@@ -68,7 +102,7 @@
 
 1. .ospk file
 
-    - This is written in Openspeak, an word based language developed by Paxterra.
+    - This is written in Openspeak, a word based language developed by Paxterra.
 
     - It defines the cases and sequence of events for the test 
 
diff --git a/TestON/bin/unpep8 b/TestON/bin/unpep8
index 090865a..ff911e8 100755
--- a/TestON/bin/unpep8
+++ b/TestON/bin/unpep8
@@ -179,7 +179,7 @@
 def convertFromPep8( program ):
    oldProgram = program
    # Program text transforms
-   # program = reinstateCapWords( program )  # Turning off for now
+   program = reinstateCapWords( program )
    program = fixKeywords( program )
    program = insertExtraSpaces( program )
    # Undo string damage
diff --git a/TestON/drivers/common/cli/emulator/mininetclidriver.py b/TestON/drivers/common/cli/emulator/mininetclidriver.py
index c125fca..10e46a7 100644
--- a/TestON/drivers/common/cli/emulator/mininetclidriver.py
+++ b/TestON/drivers/common/cli/emulator/mininetclidriver.py
@@ -2,7 +2,7 @@
 """
 Created on 26-Oct-2012
 
-author:: Anil Kumar ( anilkumar.s@paxterrasolutions.com )
+author: Anil Kumar ( anilkumar.s@paxterrasolutions.com )
 
 
 TestON is free software: you can redistribute it and/or modify
@@ -19,7 +19,22 @@
 along with TestON.  If not, see <http://www.gnu.org/licenses/>.
 
 
-MininetCliDriver is the basic driver which will handle the Mininet functions"""
+MininetCliDriver is the basic driver which will handle the Mininet functions
+
+Some functions rely on STS module. To install this,
+    git clone https://github.com/jhall11/sts.git
+
+Some functions rely on a modified version of Mininet. These functions
+should all be noted in the comments. To get this MN version run these commands
+from within your Mininet folder:
+    git remote add jhall11 https://github.com/jhall11/mininet.git
+    git fetch jhall11
+    git checkout -b dynamic_topo remotes/jhall11/dynamic_topo
+    git pull
+
+
+    Note that you may need to run 'sudo make develop' if your mnexec.c file
+changed when switching branches."""
 import traceback
 import pexpect
 import re
@@ -892,7 +907,8 @@
     def add_switch( self, sw, **kwargs ):
         """
         adds a switch to the mininet topology
-        NOTE: this uses a custom mn function
+        NOTE: This uses a custom mn function. MN repo should be on
+            dynamic_topo branch
         NOTE: cannot currently specify what type of switch
         required params:
             switchname = name of the new switch as a string
@@ -926,11 +942,12 @@
 
     def del_switch( self, sw ):
         """
-           delete a switch from the mininet topology
-           NOTE: this uses a custom mn function
-           required params:
+        delete a switch from the mininet topology
+        NOTE: This uses a custom mn function. MN repo should be on
+            dynamic_topo branch
+        required params:
             switchname = name of the switch as a string
-           returns: main.FASLE on an error, else main.TRUE"""
+        returns: main.FASLE on an error, else main.TRUE"""
         command = "delswitch " + str( sw )
         try:
             response = self.execute(
@@ -957,7 +974,8 @@
     def add_link( self, node1, node2 ):
         """
            add a link to the mininet topology
-           NOTE: this uses a custom mn function
+           NOTE: This uses a custom mn function. MN repo should be on
+                dynamic_topo branch
            NOTE: cannot currently specify what type of link
            required params:
            node1 = the string node name of the first endpoint of the link
@@ -989,7 +1007,8 @@
     def del_link( self, node1, node2 ):
         """
            delete a link from the mininet topology
-           NOTE: this uses a custom mn function
+           NOTE: This uses a custom mn function. MN repo should be on
+                dynamic_topo branch
            required params:
            node1 = the string node name of the first endpoint of the link
            node2 = the string node name of the second endpoint of the link
@@ -1020,7 +1039,8 @@
     def add_host( self, hostname, **kwargs ):
         """
         Add a host to the mininet topology
-        NOTE: this uses a custom mn function
+        NOTE: This uses a custom mn function. MN repo should be on
+            dynamic_topo branch
         NOTE: cannot currently specify what type of host
         required params:
             hostname = the string hostname
@@ -1058,6 +1078,8 @@
     def del_host( self, hostname ):
         """
            delete a host from the mininet topology
+           NOTE: This uses a custom mn function. MN repo should be on
+               dynamic_topo branch
            NOTE: this uses a custom mn function
            required params:
            hostname = the string hostname
diff --git a/TestON/scripts/Cass_clr.sh b/TestON/scripts/Cass_clr.sh
deleted file mode 100755
index a74ea5d..0000000
--- a/TestON/scripts/Cass_clr.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-
-#1 = testname
-#2 = buildnumber
-
-basename="autoONOS"
-machine1="admin@10.128.100.1"
-machine2="admin@10.128.100.4"
-machine3="admin@10.128.100.5"
-machine4="admin@10.128.100.6"
-logmachine="onos@10.254.1.111"
-
-ssh $machine1 "~/ONOS/start-cassandra.sh stop"
-ssh $machine2 "~/ONOS/start-cassandra.sh stop"
-ssh $machine3 "~/ONOS/start-cassandra.sh stop"
-ssh $machine4 "~/ONOS/start-cassandra.sh stop"
-ssh $machine1 "~/clrCass.sh"
-ssh $machine2 "~/clrCass.sh"
-ssh $machine3 "~/clrCass.sh"
-ssh $machine4 "~/clrCass.sh"
-
-
-
-
-
diff --git a/TestON/scripts/get_reroute_times.py b/TestON/scripts/get_reroute_times.py
deleted file mode 100755
index 4e1f6b8..0000000
--- a/TestON/scripts/get_reroute_times.py
+++ /dev/null
@@ -1,42 +0,0 @@
-#! /usr/bin/env python
-import sys
-import time
-import os
-import re
-import json
-
-
-CONFIG_FILE="/home/admin/ping.h10"
-
- 
-  
-def get_times(pingfile):
-  icmp_reqs = [] 
-  times = []
-  f = open(pingfile)
-  for line in f.readlines():
-    if re.search('64\sbytes', line): 
-      icmp_reqs.append( (line.split()[4]).split('=')[1] )
-  f.close()
-  #print icmp_reqs
-  lastnum = int(icmp_reqs[0]) - 1 
-  for num in icmp_reqs: 
-    if int(num) != (lastnum + 1):
-      times.append(int(num) - lastnum) 
-    lastnum = int(num)
-
-  return times
-
-if __name__ == "__main__":
-  total = 0 
-  count = 0 
-  flow = 1
-  for i in os.popen("ls /tmp/ping.*"):
-    print "Flow %d  " % flow
-    for time in get_times(i.strip("\n")):
-      total = total + time
-      count = count + 1
-      print "  %d" % time     
-    flow = flow + 1
-  print "Average: %d" % (total / count ) 
-