diff --git a/src/test/setup/onos-config/cluster.json b/src/test/setup/onos-config/cluster.json
new file mode 100644
index 0000000..72ae4c0
--- /dev/null
+++ b/src/test/setup/onos-config/cluster.json
@@ -0,0 +1,18 @@
+{
+    "nodes": [
+        {
+            "ip": "172.17.0.2",
+            "id": "172.17.0.2",
+            "port": 9876
+        }
+    ],
+    "name": 4220150786,
+    "partitions": [
+        {
+            "id": 1,
+            "members": [
+                "172.17.0.2"
+            ]
+        }
+    ]
+}
diff --git a/src/test/setup/onos-gen-partitions b/src/test/setup/onos-gen-partitions
new file mode 100755
index 0000000..8221710
--- /dev/null
+++ b/src/test/setup/onos-gen-partitions
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+"""
+  Generate the partitions json file from the $OC* environment variables
+
+  Usage: onos-gen-partitions [output file] [node_ip ...]
+  If output file is not provided, the json is written to stdout.
+"""
+
+from os import environ
+from collections import deque, OrderedDict
+import re
+import json
+import sys
+import hashlib
+
+convert = lambda text: int(text) if text.isdigit() else text.lower()
+alphanum_key = lambda key: [convert(c) for c in re.split('([0-9]+)', key)]
+
+def get_OC_vars():
+  vars = []
+  for var in environ:
+    if re.match(r"OC[0-9]+", var):
+      vars.append(var)
+  return sorted(vars, key=alphanum_key)
+
+def get_nodes(ips=None, port=9876):
+  node = lambda k: { 'id': k, 'ip': k, 'port': port }
+  if not ips:
+    ips = [ environ[v] for v in get_OC_vars() ]
+  return [ node(v) for v in ips ]
+
+def generate_partitions(nodes, k):
+  l = deque(nodes)
+  perms = []
+  for i in range(1, len(nodes)+1):
+    part = {
+             'id': i,
+             'members': list(l)[:k]
+           }
+    perms.append(part)
+    l.rotate(-1)
+  return perms
+
+if __name__ == '__main__':
+  nodes = get_nodes(sys.argv[2:])
+  partitions = generate_partitions([v.get('id') for v in nodes], 3)
+  m = hashlib.sha256()
+  for node in nodes:
+    m.update(node['ip'])
+  name = int(m.hexdigest()[:8], base=16) # 32-bit int based on SHA256 digest
+  data = {
+           'name': name,
+           'nodes': nodes,
+           'partitions': partitions
+         }
+  output = json.dumps(data, indent=4)
+
+  if len(sys.argv) >= 2 and sys.argv[1] != '-':
+    filename = sys.argv[1]
+    with open(filename, 'w') as f:
+      f.write(output)
+  else:
+    print output
