summaryrefslogtreecommitdiff
path: root/lib/ansible/cli
diff options
context:
space:
mode:
authorBrian Coca <brian.coca+git@gmail.com>2016-05-31 12:15:19 -0400
committerBrian Coca <brian.coca+git@gmail.com>2016-05-31 12:16:06 -0400
commit4c3c294a030d7b429817f662e48efba92dfd34db (patch)
treefa020c65f17e6e599622405f1af823fb76878f77 /lib/ansible/cli
parent01decf4166ea8fe233b9a728ad4e82a0dbe10cab (diff)
downloadansible-4c3c294a030d7b429817f662e48efba92dfd34db.tar.gz
fixed confusing reporting when no hosts are matched
it was hitting 'empty inventory' warning.
Diffstat (limited to 'lib/ansible/cli')
-rw-r--r--lib/ansible/cli/adhoc.py4
-rw-r--r--lib/ansible/cli/console.py12
2 files changed, 11 insertions, 5 deletions
diff --git a/lib/ansible/cli/adhoc.py b/lib/ansible/cli/adhoc.py
index becb43e581..d4f917f2c2 100644
--- a/lib/ansible/cli/adhoc.py
+++ b/lib/ansible/cli/adhoc.py
@@ -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))
diff --git a/lib/ansible/cli/console.py b/lib/ansible/cli/console.py
index 5c844e6094..ec35a8eff3 100644
--- a/lib/ansible/cli/console.py
+++ b/lib/ansible/cli/console.py
@@ -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