fixed confusing reporting when no hosts are matched

it was hitting 'empty inventory' warning.
This commit is contained in:
Brian Coca 2016-05-31 12:15:19 -04:00
parent ff9641a6a1
commit 71350e022a
2 changed files with 11 additions and 5 deletions

View file

@ -130,7 +130,7 @@ class AdHocCLI(CLI):
variable_manager.set_inventory(inventory)
no_hosts = False
if len(inventory.list_hosts(pattern)) == 0:
if len(inventory.list_hosts()) == 0:
# Empty inventory
display.warning("provided hosts list is empty, only localhost is available")
no_hosts = True
@ -139,7 +139,7 @@ class AdHocCLI(CLI):
hosts = inventory.list_hosts(pattern)
if len(hosts) == 0 and no_hosts is False:
# Invalid limit
raise AnsibleError("Specified --limit does not match any hosts")
raise AnsibleError("Specified hosts and/or --limit does not match any hosts")
if self.options.listhosts:
display.display(' hosts (%d):' % len(hosts))

View file

@ -38,7 +38,7 @@ import sys
from ansible import constants as C
from ansible.cli import CLI
from ansible.errors import AnsibleError, AnsibleOptionsError
from ansible.errors import AnsibleError
from ansible.executor.task_queue_manager import TaskQueueManager
from ansible.inventory import Inventory
@ -419,13 +419,19 @@ class ConsoleCLI(CLI, cmd.Cmd):
self.inventory = Inventory(loader=self.loader, variable_manager=self.variable_manager, host_list=self.options.inventory)
self.variable_manager.set_inventory(self.inventory)
if len(self.inventory.list_hosts(self.pattern)) == 0:
no_hosts = False
if len(self.inventory.list_hosts()) == 0:
# Empty inventory
no_hosts = True
display.warning("provided hosts list is empty, only localhost is available")
self.inventory.subset(self.options.subset)
hosts = self.inventory.list_hosts(self.pattern)
if len(hosts) == 0 and not no_hosts:
raise AnsibleError("Specified hosts and/or --limit does not match any hosts")
self.groups = self.inventory.list_groups()
self.hosts = [x.name for x in self.inventory.list_hosts(self.pattern)]
self.hosts = [x.name for x in hosts]
# This hack is to work around readline issues on a mac:
# http://stackoverflow.com/a/7116997/541202