added rack attribute as an optional parameter
diff --git a/library/cassandra_hosts.py b/library/cassandra_hosts.py index 7cc824b..6e2a80f 100644 --- a/library/cassandra_hosts.py +++ b/library/cassandra_hosts.py
@@ -36,12 +36,19 @@ private_ip = hostvar[LOCAL_ADDRESS] else: private_ip = NOT_DEFINED + if 'rack' in hostvar: rack = hostvar['rack'] else: rack = 1 + + if 'region' in hostvar: + region = hostvar['region'] + else: + region = None + cassandra_ip_map = cassandra_ip_mappings[cassandra_group_name] - cassandra_ip_map[ds_ip] = { 'private_ip': private_ip, 'rack': rack} + cassandra_ip_map[ds_ip] = { 'private_ip': private_ip, 'rack': rack, 'region': region} return cassandra_ip_mappings @@ -49,7 +56,13 @@ for cassandra_group_name in cassandra_groups: 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'] + ":" + region_parts[1] + ',' + str(cassandra_groups[cassandra_group_name][ds_ip]['rack']) + rack = cassandra_groups[cassandra_group_name][ds_ip]['rack'] + if cassandra_groups[cassandra_group_name][ds_ip]['region'] is None: + region = region_parts[1] + else: + region = cassandra_groups[cassandra_group_name][ds_ip]['region'] + + cassandra_groups[cassandra_group_name][ds_ip]['private_ip'] = cassandra_groups[cassandra_group_name][ds_ip]['private_ip'] + ":" + str(region) + ',' + str(rack) return cassandra_groups