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