|
|
@ -37,6 +37,8 @@ from ansible.plugins import vars_loader
|
|
|
|
from ansible.utils.vars import combine_vars
|
|
|
|
from ansible.utils.vars import combine_vars
|
|
|
|
from ansible.parsing.utils.addresses import parse_address
|
|
|
|
from ansible.parsing.utils.addresses import parse_address
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HOSTS_PATTERNS_CACHE = {}
|
|
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
from __main__ import display
|
|
|
|
from __main__ import display
|
|
|
|
except ImportError:
|
|
|
|
except ImportError:
|
|
|
@ -156,6 +158,11 @@ class Inventory(object):
|
|
|
|
or applied subsets
|
|
|
|
or applied subsets
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Check if pattern already computed
|
|
|
|
|
|
|
|
pattern_hash = str(pattern)
|
|
|
|
|
|
|
|
if pattern_hash in HOSTS_PATTERNS_CACHE:
|
|
|
|
|
|
|
|
return HOSTS_PATTERNS_CACHE[pattern_hash]
|
|
|
|
|
|
|
|
|
|
|
|
patterns = Inventory.split_host_pattern(pattern)
|
|
|
|
patterns = Inventory.split_host_pattern(pattern)
|
|
|
|
hosts = self._evaluate_patterns(patterns)
|
|
|
|
hosts = self._evaluate_patterns(patterns)
|
|
|
|
|
|
|
|
|
|
|
@ -170,6 +177,7 @@ class Inventory(object):
|
|
|
|
if self._restriction is not None:
|
|
|
|
if self._restriction is not None:
|
|
|
|
hosts = [ h for h in hosts if h in self._restriction ]
|
|
|
|
hosts = [ h for h in hosts if h in self._restriction ]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HOSTS_PATTERNS_CACHE[pattern_hash] = hosts
|
|
|
|
return hosts
|
|
|
|
return hosts
|
|
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
@classmethod
|
|
|
|