adding min() and max() filters for use in Jinja templates
This commit is contained in:
parent
2d2178f2c5
commit
3ba516ac25
3 changed files with 32 additions and 0 deletions
|
@ -180,6 +180,20 @@ Jinja2 provides a useful 'default' filter, that is often a better approach to fa
|
|||
In the above example, if the variable 'some_variable' is not defined, the value used will be 5, rather than an error
|
||||
being raised.
|
||||
|
||||
.. _list_filters:
|
||||
|
||||
List Filters
|
||||
--------------------
|
||||
.. versionadded:: 1.7
|
||||
|
||||
To get the minimum value from list of numbers::
|
||||
|
||||
{{ list1 | min }}
|
||||
|
||||
To get the maximum value from a list of numbers::
|
||||
|
||||
{{ [3, 4, 2] | max }}
|
||||
|
||||
.. _set_theory_filters:
|
||||
|
||||
Set Theory Filters
|
||||
|
|
|
@ -183,6 +183,14 @@ def union(a, b):
|
|||
c = unique(a + b)
|
||||
return c
|
||||
|
||||
def min(a):
|
||||
_min = __builtins__.get('min')
|
||||
return _min(a);
|
||||
|
||||
def max(a):
|
||||
_max = __builtins__.get('max')
|
||||
return _max(a);
|
||||
|
||||
def version_compare(value, version, operator='eq', strict=False):
|
||||
''' Perform a version comparison on a value '''
|
||||
op_map = {
|
||||
|
@ -289,6 +297,8 @@ class FilterModule(object):
|
|||
'difference': difference,
|
||||
'symmetric_difference': symmetric_difference,
|
||||
'union': union,
|
||||
'min' : min,
|
||||
'max' : max,
|
||||
|
||||
# version comparison
|
||||
'version_compare': version_compare,
|
||||
|
|
|
@ -175,3 +175,11 @@ class TestFilters(unittest.TestCase):
|
|||
self.assertTrue(ansible.runner.filter_plugins.core.version_compare(1.0, 1.1, '<='))
|
||||
|
||||
self.assertTrue(ansible.runner.filter_plugins.core.version_compare('12.04', 12, 'ge'))
|
||||
|
||||
def test_min(self):
|
||||
a = ansible.runner.filter_plugins.core.min([3, 2, 5, 4])
|
||||
assert a == 2
|
||||
|
||||
def test_max(self):
|
||||
a = ansible.runner.filter_plugins.core.max([3, 2, 5, 4])
|
||||
assert a == 5
|
||||
|
|
Loading…
Reference in a new issue