diff options
Diffstat (limited to 'xci/playbooks/dynamic_inventory.py')
-rwxr-xr-x | xci/playbooks/dynamic_inventory.py | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/xci/playbooks/dynamic_inventory.py b/xci/playbooks/dynamic_inventory.py index 7f60f94e..ed63141c 100755 --- a/xci/playbooks/dynamic_inventory.py +++ b/xci/playbooks/dynamic_inventory.py @@ -21,6 +21,12 @@ import json class XCIInventory(object): + """ + + Generates the ansible inventory based on the idf and pdf files provided + when executing the deployment script + + """ def __init__(self): super(XCIInventory, self).__init__() self.inventory = {} @@ -47,7 +53,7 @@ class XCIInventory(object): self.opnfv_networks['opnfv']['public'] = {} self.opnfv_networks['opnfv']['public']['address'] = '192.168.122.2/24' self.opnfv_networks['opnfv']['public']['gateway'] = '192.168.122.1' - self.opnfv_networks['opnfv']['public']['dns'] = '192.168.122.1' + self.opnfv_networks['opnfv']['public']['dns'] = ['192.168.122.1'] self.opnfv_networks['opnfv']['private'] = {} self.opnfv_networks['opnfv']['private']['address'] = '172.29.240.10/22' self.opnfv_networks['opnfv']['storage'] = {} @@ -121,8 +127,8 @@ class XCIInventory(object): for role in idf['xci']['installers'][self.installer]['nodes_roles'][host]: self.add_to_group(role, hostname) - pdf_host_info = filter(lambda x: x['name'] == host, pdf['nodes'])[0] - native_vlan_if = filter(lambda x: x['vlan'] == 'native', pdf_host_info['interfaces']) + pdf_host_info = list(filter(lambda x: x['name'] == host, pdf['nodes']))[0] + native_vlan_if = list(filter(lambda x: x['vlan'] == 'native', pdf_host_info['interfaces'])) self.add_hostvar(hostname, 'ansible_host', native_vlan_if[0]['address']) self.add_hostvar(hostname, 'ip', native_vlan_if[0]['address']) host_networks[hostname] = {} @@ -134,7 +140,9 @@ class XCIInventory(object): if 'gateway' in ndata.keys(): host_networks[hostname][network]['gateway'] = str(ndata['gateway']) + "/" + str(ndata['mask']) if 'dns' in ndata.keys(): - host_networks[hostname][network]['dns'] = str(ndata['dns']) + host_networks[hostname][network]['dns'] = [] + for d in ndata['dns']: + host_networks[hostname][network]['dns'].append(str(d)) # Get also vlan and mac_address from pdf host_networks[hostname][network]['mac_address'] = str(pdf_host_info['interfaces'][int(network_interface_num)]['mac_address']) @@ -165,7 +173,8 @@ class XCIInventory(object): # Now add the additional groups for parent in idf['xci']['installers'][self.installer]['groups'].keys(): - map(lambda x: self.add_group(x, parent), idf['xci']['installers'][self.installer]['groups'][parent]) + for host in idf['xci']['installers'][self.installer]['groups'][parent]: + self.add_group(host, parent) # Read additional group variables self.read_additional_group_vars() |