diff --git a/lib/ansible/inventory/__init__.py b/lib/ansible/inventory/__init__.py index 076bc70876..1dbf6cc5ff 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('~'):