1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Merge pull request #4306 from sivel/3563-glob

Add fileglob Jinja2 filter. Fixes #3563
This commit is contained in:
Michael DeHaan 2013-09-30 11:17:31 -07:00
commit ac0a7d965a
2 changed files with 14 additions and 0 deletions

View file

@ -21,6 +21,7 @@ import os.path
import yaml import yaml
import types import types
import pipes import pipes
import glob
from ansible import errors from ansible import errors
from ansible.utils import md5s from ansible.utils import md5s
@ -74,6 +75,10 @@ def quote(a):
''' return its argument quoted for shell usage ''' ''' return its argument quoted for shell usage '''
return pipes.quote(a) return pipes.quote(a)
def fileglob(pathname):
''' return list of matched files for glob '''
return glob.glob(pathname)
class FilterModule(object): class FilterModule(object):
''' Ansible core jinja2 filters ''' ''' Ansible core jinja2 filters '''
@ -115,5 +120,8 @@ class FilterModule(object):
# md5 hex digest of string # md5 hex digest of string
'md5': md5s, 'md5': md5s,
# file glob
'fileglob': fileglob,
} }

View file

@ -2,6 +2,7 @@
Test bundled filters Test bundled filters
''' '''
import os.path
import unittest, tempfile, shutil import unittest, tempfile, shutil
from ansible import playbook, inventory, callbacks from ansible import playbook, inventory, callbacks
import ansible.runner.filter_plugins.core import ansible.runner.filter_plugins.core
@ -83,6 +84,11 @@ class TestFilters(unittest.TestCase):
a = ansible.runner.filter_plugins.core.quote('ls | wc -l') a = ansible.runner.filter_plugins.core.quote('ls | wc -l')
assert a == "'ls | wc -l'" assert a == "'ls | wc -l'"
def test_fileglob(self):
pathname = os.path.join(os.path.dirname(__file__), '*')
a = ansible.runner.filter_plugins.core.fileglob(pathname)
assert __file__ in a
#def test_filters(self): #def test_filters(self):
# this test is pretty low level using a playbook, hence I am disabling it for now -- MPD. # this test is pretty low level using a playbook, hence I am disabling it for now -- MPD.