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

View file

@ -2,6 +2,7 @@
Test bundled filters
'''
import os.path
import unittest, tempfile, shutil
from ansible import playbook, inventory, callbacks
import ansible.runner.filter_plugins.core
@ -83,6 +84,11 @@ class TestFilters(unittest.TestCase):
a = ansible.runner.filter_plugins.core.quote('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):
# this test is pretty low level using a playbook, hence I am disabling it for now -- MPD.