mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Fixes to bigip_static_route (#48017)
Corrects documentation. Fixes unit tests, Fixes ip address checks for gateway_address
This commit is contained in:
parent
0ac57b97b2
commit
32e77c12e0
2 changed files with 29 additions and 16 deletions
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (c) 2017 F5 Networks Inc.
|
# Copyright: (c) 2017, F5 Networks Inc.
|
||||||
# GNU General Public License v3.0 (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
# GNU General Public License v3.0 (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
|
||||||
from __future__ import absolute_import, division, print_function
|
from __future__ import absolute_import, division, print_function
|
||||||
|
@ -13,6 +13,7 @@ ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||||
'supported_by': 'certified'}
|
'supported_by': 'certified'}
|
||||||
|
|
||||||
DOCUMENTATION = r'''
|
DOCUMENTATION = r'''
|
||||||
|
---
|
||||||
module: bigip_static_route
|
module: bigip_static_route
|
||||||
short_description: Manipulate static routes on a BIG-IP
|
short_description: Manipulate static routes on a BIG-IP
|
||||||
description:
|
description:
|
||||||
|
@ -91,10 +92,11 @@ EXAMPLES = r'''
|
||||||
netmask: 255.255.255.255
|
netmask: 255.255.255.255
|
||||||
gateway_address: 10.2.2.3
|
gateway_address: 10.2.2.3
|
||||||
name: test-route
|
name: test-route
|
||||||
password: secret
|
provider:
|
||||||
server: lb.mydomain.come
|
password: secret
|
||||||
user: admin
|
server: lb.mydomain.come
|
||||||
validate_certs: no
|
user: admin
|
||||||
|
validate_certs: no
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
@ -166,6 +168,7 @@ try:
|
||||||
from library.module_utils.network.f5.ipaddress import ipv6_netmask_to_cidr
|
from library.module_utils.network.f5.ipaddress import ipv6_netmask_to_cidr
|
||||||
from library.module_utils.compat.ipaddress import ip_address
|
from library.module_utils.compat.ipaddress import ip_address
|
||||||
from library.module_utils.compat.ipaddress import ip_network
|
from library.module_utils.compat.ipaddress import ip_network
|
||||||
|
from library.module_utils.compat.ipaddress import ip_interface
|
||||||
except ImportError:
|
except ImportError:
|
||||||
from ansible.module_utils.network.f5.bigip import F5RestClient
|
from ansible.module_utils.network.f5.bigip import F5RestClient
|
||||||
from ansible.module_utils.network.f5.common import F5ModuleError
|
from ansible.module_utils.network.f5.common import F5ModuleError
|
||||||
|
@ -180,6 +183,7 @@ except ImportError:
|
||||||
from ansible.module_utils.network.f5.ipaddress import ipv6_netmask_to_cidr
|
from ansible.module_utils.network.f5.ipaddress import ipv6_netmask_to_cidr
|
||||||
from ansible.module_utils.compat.ipaddress import ip_address
|
from ansible.module_utils.compat.ipaddress import ip_address
|
||||||
from ansible.module_utils.compat.ipaddress import ip_network
|
from ansible.module_utils.compat.ipaddress import ip_network
|
||||||
|
from ansible.module_utils.compat.ipaddress import ip_interface
|
||||||
|
|
||||||
|
|
||||||
class Parameters(AnsibleF5Parameters):
|
class Parameters(AnsibleF5Parameters):
|
||||||
|
@ -249,8 +253,12 @@ class ModuleParameters(Parameters):
|
||||||
if self._values['gateway_address'] is None:
|
if self._values['gateway_address'] is None:
|
||||||
return None
|
return None
|
||||||
try:
|
try:
|
||||||
ip = ip_network(u'%s' % str(self._values['gateway_address']))
|
if '%' in self._values['gateway_address']:
|
||||||
return str(ip.network_address)
|
addr = self._values['gateway_address'].split('%')[0]
|
||||||
|
else:
|
||||||
|
addr = self._values['gateway_address']
|
||||||
|
ip_interface(u'%s' % str(addr))
|
||||||
|
return str(self._values['gateway_address'])
|
||||||
except ValueError:
|
except ValueError:
|
||||||
raise F5ModuleError(
|
raise F5ModuleError(
|
||||||
"The provided gateway_address is not an IP address"
|
"The provided gateway_address is not an IP address"
|
||||||
|
@ -274,7 +282,7 @@ class ModuleParameters(Parameters):
|
||||||
try:
|
try:
|
||||||
ip = ip_network(u'%s' % str(self.destination_ip))
|
ip = ip_network(u'%s' % str(self.destination_ip))
|
||||||
if self.route_domain:
|
if self.route_domain:
|
||||||
return '{0}%{2}/{1}'.format(str(ip.network_address), ip.prefixlen, self.route_domain)
|
return '{0}%{1}/{2}'.format(str(ip.network_address), self.route_domain, ip.prefixlen)
|
||||||
else:
|
else:
|
||||||
return '{0}/{1}'.format(str(ip.network_address), ip.prefixlen)
|
return '{0}/{1}'.format(str(ip.network_address), ip.prefixlen)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
|
|
@ -14,9 +14,6 @@ from nose.plugins.skip import SkipTest
|
||||||
if sys.version_info < (2, 7):
|
if sys.version_info < (2, 7):
|
||||||
raise SkipTest("F5 Ansible modules require Python >= 2.7")
|
raise SkipTest("F5 Ansible modules require Python >= 2.7")
|
||||||
|
|
||||||
from units.compat import unittest
|
|
||||||
from units.compat.mock import Mock
|
|
||||||
from units.compat.mock import patch
|
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -24,17 +21,25 @@ try:
|
||||||
from library.modules.bigip_static_route import ModuleParameters
|
from library.modules.bigip_static_route import ModuleParameters
|
||||||
from library.modules.bigip_static_route import ModuleManager
|
from library.modules.bigip_static_route import ModuleManager
|
||||||
from library.modules.bigip_static_route import ArgumentSpec
|
from library.modules.bigip_static_route import ArgumentSpec
|
||||||
from library.module_utils.network.f5.common import F5ModuleError
|
|
||||||
from library.module_utils.network.f5.common import iControlUnexpectedHTTPError
|
# In Ansible 2.8, Ansible changed import paths.
|
||||||
from test.unit.modules.utils import set_module_args
|
from test.units.compat import unittest
|
||||||
|
from test.units.compat.mock import Mock
|
||||||
|
from test.units.compat.mock import patch
|
||||||
|
|
||||||
|
from test.units.modules.utils import set_module_args
|
||||||
except ImportError:
|
except ImportError:
|
||||||
try:
|
try:
|
||||||
from ansible.modules.network.f5.bigip_static_route import ApiParameters
|
from ansible.modules.network.f5.bigip_static_route import ApiParameters
|
||||||
from ansible.modules.network.f5.bigip_static_route import ModuleParameters
|
from ansible.modules.network.f5.bigip_static_route import ModuleParameters
|
||||||
from ansible.modules.network.f5.bigip_static_route import ModuleManager
|
from ansible.modules.network.f5.bigip_static_route import ModuleManager
|
||||||
from ansible.modules.network.f5.bigip_static_route import ArgumentSpec
|
from ansible.modules.network.f5.bigip_static_route import ArgumentSpec
|
||||||
from ansible.module_utils.network.f5.common import F5ModuleError
|
|
||||||
from ansible.module_utils.network.f5.common import iControlUnexpectedHTTPError
|
# Ansible 2.8 imports
|
||||||
|
from units.compat import unittest
|
||||||
|
from units.compat.mock import Mock
|
||||||
|
from units.compat.mock import patch
|
||||||
|
|
||||||
from units.modules.utils import set_module_args
|
from units.modules.utils import set_module_args
|
||||||
except ImportError:
|
except ImportError:
|
||||||
raise SkipTest("F5 Ansible modules require the f5-sdk Python library")
|
raise SkipTest("F5 Ansible modules require the f5-sdk Python library")
|
||||||
|
|
Loading…
Reference in a new issue