mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-05-02 15:21:25 -07:00
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
|
In the above example, if the variable 'some_variable' is not defined, the value used will be 5, rather than an error
|
||||||
being raised.
|
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:
|
||||||
|
|
||||||
Set Theory Filters
|
Set Theory Filters
|
||||||
|
|
|
@ -183,6 +183,14 @@ def union(a, b):
|
||||||
c = unique(a + b)
|
c = unique(a + b)
|
||||||
return c
|
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):
|
def version_compare(value, version, operator='eq', strict=False):
|
||||||
''' Perform a version comparison on a value '''
|
''' Perform a version comparison on a value '''
|
||||||
op_map = {
|
op_map = {
|
||||||
|
@ -289,6 +297,8 @@ class FilterModule(object):
|
||||||
'difference': difference,
|
'difference': difference,
|
||||||
'symmetric_difference': symmetric_difference,
|
'symmetric_difference': symmetric_difference,
|
||||||
'union': union,
|
'union': union,
|
||||||
|
'min' : min,
|
||||||
|
'max' : max,
|
||||||
|
|
||||||
# version comparison
|
# version comparison
|
||||||
'version_compare': version_compare,
|
'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(1.0, 1.1, '<='))
|
||||||
|
|
||||||
self.assertTrue(ansible.runner.filter_plugins.core.version_compare('12.04', 12, 'ge'))
|
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…
Add table
Add a link
Reference in a new issue