From 262b35e7d34647d6269877c8bedabefb03bfdab7 Mon Sep 17 00:00:00 2001 From: Michael DeHaan Date: Tue, 8 May 2012 00:27:37 -0400 Subject: [PATCH] override-hosts is gone since we can't load inventory for hosts (so it's not an whitelist), but we can still support hosts outside of inventory if you pass in an array of hosts. Ports are supported, but not much other info. --- lib/ansible/inventory.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/ansible/inventory.py b/lib/ansible/inventory.py index 788ae9a2ab..c796b9c9ef 100644 --- a/lib/ansible/inventory.py +++ b/lib/ansible/inventory.py @@ -37,9 +37,8 @@ class Inventory(object): def __init__(self, host_list=C.DEFAULT_HOST_LIST): - # the host file file or script path - if type(host_list) not in [ str, unicode ]: - raise Exception("host list must be a path") + # the host file file, or script path, or list of hosts + # if a list, inventory data will NOT be loaded self.host_list = host_list # the inventory object holds a list of groups @@ -51,7 +50,16 @@ class Inventory(object): # whether the inventory file is a script self._is_script = False - if os.access(host_list, os.X_OK): + if type(host_list) == list: + all = Group('all') + self.groups = [ all ] + for x in host_list: + if x.find(":") != -1: + tokens = x.split(":",1) + all.add_host(Host(tokens[0], tokens[1])) + else: + all.add_host(Host(x)) + elif os.access(host_list, os.X_OK): self._is_script = True self.parser = InventoryScript(filename=host_list) self.groups = self.parser.groups.values()