diff --git a/lib/ansible/modules/network/f5/bigip_monitor_tcp.py b/lib/ansible/modules/network/f5/bigip_monitor_tcp.py
index b5f3791bd0..2923c53428 100644
--- a/lib/ansible/modules/network/f5/bigip_monitor_tcp.py
+++ b/lib/ansible/modules/network/f5/bigip_monitor_tcp.py
@@ -4,14 +4,18 @@
# Copyright (c) 2017 F5 Networks Inc.
# 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
+__metaclass__ = type
+
+
ANSIBLE_METADATA = {'metadata_version': '1.1',
'status': ['preview'],
'supported_by': 'community'}
-DOCUMENTATION = '''
+DOCUMENTATION = r'''
---
module: bigip_monitor_tcp
-short_description: Manages F5 BIG-IP LTM tcp monitors.
+short_description: Manages F5 BIG-IP LTM tcp monitors
description: Manages F5 BIG-IP LTM tcp monitors via iControl SOAP API.
version_added: "1.4"
options:
@@ -26,7 +30,7 @@ options:
- The parent template of this monitor template. Once this value has
been set, it cannot be changed. By default, this value is the C(tcp)
parent on the C(Common) partition.
- default: "/Common/tcp"
+ default: /Common/tcp
send:
description:
- The send string for the monitor call.
@@ -45,7 +49,7 @@ options:
- The template type of this monitor template.
- Deprecated in 2.4. Use one of the C(bigip_monitor_tcp_echo) or
C(bigip_monitor_tcp_half_open) modules instead.
- default: 'tcp'
+ default: tcp
choices:
- tcp
- tcp_echo
@@ -82,6 +86,11 @@ options:
node to be marked up immediately after a valid response is received
from the node. If this parameter is not provided when creating
a new monitor, then the default value will be 0.
+ partition:
+ description:
+ - Device partition to manage resources on.
+ default: Common
+ version_added: 2.5
notes:
- Requires the f5-sdk Python package on the host. This is as easy as pip
install f5-sdk.
@@ -93,70 +102,70 @@ author:
- Tim Rupp (@caphrim007)
'''
-EXAMPLES = '''
+EXAMPLES = r'''
- name: Create TCP Monitor
bigip_monitor_tcp:
- state: "present"
- server: "lb.mydomain.com"
- user: "admin"
- password: "secret"
- name: "my_tcp_monitor"
- type: "tcp"
- send: "tcp string to send"
- receive: "tcp string to receive"
+ state: present
+ server: lb.mydomain.com
+ user: admin
+ password: secret
+ name: my_tcp_monitor
+ type: tcp
+ send: tcp string to send
+ receive: tcp string to receive
delegate_to: localhost
- name: Remove TCP Monitor
bigip_monitor_tcp:
- state: "absent"
- server: "lb.mydomain.com"
- user: "admin"
- password: "secret"
- name: "my_tcp_monitor"
+ state: absent
+ server: lb.mydomain.com
+ user: admin
+ password: secret
+ name: my_tcp_monitor
delegate_to: localhost
'''
-RETURN = '''
+RETURN = r'''
parent:
- description: New parent template of the monitor.
- returned: changed
- type: string
- sample: "tcp"
+ description: New parent template of the monitor.
+ returned: changed
+ type: string
+ sample: tcp
send:
- description: The new send string for this monitor.
- returned: changed
- type: string
- sample: "tcp string to send"
+ description: The new send string for this monitor.
+ returned: changed
+ type: string
+ sample: tcp string to send
receive:
- description: The new receive string for this monitor.
- returned: changed
- type: string
- sample: "tcp string to receive"
+ description: The new receive string for this monitor.
+ returned: changed
+ type: string
+ sample: tcp string to receive
ip:
- description: The new IP of IP/port definition.
- returned: changed
- type: string
- sample: "10.12.13.14"
+ description: The new IP of IP/port definition.
+ returned: changed
+ type: string
+ sample: 10.12.13.14
port:
- description: The new port of IP/port definition.
- returned: changed
- type: string
- sample: "admin@root.local"
+ description: The new port of IP/port definition.
+ returned: changed
+ type: string
+ sample: admin@root.local
interval:
- description: The new interval in which to run the monitor check.
- returned: changed
- type: int
- sample: 2
+ description: The new interval in which to run the monitor check.
+ returned: changed
+ type: int
+ sample: 2
timeout:
- description: The new timeout in which the remote system must respond to the monitor.
- returned: changed
- type: int
- sample: 10
+ description: The new timeout in which the remote system must respond to the monitor.
+ returned: changed
+ type: int
+ sample: 10
time_until_up:
- description: The new time in which to mark a system as up after first successful response.
- returned: changed
- type: int
- sample: 2
+ description: The new time in which to mark a system as up after first successful response.
+ returned: changed
+ type: int
+ sample: 2
'''
import os
@@ -171,8 +180,8 @@ from ansible.module_utils.f5_utils import AnsibleF5Client
from ansible.module_utils.f5_utils import AnsibleF5Parameters
from ansible.module_utils.f5_utils import HAS_F5SDK
from ansible.module_utils.f5_utils import F5ModuleError
-from ansible.module_utils.f5_utils import iteritems
-from ansible.module_utils.f5_utils import defaultdict
+from ansible.module_utils.six import iteritems
+from collections import defaultdict
try:
from ansible.module_utils.f5_utils import iControlUnexpectedHTTPError
@@ -909,7 +918,7 @@ class ArgumentSpec(object):
# Make this assume "tcp" in the partition specified. The user
# is required to specify the full path if they want to use a different
# partition.
- parent=dict(),
+ parent=dict(default='tcp'),
send=dict(),
receive=dict(),
diff --git a/lib/ansible/modules/network/f5/bigip_monitor_tcp_echo.py b/lib/ansible/modules/network/f5/bigip_monitor_tcp_echo.py
index 62fd838479..0d5cb0e86a 100644
--- a/lib/ansible/modules/network/f5/bigip_monitor_tcp_echo.py
+++ b/lib/ansible/modules/network/f5/bigip_monitor_tcp_echo.py
@@ -4,15 +4,19 @@
# Copyright (c) 2017 F5 Networks Inc.
# 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
+__metaclass__ = type
+
+
ANSIBLE_METADATA = {'metadata_version': '1.1',
'status': ['preview'],
'supported_by': 'community'}
-DOCUMENTATION = '''
+DOCUMENTATION = r'''
---
module: bigip_monitor_tcp_echo
-short_description: Manages F5 BIG-IP LTM tcp monitors.
-description: Manages F5 BIG-IP LTM tcp monitors via iControl SOAP API.
+short_description: Manages F5 BIG-IP LTM tcp echo monitors
+description: Manages F5 BIG-IP LTM tcp echo monitors.
version_added: "2.4"
options:
name:
@@ -24,9 +28,9 @@ options:
parent:
description:
- The parent template of this monitor template. Once this value has
- been set, it cannot be changed. By default, this value is the C(tcp)
+ been set, it cannot be changed. By default, this value is the C(tcp_echo)
parent on the C(Common) partition.
- default: "/Common/tcp"
+ default: /Common/tcp_echo
ip:
description:
- IP address part of the IP/port definition. If this parameter is not
@@ -56,6 +60,11 @@ options:
node to be marked up immediately after a valid response is received
from the node. If this parameter is not provided when creating
a new monitor, then the default value will be 0.
+ partition:
+ description:
+ - Device partition to manage resources on.
+ default: Common
+ version_added: 2.5
notes:
- Requires the f5-sdk Python package on the host. This is as easy as pip
install f5-sdk.
@@ -67,53 +76,53 @@ author:
- Tim Rupp (@caphrim007)
'''
-EXAMPLES = '''
+EXAMPLES = r'''
- name: Create TCP Echo Monitor
bigip_monitor_tcp_echo:
- state: "present"
- server: "lb.mydomain.com"
- user: "admin"
- ip: 10.10.10.10
- password: "secret"
- name: "my_tcp_monitor"
+ state: present
+ server: lb.mydomain.com
+ user: admin
+ ip: 10.10.10.10
+ password: secret
+ name: my_tcp_monitor
delegate_to: localhost
- name: Remove TCP Echo Monitor
bigip_monitor_tcp_echo:
- state: "absent"
- server: "lb.mydomain.com"
- user: "admin"
- password: "secret"
- name: "my_tcp_monitor"
+ state: absent
+ server: lb.mydomain.com
+ user: admin
+ password: secret
+ name: my_tcp_monitor
delegate_to: localhost
'''
-RETURN = '''
+RETURN = r'''
parent:
- description: New parent template of the monitor.
- returned: changed
- type: string
- sample: "tcp"
+ description: New parent template of the monitor.
+ returned: changed
+ type: string
+ sample: tcp
ip:
- description: The new IP of IP/port definition.
- returned: changed
- type: string
- sample: "10.12.13.14"
+ description: The new IP of IP/port definition.
+ returned: changed
+ type: string
+ sample: 10.12.13.14
interval:
- description: The new interval in which to run the monitor check.
- returned: changed
- type: int
- sample: 2
+ description: The new interval in which to run the monitor check.
+ returned: changed
+ type: int
+ sample: 2
timeout:
- description: The new timeout in which the remote system must respond to the monitor.
- returned: changed
- type: int
- sample: 10
+ description: The new timeout in which the remote system must respond to the monitor.
+ returned: changed
+ type: int
+ sample: 10
time_until_up:
- description: The new time in which to mark a system as up after first successful response.
- returned: changed
- type: int
- sample: 2
+ description: The new time in which to mark a system as up after first successful response.
+ returned: changed
+ type: int
+ sample: 2
'''
import os
@@ -128,8 +137,8 @@ from ansible.module_utils.f5_utils import AnsibleF5Client
from ansible.module_utils.f5_utils import AnsibleF5Parameters
from ansible.module_utils.f5_utils import HAS_F5SDK
from ansible.module_utils.f5_utils import F5ModuleError
-from ansible.module_utils.f5_utils import iteritems
-from ansible.module_utils.f5_utils import defaultdict
+from ansible.module_utils.six import iteritems
+from collections import defaultdict
try:
from ansible.module_utils.f5_utils import iControlUnexpectedHTTPError
@@ -477,7 +486,7 @@ class ArgumentSpec(object):
self.supports_check_mode = True
self.argument_spec = dict(
name=dict(required=True),
- parent=dict(),
+ parent=dict(default='tcp_echo'),
ip=dict(),
interval=dict(type='int'),
timeout=dict(type='int'),
diff --git a/lib/ansible/modules/network/f5/bigip_monitor_tcp_half_open.py b/lib/ansible/modules/network/f5/bigip_monitor_tcp_half_open.py
old mode 100755
new mode 100644
index 8bc85485a7..f78282914e
--- a/lib/ansible/modules/network/f5/bigip_monitor_tcp_half_open.py
+++ b/lib/ansible/modules/network/f5/bigip_monitor_tcp_half_open.py
@@ -4,15 +4,19 @@
# Copyright (c) 2017 F5 Networks Inc.
# 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
+__metaclass__ = type
+
+
ANSIBLE_METADATA = {'metadata_version': '1.1',
'status': ['preview'],
'supported_by': 'community'}
-DOCUMENTATION = '''
+DOCUMENTATION = r'''
---
module: bigip_monitor_tcp_half_open
-short_description: Manages F5 BIG-IP LTM tcp monitors.
-description: Manages F5 BIG-IP LTM tcp monitors via iControl SOAP API.
+short_description: Manages F5 BIG-IP LTM tcp half-open monitors
+description: Manages F5 BIG-IP LTM tcp half-open monitors.
version_added: "2.4"
options:
name:
@@ -24,9 +28,9 @@ options:
parent:
description:
- The parent template of this monitor template. Once this value has
- been set, it cannot be changed. By default, this value is the C(tcp)
+ been set, it cannot be changed. By default, this value is the C(tcp_half_open)
parent on the C(Common) partition.
- default: "/Common/tcp"
+ default: "/Common/tcp_half_open"
ip:
description:
- IP address part of the IP/port definition. If this parameter is not
@@ -34,6 +38,13 @@ options:
'*'.
- If this value is an IP address, and the C(type) is C(tcp) (the default),
then a C(port) number must be specified.
+ port:
+ description:
+ - Port address part of the IP/port definition. If this parameter is not
+ provided when creating a new monitor, then the default value will be
+ '*'. Note that if specifying an IP address, a value between 1 and 65535
+ must be specified
+ version_added: 2.5
interval:
description:
- The interval specifying how frequently the monitor instance of this
@@ -56,6 +67,11 @@ options:
node to be marked up immediately after a valid response is received
from the node. If this parameter is not provided when creating
a new monitor, then the default value will be 0.
+ partition:
+ description:
+ - Device partition to manage resources on.
+ default: Common
+ version_added: 2.5
notes:
- Requires the f5-sdk Python package on the host. This is as easy as pip
install f5-sdk.
@@ -67,53 +83,62 @@ author:
- Tim Rupp (@caphrim007)
'''
-EXAMPLES = '''
+EXAMPLES = r'''
- name: Create TCP Monitor
bigip_monitor_tcp_half_open:
- state: "present"
- ip: "10.10.10.10"
- server: "lb.mydomain.com"
- user: "admin"
- password: "secret"
- name: "my_tcp_monitor"
+ state: present
+ ip: 10.10.10.10
+ server: lb.mydomain.com
+ user: admin
+ password: secret
+ name: my_tcp_monitor
delegate_to: localhost
- name: Remove TCP Monitor
bigip_monitor_tcp_half_open:
- state: "absent"
- server: "lb.mydomain.com"
- user: "admin"
- password: "secret"
- name: "my_tcp_monitor"
+ state: absent
+ server: lb.mydomain.com
+ user: admin
+ password: secret
+ name: my_tcp_monitor
+ delegate_to: localhost
+
+- name: Add half-open monitor for all addresses, port 514
+ bigip_monitor_tcp_half_open:
+ server: lb.mydomain.com
+ user: admin
+ port: 514
+ password: secret
+ name: my_tcp_monitor
delegate_to: localhost
'''
-RETURN = '''
+RETURN = r'''
parent:
- description: New parent template of the monitor.
- returned: changed
- type: string
- sample: "tcp"
+ description: New parent template of the monitor.
+ returned: changed
+ type: string
+ sample: tcp
ip:
- description: The new IP of IP/port definition.
- returned: changed
- type: string
- sample: "10.12.13.14"
+ description: The new IP of IP/port definition.
+ returned: changed
+ type: string
+ sample: 10.12.13.14
interval:
- description: The new interval in which to run the monitor check.
- returned: changed
- type: int
- sample: 2
+ description: The new interval in which to run the monitor check.
+ returned: changed
+ type: int
+ sample: 2
timeout:
- description: The new timeout in which the remote system must respond to the monitor.
- returned: changed
- type: int
- sample: 10
+ description: The new timeout in which the remote system must respond to the monitor.
+ returned: changed
+ type: int
+ sample: 10
time_until_up:
- description: The new time in which to mark a system as up after first successful response.
- returned: changed
- type: int
- sample: 2
+ description: The new time in which to mark a system as up after first successful response.
+ returned: changed
+ type: int
+ sample: 2
'''
import os
@@ -128,8 +153,8 @@ from ansible.module_utils.f5_utils import AnsibleF5Client
from ansible.module_utils.f5_utils import AnsibleF5Parameters
from ansible.module_utils.f5_utils import HAS_F5SDK
from ansible.module_utils.f5_utils import F5ModuleError
-from ansible.module_utils.f5_utils import iteritems
-from ansible.module_utils.f5_utils import defaultdict
+from ansible.module_utils.six import iteritems
+from collections import defaultdict
try:
from ansible.module_utils.f5_utils import iControlUnexpectedHTTPError
@@ -508,7 +533,7 @@ class ArgumentSpec(object):
self.supports_check_mode = True
self.argument_spec = dict(
name=dict(required=True),
- parent=dict(),
+ parent=dict(default='tcp_half_open'),
ip=dict(),
port=dict(type='int'),
interval=dict(type='int'),
diff --git a/test/units/modules/network/f5/test_bigip_monitor_tcp.py b/test/units/modules/network/f5/test_bigip_monitor_tcp.py
index eeac55ea56..f314e8d0b9 100644
--- a/test/units/modules/network/f5/test_bigip_monitor_tcp.py
+++ b/test/units/modules/network/f5/test_bigip_monitor_tcp.py
@@ -1,21 +1,7 @@
# -*- coding: utf-8 -*-
#
-# Copyright 2017 F5 Networks Inc.
-#
-# This file is part of Ansible
-#
-# Ansible is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# Ansible is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public Liccense for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with Ansible. If not, see .
+# Copyright (c) 2017 F5 Networks Inc.
+# 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)
__metaclass__ = type
@@ -30,10 +16,10 @@ if sys.version_info < (2, 7):
raise SkipTest("F5 Ansible modules require Python >= 2.7")
from ansible.compat.tests import unittest
-from ansible.compat.tests.mock import patch, Mock
+from ansible.compat.tests.mock import Mock
+from ansible.compat.tests.mock import patch
from ansible.module_utils.f5_utils import AnsibleF5Client
from ansible.module_utils.f5_utils import F5ModuleError
-from units.modules.utils import set_module_args
try:
from library.bigip_monitor_tcp import ParametersTcp
@@ -45,6 +31,7 @@ try:
from library.bigip_monitor_tcp import TcpEchoManager
from library.bigip_monitor_tcp import TcpHalfOpenManager
from ansible.module_utils.f5_utils import iControlUnexpectedHTTPError
+ from test.unit.modules.utils import set_module_args
except ImportError:
try:
from ansible.modules.network.f5.bigip_monitor_tcp import ParametersTcp
@@ -56,6 +43,7 @@ except ImportError:
from ansible.modules.network.f5.bigip_monitor_tcp import TcpEchoManager
from ansible.modules.network.f5.bigip_monitor_tcp import TcpHalfOpenManager
from ansible.module_utils.f5_utils import iControlUnexpectedHTTPError
+ from units.modules.utils import set_module_args
except ImportError:
raise SkipTest("F5 Ansible modules require the f5-sdk Python library")
diff --git a/test/units/modules/network/f5/test_bigip_monitor_tcp_echo.py b/test/units/modules/network/f5/test_bigip_monitor_tcp_echo.py
index b3633c9a61..c7e10076e3 100644
--- a/test/units/modules/network/f5/test_bigip_monitor_tcp_echo.py
+++ b/test/units/modules/network/f5/test_bigip_monitor_tcp_echo.py
@@ -1,21 +1,7 @@
# -*- coding: utf-8 -*-
#
-# Copyright 2017 F5 Networks Inc.
-#
-# This file is part of Ansible
-#
-# Ansible is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# Ansible is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public Liccense for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with Ansible. If not, see .
+# Copyright (c) 2017 F5 Networks Inc.
+# 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)
__metaclass__ = type
@@ -30,21 +16,26 @@ if sys.version_info < (2, 7):
raise SkipTest("F5 Ansible modules require Python >= 2.7")
from ansible.compat.tests import unittest
-from ansible.compat.tests.mock import patch, Mock
+from ansible.compat.tests.mock import Mock
+from ansible.compat.tests.mock import patch
from ansible.module_utils.f5_utils import AnsibleF5Client
from ansible.module_utils.f5_utils import F5ModuleError
-from units.modules.utils import set_module_args
try:
from library.bigip_monitor_tcp_echo import Parameters
from library.bigip_monitor_tcp_echo import ModuleManager
from library.bigip_monitor_tcp_echo import ArgumentSpec
+ from library.bigip_monitor_tcp_echo import HAS_F5SDK
+ from ansible.module_utils.f5_utils import iControlUnexpectedHTTPError
+ from test.unit.modules.utils import set_module_args
except ImportError:
try:
from ansible.modules.network.f5.bigip_monitor_tcp_echo import Parameters
from ansible.modules.network.f5.bigip_monitor_tcp_echo import ModuleManager
from ansible.modules.network.f5.bigip_monitor_tcp_echo import ArgumentSpec
+ from ansible.modules.network.f5.bigip_monitor_tcp_echo import HAS_F5SDK
from ansible.module_utils.f5_utils import iControlUnexpectedHTTPError
+ from units.modules.utils import set_module_args
except ImportError:
raise SkipTest("F5 Ansible modules require the f5-sdk Python library")
diff --git a/test/units/modules/network/f5/test_bigip_monitor_tcp_half_open.py b/test/units/modules/network/f5/test_bigip_monitor_tcp_half_open.py
index 6f67ddfdc2..51db8bf7fd 100644
--- a/test/units/modules/network/f5/test_bigip_monitor_tcp_half_open.py
+++ b/test/units/modules/network/f5/test_bigip_monitor_tcp_half_open.py
@@ -1,21 +1,7 @@
# -*- coding: utf-8 -*-
#
-# Copyright 2017 F5 Networks Inc.
-#
-# This file is part of Ansible
-#
-# Ansible is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# Ansible is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public Liccense for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with Ansible. If not, see .
+# Copyright (c) 2017 F5 Networks Inc.
+# 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)
__metaclass__ = type
@@ -30,21 +16,26 @@ if sys.version_info < (2, 7):
raise SkipTest("F5 Ansible modules require Python >= 2.7")
from ansible.compat.tests import unittest
-from ansible.compat.tests.mock import patch, Mock
+from ansible.compat.tests.mock import Mock
+from ansible.compat.tests.mock import patch
from ansible.module_utils.f5_utils import AnsibleF5Client
from ansible.module_utils.f5_utils import F5ModuleError
-from units.modules.utils import set_module_args
try:
from library.bigip_monitor_tcp_half_open import Parameters
from library.bigip_monitor_tcp_half_open import ModuleManager
from library.bigip_monitor_tcp_half_open import ArgumentSpec
+ from library.bigip_monitor_tcp_half_open import HAS_F5SDK
+ from ansible.module_utils.f5_utils import iControlUnexpectedHTTPError
+ from test.unit.modules.utils import set_module_args
except ImportError:
try:
from ansible.modules.network.f5.bigip_monitor_tcp_half_open import Parameters
from ansible.modules.network.f5.bigip_monitor_tcp_half_open import ModuleManager
from ansible.modules.network.f5.bigip_monitor_tcp_half_open import ArgumentSpec
+ from ansible.modules.network.f5.bigip_monitor_tcp_half_open import HAS_F5SDK
from ansible.module_utils.f5_utils import iControlUnexpectedHTTPError
+ from units.modules.utils import set_module_args
except ImportError:
raise SkipTest("F5 Ansible modules require the f5-sdk Python library")