diff --git a/tools/test/bin/onos-gen-partitions b/tools/test/bin/onos-gen-partitions
index f7ae14d..e69bcc1 100755
--- a/tools/test/bin/onos-gen-partitions
+++ b/tools/test/bin/onos-gen-partitions
@@ -29,13 +29,7 @@
     ips = [ environ[v] for v in get_OC_vars() ]
   return [ node(v) for v in ips ]
 
-def generate_base_partition(nodes):
-  return {
-            'id': 0,
-            'members': nodes
-         }
-
-def generate_extended_partitions(nodes, k):
+def generate_partitions(nodes, k):
   l = deque(nodes)
   perms = []
   for i in range(1, len(nodes)+1):
@@ -49,11 +43,7 @@
 
 if __name__ == '__main__':
   nodes = get_nodes(sys.argv[2:])
-  base_partition = generate_base_partition([v.get('id') for v in nodes])
-  extended_partitions = generate_extended_partitions([v.get('id') for v in nodes], 3)
-  partitions = []
-  partitions.append(base_partition)
-  partitions.extend(extended_partitions)
+  partitions = generate_partitions([v.get('id') for v in nodes], 3)
   m = hashlib.sha256()
   for node in nodes:
     m.update(node['ip'])
