From 7ebc8f6bd23a47659b5ae1c6c9f8ed4264276b80 Mon Sep 17 00:00:00 2001 From: Ashwini Mhatre Date: Fri, 24 Sep 2021 12:59:52 +0530 Subject: [PATCH] Bugfix: Make validate_args as generic utility function (#101) Bugfix: Make validate_args as generic utility function SUMMARY fixes: #100 ISSUE TYPE Bugfix Pull Request COMPONENT NAME ADDITIONAL INFORMATION Reviewed-by: Nilashish Chakraborty Reviewed-by: None --- changelogs/fragments/bugfix_100.yaml | 3 +++ plugins/filter/usable_range.py | 4 +++- plugins/plugin_utils/base/utils.py | 34 ++++++++++++++++++++++++++++ plugins/test/in_any_network.py | 2 +- plugins/test/in_network.py | 2 +- plugins/test/ip.py | 2 ++ plugins/test/ip_address.py | 3 +++ plugins/test/ipv4_address.py | 2 ++ plugins/test/ipv4_hostmask.py | 2 ++ plugins/test/ipv4_netmask.py | 2 ++ plugins/test/ipv6.py | 2 ++ plugins/test/ipv6_address.py | 2 ++ plugins/test/ipv6_sixtofour.py | 2 ++ plugins/test/ipv6_teredo.py | 2 ++ plugins/test/mac.py | 2 +- plugins/test/multicast.py | 3 +++ plugins/test/private.py | 2 ++ plugins/test/reserved.py | 2 ++ plugins/test/resolvable.py | 2 ++ plugins/test/supernet_of.py | 2 ++ 20 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 changelogs/fragments/bugfix_100.yaml create mode 100644 plugins/plugin_utils/base/utils.py diff --git a/changelogs/fragments/bugfix_100.yaml b/changelogs/fragments/bugfix_100.yaml new file mode 100644 index 0000000..93687de --- /dev/null +++ b/changelogs/fragments/bugfix_100.yaml @@ -0,0 +1,3 @@ +--- +trivial: + - Make "_validate_arg" method as generic utility function. diff --git a/plugins/filter/usable_range.py b/plugins/filter/usable_range.py index 1188bf2..288b8e7 100644 --- a/plugins/filter/usable_range.py +++ b/plugins/filter/usable_range.py @@ -11,10 +11,12 @@ from __future__ import absolute_import, division, print_function from ipaddress import IPv4Network, IPv6Network from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils import ( - _validate_args, ip_network, _need_ipaddress, ) +from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import ( + _validate_args, +) __metaclass__ = type diff --git a/plugins/plugin_utils/base/utils.py b/plugins/plugin_utils/base/utils.py new file mode 100644 index 0000000..66f35b6 --- /dev/null +++ b/plugins/plugin_utils/base/utils.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +# Copyright 2021 Red Hat +# GNU General Public License v3.0+ +# (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +""" +The utils file for all netaddr tests +""" + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type + +from ansible.errors import AnsibleError +from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( + check_argspec, +) + + +def _validate_args(plugin, doc, params): + """ argspec validator utility function + """ + + valid, argspec_result, updated_params = check_argspec( + doc, plugin + " test", **params + ) + + if not valid: + raise AnsibleError( + "{argspec_result} with errors: {argspec_errors}".format( + argspec_result=argspec_result.get("msg"), + argspec_errors=argspec_result.get("errors"), + ) + ) diff --git a/plugins/test/in_any_network.py b/plugins/test/in_any_network.py index 882cac4..1e71277 100644 --- a/plugins/test/in_any_network.py +++ b/plugins/test/in_any_network.py @@ -11,7 +11,7 @@ from __future__ import absolute_import, division, print_function from ansible_collections.ansible.utils.plugins.test.in_network import ( _in_network, ) -from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils import ( +from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import ( _validate_args, ) diff --git a/plugins/test/in_network.py b/plugins/test/in_network.py index ef3f0ad..9b667b2 100644 --- a/plugins/test/in_network.py +++ b/plugins/test/in_network.py @@ -13,7 +13,7 @@ from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils _is_subnet_of, _need_ipaddress, ) -from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils import ( +from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import ( _validate_args, ) diff --git a/plugins/test/ip.py b/plugins/test/ip.py index edca1b0..08dcb9c 100644 --- a/plugins/test/ip.py +++ b/plugins/test/ip.py @@ -11,6 +11,8 @@ from __future__ import absolute_import, division, print_function from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils import ( ip_network, _need_ipaddress, +) +from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import ( _validate_args, ) diff --git a/plugins/test/ip_address.py b/plugins/test/ip_address.py index 0de06ab..6682a16 100644 --- a/plugins/test/ip_address.py +++ b/plugins/test/ip_address.py @@ -11,9 +11,12 @@ from __future__ import absolute_import, division, print_function from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils import ( ip_address, _need_ipaddress, +) +from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import ( _validate_args, ) + __metaclass__ = type DOCUMENTATION = """ diff --git a/plugins/test/ipv4_address.py b/plugins/test/ipv4_address.py index bff6af4..bb7d0bb 100644 --- a/plugins/test/ipv4_address.py +++ b/plugins/test/ipv4_address.py @@ -11,6 +11,8 @@ from __future__ import absolute_import, division, print_function from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils import ( ip_address, _need_ipaddress, +) +from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import ( _validate_args, ) diff --git a/plugins/test/ipv4_hostmask.py b/plugins/test/ipv4_hostmask.py index 7c8040c..e201203 100644 --- a/plugins/test/ipv4_hostmask.py +++ b/plugins/test/ipv4_hostmask.py @@ -11,6 +11,8 @@ from __future__ import absolute_import, division, print_function from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils import ( ip_network, _need_ipaddress, +) +from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import ( _validate_args, ) diff --git a/plugins/test/ipv4_netmask.py b/plugins/test/ipv4_netmask.py index 7ebdfc7..e12d0b8 100644 --- a/plugins/test/ipv4_netmask.py +++ b/plugins/test/ipv4_netmask.py @@ -11,6 +11,8 @@ from __future__ import absolute_import, division, print_function from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils import ( ip_network, _need_ipaddress, +) +from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import ( _validate_args, ) diff --git a/plugins/test/ipv6.py b/plugins/test/ipv6.py index b8ea59c..a3299df 100644 --- a/plugins/test/ipv6.py +++ b/plugins/test/ipv6.py @@ -11,6 +11,8 @@ from __future__ import absolute_import, division, print_function from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils import ( ip_network, _need_ipaddress, +) +from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import ( _validate_args, ) diff --git a/plugins/test/ipv6_address.py b/plugins/test/ipv6_address.py index cbb9984..ae8a3a7 100644 --- a/plugins/test/ipv6_address.py +++ b/plugins/test/ipv6_address.py @@ -11,6 +11,8 @@ from __future__ import absolute_import, division, print_function from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils import ( ip_address, _need_ipaddress, +) +from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import ( _validate_args, ) diff --git a/plugins/test/ipv6_sixtofour.py b/plugins/test/ipv6_sixtofour.py index 09612b6..f0eda79 100644 --- a/plugins/test/ipv6_sixtofour.py +++ b/plugins/test/ipv6_sixtofour.py @@ -11,6 +11,8 @@ from __future__ import absolute_import, division, print_function from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils import ( ip_address, _need_ipaddress, +) +from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import ( _validate_args, ) diff --git a/plugins/test/ipv6_teredo.py b/plugins/test/ipv6_teredo.py index 86964e4..32bc5d5 100644 --- a/plugins/test/ipv6_teredo.py +++ b/plugins/test/ipv6_teredo.py @@ -11,6 +11,8 @@ from __future__ import absolute_import, division, print_function from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils import ( ip_address, _need_ipaddress, +) +from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import ( _validate_args, ) diff --git a/plugins/test/mac.py b/plugins/test/mac.py index cb6fdbc..f39e935 100644 --- a/plugins/test/mac.py +++ b/plugins/test/mac.py @@ -8,7 +8,7 @@ Test plugin file for netaddr tests: mac """ from __future__ import absolute_import, division, print_function -from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils import ( +from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import ( _validate_args, ) import re diff --git a/plugins/test/multicast.py b/plugins/test/multicast.py index f2e3c97..e7ce40b 100644 --- a/plugins/test/multicast.py +++ b/plugins/test/multicast.py @@ -11,9 +11,12 @@ from __future__ import absolute_import, division, print_function from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils import ( ip_address, _need_ipaddress, +) +from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import ( _validate_args, ) + __metaclass__ = type DOCUMENTATION = """ diff --git a/plugins/test/private.py b/plugins/test/private.py index 26e13e4..4c080ce 100644 --- a/plugins/test/private.py +++ b/plugins/test/private.py @@ -11,6 +11,8 @@ from __future__ import absolute_import, division, print_function from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils import ( ip_address, _need_ipaddress, +) +from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import ( _validate_args, ) diff --git a/plugins/test/reserved.py b/plugins/test/reserved.py index 81b1120..62679b7 100644 --- a/plugins/test/reserved.py +++ b/plugins/test/reserved.py @@ -11,6 +11,8 @@ from __future__ import absolute_import, division, print_function from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils import ( ip_address, _need_ipaddress, +) +from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import ( _validate_args, ) diff --git a/plugins/test/resolvable.py b/plugins/test/resolvable.py index 2033ab5..9588106 100644 --- a/plugins/test/resolvable.py +++ b/plugins/test/resolvable.py @@ -9,6 +9,8 @@ Test plugin file for netaddr tests: resolvable from __future__ import absolute_import, division, print_function from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils import ( _need_ipaddress, +) +from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import ( _validate_args, ) diff --git a/plugins/test/supernet_of.py b/plugins/test/supernet_of.py index bbb5e3c..9065a61 100644 --- a/plugins/test/supernet_of.py +++ b/plugins/test/supernet_of.py @@ -12,6 +12,8 @@ from ansible_collections.ansible.utils.plugins.plugin_utils.base.ipaddress_utils ip_network, _need_ipaddress, _is_subnet_of, +) +from ansible_collections.ansible.utils.plugins.plugin_utils.base.utils import ( _validate_args, )