From ca5f52b825b0aa986cfb87b5345a9f7925ba1b40 Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Sun, 3 Feb 2013 23:19:37 -0500 Subject: [PATCH] now missing hosts file gives nice message and no traceback Signed-off-by: Brian Coca --- lib/ansible/inventory/__init__.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/ansible/inventory/__init__.py b/lib/ansible/inventory/__init__.py index 076bc708768..1dbf6cc5ff2 100644 --- a/lib/ansible/inventory/__init__.py +++ b/lib/ansible/inventory/__init__.py @@ -80,17 +80,20 @@ class Inventory(object): all.add_host(Host(tokens[0], tokens[1])) else: all.add_host(Host(x)) - elif utils.is_executable(host_list): - self._is_script = True - self.parser = InventoryScript(filename=host_list) - self.groups = self.parser.groups.values() - else: - data = file(host_list).read() - if not data.startswith("---"): - self.parser = InventoryParser(filename=host_list) + elif os.path.exists(host_list): + if utils.is_executable(host_list): + self._is_script = True + self.parser = InventoryScript(filename=host_list) self.groups = self.parser.groups.values() else: - raise errors.AnsibleError("YAML inventory support is deprecated in 0.6 and removed in 0.7, see the migration script in examples/scripts in the git checkout") + data = file(host_list).read() + if not data.startswith("---"): + self.parser = InventoryParser(filename=host_list) + self.groups = self.parser.groups.values() + else: + raise errors.AnsibleError("YAML inventory support is deprecated in 0.6 and removed in 0.7, see the migration script in examples/scripts in the git checkout") + else: + raise errors.AnsibleError("No valid hosts inventory file found") def _match(self, str, pattern_str): if pattern_str.startswith('~'):