in ansible/library/azure_host_role_map.py [0:0]
def main():
fields = {
"hosts": {"required": True, "type": "list"},
"vars_list": {"required": True, "type": "dict"},
"cluster_name": {"required": True, "type": "str"},
}
module = AnsibleModule(argument_spec=fields)
vars_list = module.params["vars_list"]
hosts = module.params["hosts"]
cluster_name = module.params["cluster_name"]
mp = {x["name_suffix"]: x["roles"] for x in vars_list["vars_list"]}
ns_mp = {
cluster_name + "-" + x["name_suffix"]: x.get("nameservice_id", "")
for x in vars_list["vars_list"]
}
hd = defaultdict(list)
for host in hosts:
hd[host["key"]].append(host["value"])
label_tuples = {
cluster_name + "-" + k: (hd[cluster_name + "-" + k], v)
for k, v in mp.items()
}
hdfs_ns_tuples = {h: ns_mp[k] for k, v in hd.items() for h in v}
label_lists = [label(*v) for k, v in label_tuples.items()]
result_string = str(stringify(label_lists, hdfs_ns_tuples))
vmss_file = open(join(deploy_path, "conf/azure_vmss_to_hosts.conf"), "w")
for key in hd:
vmss_file.write("[" + key.replace("-", "_") + "]\n")
for value in hd[key]:
vmss_file.write(value)
vmss_file.write("\n")
vmss_file.write("\n")
vmss_file.write("\n")
vmss_file.close()
module.exit_json(result=result_string)