diff --git a/changelogs/fragments/Bugfix_162_accept_int_input.yaml b/changelogs/fragments/Bugfix_162_accept_int_input.yaml new file mode 100644 index 0000000..fda1bc2 --- /dev/null +++ b/changelogs/fragments/Bugfix_162_accept_int_input.yaml @@ -0,0 +1,3 @@ +--- +bugfixes: + - Accept int input for ipaddr filters. diff --git a/plugins/filter/ipaddr.py b/plugins/filter/ipaddr.py index d760e1b..0ed9865 100644 --- a/plugins/filter/ipaddr.py +++ b/plugins/filter/ipaddr.py @@ -261,6 +261,8 @@ def _ipaddr(*args, **kwargs): pass elif isinstance(data["value"], list): pass + elif isinstance(data["value"], int): + pass else: raise AnsibleFilterError( "Unrecognized type <{0}> for ipaddr filter <{1}>".format( diff --git a/plugins/filter/ipv4.py b/plugins/filter/ipv4.py index 3443eea..683d4ca 100644 --- a/plugins/filter/ipv4.py +++ b/plugins/filter/ipv4.py @@ -138,6 +138,8 @@ def _ipv4(*args, **kwargs): pass elif isinstance(data["value"], list): pass + elif isinstance(data["value"], int): + pass else: raise AnsibleFilterError( "Unrecognized type <{0}> for ipv4 filter <{1}>".format( diff --git a/plugins/filter/ipv6.py b/plugins/filter/ipv6.py index 4fad108..1cfe4bf 100644 --- a/plugins/filter/ipv6.py +++ b/plugins/filter/ipv6.py @@ -156,6 +156,8 @@ def _ipv6(*args, **kwargs): pass elif isinstance(data["value"], list): pass + elif isinstance(data["value"], int): + pass else: raise AnsibleFilterError( "Unrecognized type <{0}> for ipv6 filter <{1}>".format( diff --git a/tests/integration/targets/utils_ipaddr_filter/tasks/ipaddr.yaml b/tests/integration/targets/utils_ipaddr_filter/tasks/ipaddr.yaml index fd2515b..3c89310 100644 --- a/tests/integration/targets/utils_ipaddr_filter/tasks/ipaddr.yaml +++ b/tests/integration/targets/utils_ipaddr_filter/tasks/ipaddr.yaml @@ -57,3 +57,18 @@ - name: Assert result for ipaddr filter with chained filters assert: that: "{{ result6 == '192.168.255.123' }}" + +- debug: + msg: "Test int input for ipaddr filter" + +- name: set fact 1 + set_fact: + ip1: "172.20.0.1" + +- name: Set fact 2 + set_fact: + ip2: "{{ ((ip1 | ansible.utils.ipaddr('int')) + 6) | ansible.utils.ipaddr }}" + +- name: Assert result for ipaddr filter + assert: + that: "{{ ip2 == '172.20.0.7' }}"