Commit 535ce970 by Matt Martz

Add fileglob Jinja2 filter. Fixes #3563

parent ef28d628
...@@ -21,6 +21,7 @@ import os.path ...@@ -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): ...@@ -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): ...@@ -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,
} }
...@@ -2,6 +2,7 @@ ...@@ -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): ...@@ -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.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment