diff options
Diffstat (limited to 'framework/src/onos/tools/test/bin/onos-gen-partitions')
-rwxr-xr-x | framework/src/onos/tools/test/bin/onos-gen-partitions | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/framework/src/onos/tools/test/bin/onos-gen-partitions b/framework/src/onos/tools/test/bin/onos-gen-partitions deleted file mode 100755 index 5da0807d..00000000 --- a/framework/src/onos/tools/test/bin/onos-gen-partitions +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env python -""" - Generate the partitions json file from the $OC* environment variables - - Usage: onos-gen-partitions [output file] - 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(vars, port=9876): - node = lambda k: { 'id': k, 'ip': k, 'port': port } - return [ node(environ[v]) for v in vars ] - -def generate_permutations(nodes, k): - l = deque(nodes) - perms = [] - for i in range(1, len(nodes)+1): - part = { - 'name': 'p%d' % i, - 'members': list(l)[:k] - } - perms.append(part) - l.rotate(-1) - return perms - -if __name__ == '__main__': - vars = get_OC_vars() - nodes = get_nodes(vars) - partitions = generate_permutations([v.get('id') for v in nodes], 3) - name = 0 - for node in nodes: - name = name ^ hash(node['ip']) - data = { - 'name': name, - 'nodes': nodes, - 'partitions': partitions - } - output = json.dumps(data, indent=4) - - if len(sys.argv) == 2: - filename = sys.argv[1] - with open(filename, 'w') as f: - f.write(output) - else: - print output |