--- /dev/null
+#!/usr/bin/python
+"""
+Controller Isolation Tool
+Author: Phillip Shea
+Updated: 2015-May-07
+
+This tool isolates an indicated controller from the cluster. The tool takes
+a single integer argument corresponding to the number of a controller
+in a json file's ordered list of controllers. This is the controller to
+be isolated.
+
+A file named 'cluster.json' containing a list of the IP addresses and
+credentials of the controllers is required. It resides in the same
+directory as monitor.py.
+
+The file should look like this:
+
+ {
+ "cluster": {
+ "controllers": [
+ "172.17.10.93",
+ "172.17.10.94",
+ "172.17.10.95"
+ ],
+ "user": "username",
+ "pass": "password"
+ }
+ }
+
+Usage:python isolate.py [controller to be isolated]
+"""
+
+import sys
+sys.path.append('../../../csit/libraries')
+import UtilLibrary
+import json
+
+try:
+ with open('cluster.json') as cluster_file:
+ data = json.load(cluster_file)
+except:
+ print str(sys.exc_info())
+ print "unable to open the file cluster.json"
+ exit(1)
+try:
+ cluster_list = data["cluster"]["controllers"]
+ user_name = data["cluster"]["user"]
+ user_pass = data["cluster"]["pass"]
+except:
+ print str(sys.exc_info())
+ print 'Error reading the file cluster.json'
+ exit(1)
+try:
+ isolate = int(sys.argv[1])
+except:
+ print 'You must specify the number (e.g. 1, 2, 3) of the controller to isolate.'
+ exit(1)
+
+print "isolating controller " + str(isolate)
+
+print UtilLibrary.isolate_controller(cluster_list, user_name, user_pass, isolate)