added rack attribute as an optional parameter
diff --git a/library/cassandra_hosts.py b/library/cassandra_hosts.py index 2756d97..81d89b1 100644 --- a/library/cassandra_hosts.py +++ b/library/cassandra_hosts.py
@@ -1,8 +1,6 @@ from ansible.module_utils.basic import * import ast import json -import tempfile -import os GROUPS = 'groups' PUBLIC_ADDRESS = 'public_address' @@ -38,16 +36,20 @@ private_ip = hostvar[LOCAL_ADDRESS] else: private_ip = NOT_DEFINED + if 'rack' in hostvar: + rack = hostvar['rack'] + else: + rack = '1' cassandra_ip_map = cassandra_ip_mappings[cassandra_group_name] - cassandra_ip_map[ds_ip] = { 'private_ip': private_ip } + cassandra_ip_map[ds_ip] = { 'private_ip': private_ip, 'rack': rack} return cassandra_ip_mappings def configure_cassandra_racks(cassandra_groups): for cassandra_group_name in cassandra_groups: - group_name_parts = cassandra_group_name.split('-') + region_parts = cassandra_group_name.split('-') for ds_ip in cassandra_groups[cassandra_group_name]: - cassandra_groups[cassandra_group_name][ds_ip]['private_ip'] = cassandra_groups[cassandra_group_name][ds_ip]['private_ip'] + ":" + group_name_parts[1] + ',1' + cassandra_groups[cassandra_group_name][ds_ip]['private_ip'] = cassandra_groups[cassandra_group_name][ds_ip]['private_ip'] + ":" + region_parts[1] + ',' + region_parts[1] + cassandra_groups[cassandra_group_name][ds_ip]['rack'] return cassandra_groups @@ -87,12 +89,6 @@ inventory_hostname = module.params['inventory_hostname'] hostvars = module.params['hostvars'] - # json_file = '/tmp/hostvars_params.json' - # json_file = tempfile.mkstemp(suffix='json', text=True) - # with open(json_file, 'w') as hostvars_file: - # hostvars_file.write(hostvars) - - # hostvars = hostvars.decode('base64') try: hostvars = ast.literal_eval(hostvars) except SyntaxError as e: @@ -101,8 +97,6 @@ hostvars = hostvars.replace(": u'", ": '") hostvars = hostvars.replace("[u'", "['") hostvars = hostvars.replace("'", "\"") - # with open(json_file, 'w') as file: - # file.write(hostvars) try: hostvars = ast.literal_eval(hostvars) @@ -118,8 +112,6 @@ return hostvars = json.dumps(hostvars) - # with open(json_file, 'w') as hostvars_file: - # hostvars_file.write(hostvars) try: hostvars = json.loads(hostvars)