def _parse_hosts_inventory(self, inventory_path): """ Read all the available hosts inventory information into one big list and parse it. """ hosts_contents = [] if os.path.isdir(inventory_path): self.log.debug( "Inventory path {} is a dir. Looking for inventory files in that dir." .format(inventory_path)) for fname in os.listdir(inventory_path): # Skip .git folder if fname == '.git': continue path = os.path.join(inventory_path, fname) if os.path.isdir(path): continue with codecs.open(path, 'r', encoding='utf8') as f: hosts_contents += f.readlines() else: self.log.debug( "Inventory path {} is a file. Reading as inventory.".format( inventory_path)) with codecs.open(inventory_path, 'r', encoding='utf8') as f: hosts_contents = f.readlines() # Parse inventory and apply it to the hosts hosts_parser = parser.HostsParser(hosts_contents) for hostname, key_values in hosts_parser.hosts.items(): self.update_host(hostname, key_values)
def _parse_hosts_inventory(self, inventory_path): """ Read all the available hosts inventory information into one big list and parse it. """ hosts_contents = [] if os.path.isdir(inventory_path): for fname in os.listdir(inventory_path): path = os.path.join(inventory_path, fname) if os.path.isdir(path): continue with codecs.open(path, 'r', encoding='utf8') as f: hosts_contents += f.readlines() else: with codecs.open(inventory_path, 'r', encoding='utf8') as f: hosts_contents = f.readlines() # Parse inventory and apply it to the hosts hosts_parser = parser.HostsParser(hosts_contents) for hostname, key_values in hosts_parser.hosts.items(): self.update_host(hostname, key_values)