diff --git a/cluster-mgmt/bin/check_status_failover.py b/cluster-mgmt/bin/check_status_failover.py
new file mode 100755
index 0000000..17baa01
--- /dev/null
+++ b/cluster-mgmt/bin/check_status_failover.py
@@ -0,0 +1,13 @@
+#! /usr/bin/env python
+import json
+import os
+from check_status import *
+
+cluster_basename=os.environ.get("ONOS_CLUSTER_BASENAME")
+nr_nodes=os.environ.get("ONOS_CLUSTER_NR_NODES")
+
+if __name__ == "__main__":
+  print "%s" % check_switch()[1]
+  print "%s" % check_link()[1]
+  print "%s" % check_controllers(8)[1]
+  print "%s" % check_switch_all(8)[1]
diff --git a/cluster-mgmt/bin/cho-failover.py b/cluster-mgmt/bin/cho-failover.py
new file mode 100755
index 0000000..ad34389
--- /dev/null
+++ b/cluster-mgmt/bin/cho-failover.py
@@ -0,0 +1,127 @@
+#! /usr/bin/env python
+import json
+import sys
+import os
+import re
+from check_status import *
+import time
+
+flowdef="flowdef_8node_252.txt"
+basename="onosdevz"
+operation=["sw3-eth4 down","sw4-eth4 down","sw4-eth3 down","sw3-eth4 up","sw1-eth2 down","sw4-eth4 up","sw4-eth3 up","sw1-eth2 up"]
+
+def check_by_pingall():
+  buf = ""
+  cmd = "dsh -w %s1 \"cd ONOS/web; ./pingallm.py %s\"" % (basename, flowdef)
+  result = os.popen(cmd).read()
+  buf += result
+  
+  if re.search("fail 0", result):
+    return (0, buf)
+  else:
+    return (1, buf)
+
+def link_change_core(op):
+  cmd = "dsh -w %s1 \"sudo ifconfig %s\"" % (basename, op)
+  os.popen(cmd)
+  print cmd
+
+
+def check_flow_nmap():
+  buf = "" 
+  buf += os.popen("date").read()
+  print "dump all flows from network map"
+  cmd  = "dsh -w %s1 \"cd ONOS/web; ./get_flow.py all\"" % cluster_basename
+  buf += os.popen(cmd).read()
+  return (0, buf)
+
+def check_flow_raw():
+  buf = "" 
+  print "dump all flows from switches"
+  cmd  = "dsh \"cd ONOS/scripts; ./showflow.sh\""
+  buf += os.popen(cmd).read()
+  return (0, buf)
+
+def dump_json(url, filename):
+  f = open(filename, 'w')
+  buf = "" 
+  command = "curl -s %s" % (url)
+  result = os.popen(command).read()
+  buf += json.dumps(json.loads(result), sort_keys = True, indent = 2)
+  f.write(buf)
+  f.close()
+
+def check_rest(cycle, n):
+  url="http://%s:%s/wm/core/topology/switches/all/json" % (RestIP, RestPort)
+  filename  = "rest-sw-log.%d.%d.log" % (cycle, n)
+  dump_json(url, filename)
+
+  filename  = "rest-link-log.%d.%d.log" % (cycle, n)
+  url = "http://%s:%s/wm/core/topology/links/json" % (RestIP, RestPort)
+  dump_json(url, filename)
+
+  url = "http://%s:%s/wm/registry/switches/json" % (RestIP, RestPort)
+  filename  = "rest-reg-sw-log.%d.%d.log" % (cycle, n)
+  dump_json(url, filename)
+
+  url = "http://%s:%s/wm/registry/controllers/json" % (RestIP, RestPort)
+  filename  = "rest-reg-ctrl-log.%d.%d.log" % (cycle, n)
+  dump_json(url, filename)
+
+  url = "http://%s:%s/wm/flow/getsummary/0/0/json" % (RestIP, RestPort)
+  filename  = "rest-flow-log.%d.%d.log" % (cycle, n)
+  dump_json(url, filename)
+
+
+def log(cycle, n, nr_ctrl):
+  error = "error-log.%d.%d.log" % (cycle, n)
+  nmapflow  = "nmap-flow-log.%d.%d.log" % (cycle, n)
+  rawflow  = "raw-flow-log.%d.%d.log" % (cycle, n)
+
+  f = open(error, 'w')
+  f.write(result)
+  f.write(check_switch()[1])
+  f.write(check_link()[1])
+  f.write(check_switch_all(nr_ctrl)[1])
+  f.write(check_controllers(nr_ctrl)[1])
+  f.close()
+
+  f = open(nmapflow,'w')
+  f.write(check_flow_nmap()[1])
+  f.close()
+
+  f = open(rawflow,'w')
+  f.write(check_flow_raw()[1])
+  f.close()
+  check_rest(cycle,n)
+
+
+opration=['switch all', 'onos stop 8', 'onos stop 7', 'onos stop 6', 'onos stop 5', 'onos start 5;onos start 6;onos start 7;onos start 8', 'switch local']  
+nr_controllers=[8, 7, 6, 5, 4, 8, 8]
+
+if __name__ == "__main__":
+  print "%s" % check_switch()[1]
+  print "%s" % check_link()[1]
+  print "%s" % check_controllers(8)[1]
+  (code, result) = check_by_pingall()
+  print result
+  k = raw_input('hit any key>')
+
+  for cycle in range(1000):
+    for n, op in enumerate(operation):
+      print "==== Cycle %d operation %d ====" % (cycle, n)
+      print op 
+      os.popen(op)
+      print "wait 30 sec"
+      time.sleep(30)
+
+      print "check by pingall"
+      (code, result) = check_by_pingall()
+      if code == 0:
+        print "ping success %s" % (result)
+      else:
+        print "pingall failed (%d, %d). Collecting logs" % (cycle, n)
+        log(cycle, n, nr_controllers[n]) 
+
+
+
diff --git a/cluster-mgmt/bin/cho-link-failure.py b/cluster-mgmt/bin/cho-link-failure.py
new file mode 100755
index 0000000..7c9740e
--- /dev/null
+++ b/cluster-mgmt/bin/cho-link-failure.py
@@ -0,0 +1,116 @@
+#! /usr/bin/env python
+import json
+import sys
+import os
+import re
+from check_status import *
+import time
+
+flowdef="flowdef_8node_252.txt"
+basename="onosdevz"
+operation=["sw3-eth4 down","sw4-eth4 down","sw4-eth3 down","sw3-eth4 up","sw1-eth2 down","sw4-eth4 up","sw4-eth3 up","sw1-eth2 up"]
+
+def check_by_pingall():
+  buf = ""
+  cmd = "dsh -w %s1 \"cd ONOS/web; ./pingallm.py %s\"" % (basename, flowdef)
+  result = os.popen(cmd).read()
+  buf += result
+  
+  if re.search("fail 0", result):
+    return (0, buf)
+  else:
+    return (1, buf)
+
+def link_change_core(op):
+  cmd = "dsh -w %s1 \"sudo ifconfig %s\"" % (basename, op)
+  os.popen(cmd)
+  print cmd
+
+def check_flow_nmap():
+  buf = "" 
+  buf += os.popen("date").read()
+  print "dump all flows from network map"
+  cmd  = "dsh -w %s1 \"cd ONOS/web; ./get_flow.py all\"" % cluster_basename
+  buf += os.popen(cmd).read()
+  return (0, buf)
+
+def check_flow_raw():
+  buf = "" 
+  print "dump all flows from switches"
+  cmd  = "dsh \"cd ONOS/scripts; ./showflow.sh\""
+  buf += os.popen(cmd).read()
+  return (0, buf)
+
+def dump_json(url, filename):
+  f = open(filename, 'w')
+  buf = "" 
+  command = "curl -s %s" % (url)
+  result = os.popen(command).read()
+  buf += json.dumps(json.loads(result), sort_keys = True, indent = 2)
+  f.write(buf)
+  f.close()
+
+def check_rest(cycle, n):
+  url="http://%s:%s/wm/core/topology/switches/all/json" % (RestIP, RestPort)
+  filename  = "rest-sw-log.%d.%d.log" % (cycle, n)
+  dump_json(url, filename)
+
+  filename  = "rest-link-log.%d.%d.log" % (cycle, n)
+  url = "http://%s:%s/wm/core/topology/links/json" % (RestIP, RestPort)
+  dump_json(url, filename)
+
+  url = "http://%s:%s/wm/registry/switches/json" % (RestIP, RestPort)
+  filename  = "rest-reg-sw-log.%d.%d.log" % (cycle, n)
+  dump_json(url, filename)
+
+  url = "http://%s:%s/wm/registry/controllers/json" % (RestIP, RestPort)
+  filename  = "rest-reg-ctrl-log.%d.%d.log" % (cycle, n)
+  dump_json(url, filename)
+
+  url = "http://%s:%s/wm/flow/getsummary/0/0/json" % (RestIP, RestPort)
+  filename  = "rest-flow-log.%d.%d.log" % (cycle, n)
+  dump_json(url, filename)
+
+if __name__ == "__main__":
+  print "%s" % check_switch()[1]
+  print "%s" % check_link()[1]
+  print "%s" % check_controllers(8)[1]
+  (code, result) = check_by_pingall()
+  print result
+  k = raw_input('hit any key>')
+
+
+  for cycle in range(1000):
+    for n, op in enumerate(operation):
+      print "==== Cycle %d operation %d ====" % (cycle, n)
+      link_change_core(op)
+      print "wait 30 sec"
+      time.sleep(30)
+      print "check by pingall"
+      (code, result) = check_by_pingall()
+      if code == 0:
+        print "ping success %s" % (result)
+      else:
+        print "pingall failed (%d, %d). Collecting logs" % (cycle, n)
+        error = "error-log.%d.%d.log" % (cycle, n)
+        nmapflow  = "nmap-flow-log.%d.%d.log" % (cycle, n)
+        rawflow  = "raw-flow-log.%d.%d.log" % (cycle, n)
+
+        f = open(error, 'w')
+        f.write(result)
+        f.write(check_switch()[1])
+        f.write(check_link()[1])
+        f.write(check_switch_local()[1])
+        f.write(check_controllers(8)[1])
+        f.close()
+
+        f = open(nmapflow,'w')
+        f.write(check_flow_nmap()[1])
+        f.close()
+
+        f = open(rawflow,'w')
+        f.write(check_flow_raw()[1])
+        f.close()
+        check_rest(cycle,n)
+
+    
diff --git a/cluster-mgmt/bin/cho-link-failure.sh b/cluster-mgmt/bin/cho-link-failure.sh
new file mode 100755
index 0000000..6c5f128
--- /dev/null
+++ b/cluster-mgmt/bin/cho-link-failure.sh
@@ -0,0 +1,55 @@
+#! /bin/sh
+basename=$ONOS_CLUSTER_BASENAME
+wait=10
+
+fdef="flowdef_8node_42.txt"
+
+function log()
+{
+    date > error.$1.$2.log
+    check_status.py >> error.$1.$2.log
+    dsh -w ${basename}1 "cd ONOS/web; ./get_flow.py all" >> error.$1.$2.log
+    dsh "cd ONOS/scripts; ./showflow.sh"             >> error.$1.$2.log
+}
+
+echo "all links up"
+dsh -w ${basename}1 "cd ONOS/scripts; ./all-linkup.sh"
+echo "clean up flow"
+dsh -w ${basename}1 "cd ONOS/web; ./delete_flow.py 1 100"
+dsh -w ${basename}1 "cd ONOS/web; ./clear_flow.py 1 100"
+sleep 1
+dsh -w ${basename}1 "cd ONOS/web; ./get_flow.py all"
+dsh "cd ONOS/scripts; ./delflow.sh"
+echo "checkup status"
+check_status.py
+read -p "hit anykey> "
+
+echo "install pre-set flows"
+dsh -w ${basename}1 "cd ONOS/web; ./add_flow.py -m onos -f $fdef"
+sleep 6
+echo "check"
+dsh -w ${basename}1 "cd ONOS/web; ./pingall.py $fdef"
+
+#ports=`dsh -w ${basename}1 "cd ONOS/scripts; ./listports.sh" | awk '{print $2}' |grep -v tap`
+operation=("sw3-eth3 down" "sw4-eth4 down" "sw4-eth3 down" "sw3-eth3 up" "sw1-eth2 down" "sw4-eth4 up" "sw4-eth3 up" "sw1-eth2 up")
+
+((n=0))
+while [ 1 ] ; do
+  for (( i = 0; i< ${#operation[@]}; i ++)); do
+    echo "Test $n-$i"
+    p=`echo ${operation[$i]}`
+    echo "operation: $p"
+#  read -p "hit anykey> "
+    dsh -w ${basename}1 "sudo ifconfig $p"
+    echo "wait $wait sec"
+    sleep $wait 
+    result=`dsh -w ${basename}1 "cd ONOS/web; ./pingall.py $fdef"`
+    echo $result
+    nr_fail=`echo $result |grep fail | wc -l`
+    if [ $nr_fail -gt 0 ]; then
+      log $n $i
+    fi
+  done
+  ((n++))
+done
+
diff --git a/cluster-mgmt/bin/start.sh b/cluster-mgmt/bin/start.sh
index 23fcde7..e58e802 100755
--- a/cluster-mgmt/bin/start.sh
+++ b/cluster-mgmt/bin/start.sh
@@ -16,4 +16,5 @@
   exit
 fi
 onos start
-dsh -g $basename 'cd ONOS; ./ctrl-local.sh'
+switch local
+#dsh -g $basename 'cd ONOS; ./ctrl-local.sh'
