mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Fixes #3129 Do not require localhost to be in inventory
This commit is contained in:
parent
c17d0e0357
commit
94f3b9bfab
1 changed files with 19 additions and 3 deletions
|
@ -19,6 +19,7 @@
|
||||||
|
|
||||||
import fnmatch
|
import fnmatch
|
||||||
import os
|
import os
|
||||||
|
import sys
|
||||||
import re
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
|
@ -179,7 +180,8 @@ class Inventory(object):
|
||||||
elif p.startswith("&"):
|
elif p.startswith("&"):
|
||||||
hosts = [ h for h in hosts if h in that ]
|
hosts = [ h for h in hosts if h in that ]
|
||||||
else:
|
else:
|
||||||
hosts.extend([ h for h in that if h.name not in [ y.name for y in hosts ] ])
|
to_append = [ h for h in that if h.name not in [ y.name for y in hosts ] ]
|
||||||
|
hosts.extend(to_append)
|
||||||
|
|
||||||
return hosts
|
return hosts
|
||||||
|
|
||||||
|
@ -264,6 +266,14 @@ class Inventory(object):
|
||||||
if host not in results and host.name not in hostnames:
|
if host not in results and host.name not in hostnames:
|
||||||
results.append(host)
|
results.append(host)
|
||||||
hostnames.add(host.name)
|
hostnames.add(host.name)
|
||||||
|
|
||||||
|
if pattern in ["localhost", "127.0.0.1"] and len(results) == 0:
|
||||||
|
new_host = Host(pattern)
|
||||||
|
new_host.set_variable("ansible_python_interpreter", sys.executable)
|
||||||
|
new_host.set_variable("ansible_connection", "local")
|
||||||
|
ungrouped = self.get_group("ungrouped")
|
||||||
|
ungrouped.add_host(new_host)
|
||||||
|
results.append(new_host)
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def clear_pattern_cache(self):
|
def clear_pattern_cache(self):
|
||||||
|
@ -356,7 +366,13 @@ class Inventory(object):
|
||||||
self._groups_list = None # invalidate internal cache
|
self._groups_list = None # invalidate internal cache
|
||||||
|
|
||||||
def list_hosts(self, pattern="all"):
|
def list_hosts(self, pattern="all"):
|
||||||
return [ h.name for h in self.get_hosts(pattern) ]
|
|
||||||
|
""" return a list of hostnames for a pattern """
|
||||||
|
|
||||||
|
result = [ h.name for h in self.get_hosts(pattern) ]
|
||||||
|
if len(result) == 0 and pattern in ["localhost", "127.0.0.1"]:
|
||||||
|
result = [pattern]
|
||||||
|
return result
|
||||||
|
|
||||||
def list_groups(self):
|
def list_groups(self):
|
||||||
return sorted([ g.name for g in self.groups ], key=lambda x: x)
|
return sorted([ g.name for g in self.groups ], key=lambda x: x)
|
||||||
|
|
Loading…
Reference in a new issue