parent
a01d97f12b
commit
f48fa3759a
1 changed files with 15 additions and 8 deletions
|
@ -150,17 +150,24 @@ class Inventory(object):
|
||||||
|
|
||||||
|
|
||||||
def _match(self, str, pattern_str):
|
def _match(self, str, pattern_str):
|
||||||
|
try:
|
||||||
if pattern_str.startswith('~'):
|
if pattern_str.startswith('~'):
|
||||||
return re.search(pattern_str[1:], str)
|
return re.search(pattern_str[1:], str)
|
||||||
else:
|
else:
|
||||||
return fnmatch.fnmatch(str, pattern_str)
|
return fnmatch.fnmatch(str, pattern_str)
|
||||||
|
except Exception, e:
|
||||||
|
raise errors.AnsibleError('invalid host pattern: %s' % pattern_str)
|
||||||
|
|
||||||
def _match_list(self, items, item_attr, pattern_str):
|
def _match_list(self, items, item_attr, pattern_str):
|
||||||
results = []
|
results = []
|
||||||
|
try:
|
||||||
if not pattern_str.startswith('~'):
|
if not pattern_str.startswith('~'):
|
||||||
pattern = re.compile(fnmatch.translate(pattern_str))
|
pattern = re.compile('^' + fnmatch.translate(pattern_str))
|
||||||
else:
|
else:
|
||||||
pattern = re.compile(pattern_str[1:])
|
pattern = re.compile(pattern_str[1:])
|
||||||
|
except Exception, e:
|
||||||
|
raise errors.AnsibleError('invalid host pattern: %s' % pattern_str)
|
||||||
|
|
||||||
for item in items:
|
for item in items:
|
||||||
if pattern.search(getattr(item, item_attr)):
|
if pattern.search(getattr(item, item_attr)):
|
||||||
results.append(item)
|
results.append(item)
|
||||||
|
|
Loading…
Reference in a new issue