dont warn on not matching 'all' (#32806)
* dont warn on not matching 'all' the implicit localhost warning shoudl be enough * centralized no hosts handling also extended info on implicit only
This commit is contained in:
parent
2f2f118665
commit
87c75b19dd
5 changed files with 26 additions and 32 deletions
|
@ -806,3 +806,20 @@ class CLI(with_metaclass(ABCMeta, object)):
|
||||||
variable_manager.options_vars = load_options_vars(options, CLI.version_info(gitinfo=False))
|
variable_manager.options_vars = load_options_vars(options, CLI.version_info(gitinfo=False))
|
||||||
|
|
||||||
return loader, inventory, variable_manager
|
return loader, inventory, variable_manager
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_host_list(inventory, subset, pattern='all'):
|
||||||
|
|
||||||
|
no_hosts = False
|
||||||
|
if len(inventory.list_hosts()) == 0:
|
||||||
|
# Empty inventory
|
||||||
|
display.warning("provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'")
|
||||||
|
no_hosts = True
|
||||||
|
|
||||||
|
inventory.subset(subset)
|
||||||
|
|
||||||
|
hosts = inventory.list_hosts(pattern)
|
||||||
|
if len(hosts) == 0 and no_hosts is False:
|
||||||
|
raise AnsibleError("Specified hosts and/or --limit does not match any hosts")
|
||||||
|
|
||||||
|
return hosts
|
||||||
|
|
|
@ -112,19 +112,13 @@ class AdHocCLI(CLI):
|
||||||
|
|
||||||
loader, inventory, variable_manager = self._play_prereqs(self.options)
|
loader, inventory, variable_manager = self._play_prereqs(self.options)
|
||||||
|
|
||||||
no_hosts = False
|
try:
|
||||||
if len(inventory.list_hosts()) == 0:
|
hosts = CLI.get_host_list(inventory, self.options.subset, pattern)
|
||||||
# Empty inventory
|
except AnsibleError:
|
||||||
display.warning("provided hosts list is empty, only localhost is available")
|
if self.options.subset:
|
||||||
no_hosts = True
|
raise
|
||||||
|
|
||||||
inventory.subset(self.options.subset)
|
|
||||||
hosts = inventory.list_hosts(pattern)
|
|
||||||
if len(hosts) == 0:
|
|
||||||
if no_hosts is False and self.options.subset:
|
|
||||||
# Invalid limit
|
|
||||||
raise AnsibleError("Specified --limit does not match any hosts")
|
|
||||||
else:
|
else:
|
||||||
|
hosts = []
|
||||||
display.warning("No hosts matched, nothing to do")
|
display.warning("No hosts matched, nothing to do")
|
||||||
|
|
||||||
if self.options.listhosts:
|
if self.options.listhosts:
|
||||||
|
|
|
@ -426,16 +426,7 @@ class ConsoleCLI(CLI, cmd.Cmd):
|
||||||
ask_vault_pass=self.options.ask_vault_pass)
|
ask_vault_pass=self.options.ask_vault_pass)
|
||||||
self.loader.set_vault_secrets(vault_secrets)
|
self.loader.set_vault_secrets(vault_secrets)
|
||||||
|
|
||||||
no_hosts = False
|
hosts = CLI.get_host_list(self.inventory, self.options.subset, self.pattern)
|
||||||
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.groups = self.inventory.list_groups()
|
||||||
self.hosts = [x.name for x in hosts]
|
self.hosts = [x.name for x in hosts]
|
||||||
|
|
|
@ -109,15 +109,7 @@ class PlaybookCLI(CLI):
|
||||||
# limit if only implicit localhost was in inventory to start with.
|
# limit if only implicit localhost was in inventory to start with.
|
||||||
#
|
#
|
||||||
# Fix this when we rewrite inventory by making localhost a real host (and thus show up in list_hosts())
|
# Fix this when we rewrite inventory by making localhost a real host (and thus show up in list_hosts())
|
||||||
no_hosts = False
|
hosts = CLI.get_host_list(inventory, self.options.subset)
|
||||||
if len(inventory.list_hosts()) == 0:
|
|
||||||
# Empty inventory
|
|
||||||
display.warning("provided hosts list is empty, only localhost is available")
|
|
||||||
no_hosts = True
|
|
||||||
inventory.subset(self.options.subset)
|
|
||||||
if len(inventory.list_hosts()) == 0 and no_hosts is False:
|
|
||||||
# Invalid limit
|
|
||||||
raise AnsibleError("Specified --limit does not match any hosts")
|
|
||||||
|
|
||||||
# flush fact cache if requested
|
# flush fact cache if requested
|
||||||
if self.options.flush_cache:
|
if self.options.flush_cache:
|
||||||
|
|
|
@ -541,7 +541,7 @@ class InventoryManager(object):
|
||||||
if implicit:
|
if implicit:
|
||||||
results.append(implicit)
|
results.append(implicit)
|
||||||
|
|
||||||
if not results:
|
if not results and pattern != 'all':
|
||||||
display.warning("Could not match supplied host pattern, ignoring: %s" % pattern)
|
display.warning("Could not match supplied host pattern, ignoring: %s" % pattern)
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue