fixes issue with RD encoding in names (#59990)
fixes issue with file download function on ASM file transfer endpoints corrects doc fragments removes not used parameters corrects various sanity failures previously ignored across multiple modules
This commit is contained in:
parent
54b04f227e
commit
2af67f0dce
28 changed files with 556 additions and 548 deletions
|
@ -32,6 +32,7 @@ f5_provider_spec = {
|
|||
),
|
||||
'server_port': dict(
|
||||
type='int',
|
||||
default=443,
|
||||
fallback=(env_fallback, ['F5_SERVER_PORT'])
|
||||
),
|
||||
'user': dict(
|
||||
|
@ -47,6 +48,7 @@ f5_provider_spec = {
|
|||
),
|
||||
'validate_certs': dict(
|
||||
type='bool',
|
||||
default='yes',
|
||||
fallback=(env_fallback, ['F5_VALIDATE_CERTS'])
|
||||
),
|
||||
'transport': dict(
|
||||
|
@ -55,7 +57,6 @@ f5_provider_spec = {
|
|||
),
|
||||
'timeout': dict(type='int'),
|
||||
'auth_provider': dict(),
|
||||
'proxy_to': dict(),
|
||||
}
|
||||
|
||||
f5_argument_spec = {
|
||||
|
@ -171,8 +172,8 @@ def run_commands(module, commands, check_rc=True):
|
|||
|
||||
|
||||
def flatten_boolean(value):
|
||||
truthy = list(BOOLEANS_TRUE) + ['enabled', 'True']
|
||||
falsey = list(BOOLEANS_FALSE) + ['disabled', 'False']
|
||||
truthy = list(BOOLEANS_TRUE) + ['enabled', 'True', 'true']
|
||||
falsey = list(BOOLEANS_FALSE) + ['disabled', 'False', 'false']
|
||||
if value is None:
|
||||
return None
|
||||
elif value in truthy:
|
||||
|
@ -251,6 +252,7 @@ def transform_name(partition='', name='', sub_path=''):
|
|||
|
||||
if name:
|
||||
name = name.replace('/', '~')
|
||||
name = name.replace('%', '%25')
|
||||
|
||||
if partition:
|
||||
partition = partition.replace('/', '~')
|
||||
|
@ -415,7 +417,6 @@ class F5BaseClient(object):
|
|||
self.merge_provider_auth_provider_param(result, provider)
|
||||
self.merge_provider_user_param(result, provider)
|
||||
self.merge_provider_password_param(result, provider)
|
||||
self.merge_proxy_to_param(result, provider)
|
||||
|
||||
return result
|
||||
|
||||
|
@ -490,12 +491,6 @@ class F5BaseClient(object):
|
|||
else:
|
||||
result['password'] = None
|
||||
|
||||
def merge_proxy_to_param(self, result, provider):
|
||||
if self.validate_params('proxy_to', provider):
|
||||
result['proxy_to'] = provider['proxy_to']
|
||||
else:
|
||||
result['proxy_to'] = None
|
||||
|
||||
|
||||
class AnsibleF5Parameters(object):
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
|
|
@ -296,6 +296,45 @@ class TransactionContextManager(object):
|
|||
raise Exception
|
||||
|
||||
|
||||
def download_asm_file(client, url, dest):
|
||||
"""Download an ASM file from the remote device
|
||||
|
||||
This method handles issues with ASM file endpoints that allow
|
||||
downloads of ASM objects on the BIG-IP.
|
||||
|
||||
Arguments:
|
||||
client (object): The F5RestClient connection object.
|
||||
url (string): The URL to download.
|
||||
dest (string): The location on (Ansible controller) disk to store the file.
|
||||
|
||||
Returns:
|
||||
bool: True on success. False otherwise.
|
||||
"""
|
||||
|
||||
with open(dest, 'wb') as fileobj:
|
||||
headers = {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
data = {'headers': headers,
|
||||
'verify': False
|
||||
}
|
||||
|
||||
response = client.api.get(url, headers=headers, json=data)
|
||||
if response.status == 200:
|
||||
if 'Content-Length' not in response.headers:
|
||||
error_message = "The Content-Length header is not present."
|
||||
raise F5ModuleError(error_message)
|
||||
|
||||
length = response.headers['Content-Length']
|
||||
|
||||
if int(length) > 0:
|
||||
fileobj.write(response.content)
|
||||
else:
|
||||
error = "Invalid Content-Length value returned: %s ," \
|
||||
"the value should be greater than 0" % length
|
||||
raise F5ModuleError(error)
|
||||
|
||||
|
||||
def download_file(client, url, dest):
|
||||
"""Download a file from the remote device
|
||||
|
||||
|
|
|
@ -46,6 +46,7 @@ options:
|
|||
partition:
|
||||
description:
|
||||
- Device partition to manage resources on.
|
||||
type: str
|
||||
default: Common
|
||||
notes:
|
||||
- Due to ID685681 it is not possible to execute ng_* tools via REST api on v12.x and 13.x, once this is fixed
|
||||
|
|
|
@ -183,7 +183,7 @@ try:
|
|||
from library.module_utils.network.f5.common import fq_name
|
||||
from library.module_utils.network.f5.common import f5_argument_spec
|
||||
from library.module_utils.network.f5.common import flatten_boolean
|
||||
from library.module_utils.network.f5.icontrol import download_file
|
||||
from library.module_utils.network.f5.icontrol import download_asm_file
|
||||
from library.module_utils.network.f5.icontrol import module_provisioned
|
||||
except ImportError:
|
||||
from ansible.module_utils.network.f5.bigip import F5RestClient
|
||||
|
@ -192,7 +192,7 @@ except ImportError:
|
|||
from ansible.module_utils.network.f5.common import fq_name
|
||||
from ansible.module_utils.network.f5.common import f5_argument_spec
|
||||
from ansible.module_utils.network.f5.common import flatten_boolean
|
||||
from ansible.module_utils.network.f5.icontrol import download_file
|
||||
from ansible.module_utils.network.f5.icontrol import download_asm_file
|
||||
from ansible.module_utils.network.f5.icontrol import module_provisioned
|
||||
|
||||
|
||||
|
@ -592,7 +592,7 @@ class ModuleManager(object):
|
|||
self.want.file
|
||||
)
|
||||
try:
|
||||
download_file(self.client, url, dest)
|
||||
download_asm_file(self.client, url, dest)
|
||||
except F5ModuleError:
|
||||
raise F5ModuleError(
|
||||
"Failed to download the file."
|
||||
|
|
|
@ -23,11 +23,13 @@ options:
|
|||
name:
|
||||
description:
|
||||
- Specifies the name of the alias.
|
||||
type: str
|
||||
required: True
|
||||
scope:
|
||||
description:
|
||||
- The scope of the alias; whether it is shared on the system, or usable only
|
||||
for the user who created it.
|
||||
type: str
|
||||
default: shared
|
||||
choices:
|
||||
- private
|
||||
|
@ -35,18 +37,22 @@ options:
|
|||
command:
|
||||
description:
|
||||
- The command to alias.
|
||||
type: str
|
||||
description:
|
||||
description:
|
||||
- Description of the alias.
|
||||
type: str
|
||||
partition:
|
||||
description:
|
||||
- Device partition to manage resources on.
|
||||
- This parameter is disregarded when the C(scope) is C(private).
|
||||
type: str
|
||||
default: Common
|
||||
state:
|
||||
description:
|
||||
- When C(present), ensures that the resource exists.
|
||||
- When C(absent), ensures the resource is removed.
|
||||
type: str
|
||||
default: present
|
||||
choices:
|
||||
- present
|
||||
|
@ -54,6 +60,7 @@ options:
|
|||
extends_documentation_fragment: f5
|
||||
author:
|
||||
- Tim Rupp (@caphrim007)
|
||||
- Wojciech Wypior (@wojtek0806)
|
||||
'''
|
||||
|
||||
EXAMPLES = r'''
|
||||
|
|
|
@ -25,6 +25,7 @@ options:
|
|||
name:
|
||||
description:
|
||||
- Specifies the name of the script.
|
||||
type: str
|
||||
required: True
|
||||
content:
|
||||
description:
|
||||
|
@ -32,17 +33,21 @@ options:
|
|||
- This parameter is typically used in conjunction with Ansible's C(file), or
|
||||
template lookup plugins. If this sounds foreign to you, see the examples
|
||||
in this documentation.
|
||||
type: str
|
||||
description:
|
||||
description:
|
||||
- Description of the cli script.
|
||||
type: str
|
||||
partition:
|
||||
description:
|
||||
- Device partition to manage resources on.
|
||||
type: str
|
||||
default: Common
|
||||
state:
|
||||
description:
|
||||
- When C(present), ensures that the script exists.
|
||||
- When C(absent), ensures the script is removed.
|
||||
type: str
|
||||
default: present
|
||||
choices:
|
||||
- present
|
||||
|
@ -50,6 +55,7 @@ options:
|
|||
extends_documentation_fragment: f5
|
||||
author:
|
||||
- Tim Rupp (@caphrim007)
|
||||
- Wojciech Wypior (@wojtek0806)
|
||||
'''
|
||||
|
||||
EXAMPLES = r'''
|
||||
|
|
|
@ -39,6 +39,7 @@ options:
|
|||
logic that is outside of C(tmsh) (such as grep'ing, awk'ing or other shell
|
||||
related things that are not C(tmsh), this behavior is not supported.
|
||||
required: True
|
||||
type: raw
|
||||
wait_for:
|
||||
description:
|
||||
- Specifies what to evaluate from the output of the command
|
||||
|
@ -46,6 +47,7 @@ options:
|
|||
the task to wait for a particular conditional to be true
|
||||
before moving forward. If the conditional is not true
|
||||
by the configured retries, the task fails. See examples.
|
||||
type: list
|
||||
aliases: ['waitfor']
|
||||
match:
|
||||
description:
|
||||
|
@ -55,6 +57,7 @@ options:
|
|||
then all conditionals in the I(wait_for) must be satisfied. If
|
||||
the value is set to C(any) then only one of the values must be
|
||||
satisfied.
|
||||
type: str
|
||||
choices:
|
||||
- any
|
||||
- all
|
||||
|
@ -65,6 +68,7 @@ options:
|
|||
before it is considered failed. The command is run on the
|
||||
target device every retry and evaluated against the I(wait_for)
|
||||
conditionals.
|
||||
type: int
|
||||
default: 10
|
||||
interval:
|
||||
description:
|
||||
|
@ -72,6 +76,7 @@ options:
|
|||
of the command. If the command does not pass the specified
|
||||
conditional, the interval indicates how to long to wait before
|
||||
trying the command again.
|
||||
type: int
|
||||
default: 1
|
||||
transport:
|
||||
description:
|
||||
|
@ -97,6 +102,7 @@ options:
|
|||
chdir:
|
||||
description:
|
||||
- Change into this directory before running the command.
|
||||
type: str
|
||||
version_added: 2.6
|
||||
extends_documentation_fragment: f5
|
||||
author:
|
||||
|
|
|
@ -50,6 +50,7 @@ options:
|
|||
C(tmsh) command C(load sys config from-terminal merge).
|
||||
- If you need to read configuration from a file or template, use
|
||||
Ansible's C(file) or C(template) lookup plugins respectively.
|
||||
type: str
|
||||
verify:
|
||||
description:
|
||||
- Validates the specified configuration to see whether they are
|
||||
|
|
|
@ -44,6 +44,7 @@ options:
|
|||
ip_version:
|
||||
description:
|
||||
- Specifies whether the DNS specifies IP addresses using IPv4 or IPv6.
|
||||
type: int
|
||||
choices:
|
||||
- 4
|
||||
- 6
|
||||
|
|
|
@ -90,6 +90,7 @@ options:
|
|||
- traffic-groups
|
||||
- trunks
|
||||
- udp-profiles
|
||||
- users
|
||||
- vcmp-guests
|
||||
- virtual-addresses
|
||||
- virtual-servers
|
||||
|
@ -153,6 +154,7 @@ options:
|
|||
- "!traffic-groups"
|
||||
- "!trunks"
|
||||
- "!udp-profiles"
|
||||
- "!users"
|
||||
- "!vcmp-guests"
|
||||
- "!virtual-addresses"
|
||||
- "!virtual-servers"
|
||||
|
@ -6088,6 +6090,53 @@ udp_profiles:
|
|||
type: bool
|
||||
sample: yes
|
||||
sample: hash/dictionary of values
|
||||
users:
|
||||
description: Details of the users on the system
|
||||
returned: When C(users) is specified in C(gather_subset).
|
||||
type: complex
|
||||
contains:
|
||||
description:
|
||||
description:
|
||||
- Description of the resource.
|
||||
returned: queried
|
||||
type: str
|
||||
sample: Admin user
|
||||
full_path:
|
||||
description:
|
||||
- Full name of the resource as known to BIG-IP.
|
||||
returned: queried
|
||||
type: str
|
||||
sample: admin
|
||||
name:
|
||||
description:
|
||||
- Relative name of the resource in BIG-IP.
|
||||
returned: queried
|
||||
type: str
|
||||
sample: admin
|
||||
partition_access:
|
||||
description:
|
||||
- Partition that user has access to, including user role.
|
||||
returned: queried
|
||||
type: complex
|
||||
contains:
|
||||
name:
|
||||
description:
|
||||
- Name of patition
|
||||
returned: queried
|
||||
type: str
|
||||
sample: all-partitions
|
||||
role:
|
||||
description:
|
||||
- Role allowed to user on parition
|
||||
returned: queried
|
||||
type: str
|
||||
sample: auditor
|
||||
shell:
|
||||
description:
|
||||
- The shell assigned to the user account
|
||||
returned: queried
|
||||
type: str
|
||||
sample: tmsh
|
||||
vcmp_guests:
|
||||
description: vCMP related information.
|
||||
returned: When C(vcmp-guests) is specified in C(gather_subset).
|
||||
|
@ -6165,6 +6214,12 @@ vcmp_guests:
|
|||
returned: queried
|
||||
type: str
|
||||
sample: bridged
|
||||
vlans:
|
||||
description:
|
||||
- List of VLANs on which the guest is either enabled or disabled.
|
||||
returned: queried
|
||||
type: list
|
||||
sample: ['/Common/vlan1', '/Common/vlan2']
|
||||
min_number_of_slots:
|
||||
description:
|
||||
- Specifies the minimum number of slots that the guest must be assigned to.
|
||||
|
@ -14529,6 +14584,88 @@ class TrunksFactManager(BaseManager):
|
|||
return {}
|
||||
|
||||
|
||||
class UsersParameters(BaseParameters):
|
||||
api_map = {
|
||||
'fullPath': 'full_path',
|
||||
'partitionAccess': 'partition_access',
|
||||
}
|
||||
|
||||
returnables = [
|
||||
'full_path',
|
||||
'name',
|
||||
'description',
|
||||
'partition_access',
|
||||
'shell',
|
||||
]
|
||||
|
||||
@property
|
||||
def partition_access(self):
|
||||
result = []
|
||||
if self._values['partition_access'] is None:
|
||||
return []
|
||||
for partition in self._values['partition_access']:
|
||||
del partition['nameReference']
|
||||
result.append(partition)
|
||||
return result
|
||||
|
||||
@property
|
||||
def shell(self):
|
||||
if self._values['shell'] in [None, 'none']:
|
||||
return None
|
||||
return self._values['shell']
|
||||
|
||||
|
||||
class UsersFactManager(BaseManager):
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.client = kwargs.get('client', None)
|
||||
self.module = kwargs.get('module', None)
|
||||
super(UsersFactManager, self).__init__(**kwargs)
|
||||
self.want = UsersParameters(params=self.module.params)
|
||||
|
||||
def exec_module(self):
|
||||
facts = self._exec_module()
|
||||
result = dict(users=facts)
|
||||
return result
|
||||
|
||||
def _exec_module(self):
|
||||
results = []
|
||||
facts = self.read_facts()
|
||||
for item in facts:
|
||||
attrs = item.to_return()
|
||||
results.append(attrs)
|
||||
results = sorted(results, key=lambda k: k['full_path'])
|
||||
return results
|
||||
|
||||
def read_facts(self):
|
||||
results = []
|
||||
collection = self.read_collection_from_device()
|
||||
for resource in collection:
|
||||
attrs = resource
|
||||
params = UsersParameters(params=attrs)
|
||||
results.append(params)
|
||||
return results
|
||||
|
||||
def read_collection_from_device(self):
|
||||
uri = "https://{0}:{1}/mgmt/tm/auth/user".format(
|
||||
self.client.provider['server'],
|
||||
self.client.provider['server_port'],
|
||||
)
|
||||
resp = self.client.api.get(uri)
|
||||
try:
|
||||
response = resp.json()
|
||||
except ValueError as ex:
|
||||
raise F5ModuleError(str(ex))
|
||||
if 'code' in response and response['code'] == 400:
|
||||
if 'message' in response:
|
||||
raise F5ModuleError(response['message'])
|
||||
else:
|
||||
raise F5ModuleError(resp.content)
|
||||
if 'items' not in response:
|
||||
return []
|
||||
result = response['items']
|
||||
return result
|
||||
|
||||
|
||||
class UdpProfilesParameters(BaseParameters):
|
||||
api_map = {
|
||||
'fullPath': 'full_path',
|
||||
|
@ -14672,6 +14809,7 @@ class VcmpGuestsParameters(BaseParameters):
|
|||
'mgmt_route',
|
||||
'mgmt_address',
|
||||
'mgmt_network',
|
||||
'vlans',
|
||||
'min_number_of_slots',
|
||||
'number_of_slots',
|
||||
'ssl_mode',
|
||||
|
@ -15241,20 +15379,85 @@ class VirtualServersParameters(BaseParameters):
|
|||
return False
|
||||
|
||||
def _read_current_message_routing_profiles_from_device(self):
|
||||
collection1 = self.client.api.tm.ltm.profile.diameters.get_collection()
|
||||
collection2 = self.client.api.tm.ltm.profile.sips.get_collection()
|
||||
result = [x.name for x in collection1]
|
||||
result += [x.name for x in collection2]
|
||||
result = []
|
||||
result += self._read_diameter_profiles_from_device()
|
||||
result += self._read_sip_profiles_from_device()
|
||||
return result
|
||||
|
||||
def _read_diameter_profiles_from_device(self):
|
||||
uri = "https://{0}:{1}/mgmt/tm/ltm/profile/diameter/".format(
|
||||
self.client.provider['server'],
|
||||
self.client.provider['server_port'],
|
||||
)
|
||||
resp = self.client.api.get(uri)
|
||||
try:
|
||||
response = resp.json()
|
||||
except ValueError as ex:
|
||||
raise F5ModuleError(str(ex))
|
||||
|
||||
if 'code' in response and response['code'] == 400:
|
||||
if 'message' in response:
|
||||
raise F5ModuleError(response['message'])
|
||||
else:
|
||||
raise F5ModuleError(resp.content)
|
||||
result = [x['name'] for x in response['items']]
|
||||
return result
|
||||
|
||||
def _read_sip_profiles_from_device(self):
|
||||
uri = "https://{0}:{1}/mgmt/tm/ltm/profile/sip/".format(
|
||||
self.client.provider['server'],
|
||||
self.client.provider['server_port'],
|
||||
)
|
||||
resp = self.client.api.get(uri)
|
||||
try:
|
||||
response = resp.json()
|
||||
except ValueError as ex:
|
||||
raise F5ModuleError(str(ex))
|
||||
|
||||
if 'code' in response and response['code'] == 400:
|
||||
if 'message' in response:
|
||||
raise F5ModuleError(response['message'])
|
||||
else:
|
||||
raise F5ModuleError(resp.content)
|
||||
result = [x['name'] for x in response['items']]
|
||||
return result
|
||||
|
||||
def _read_current_fastl4_profiles_from_device(self):
|
||||
collection = self.client.api.tm.ltm.profile.fastl4s.get_collection()
|
||||
result = [x.name for x in collection]
|
||||
uri = "https://{0}:{1}/mgmt/tm/ltm/profile/fastl4/".format(
|
||||
self.client.provider['server'],
|
||||
self.client.provider['server_port'],
|
||||
)
|
||||
resp = self.client.api.get(uri)
|
||||
try:
|
||||
response = resp.json()
|
||||
except ValueError as ex:
|
||||
raise F5ModuleError(str(ex))
|
||||
|
||||
if 'code' in response and response['code'] == 400:
|
||||
if 'message' in response:
|
||||
raise F5ModuleError(response['message'])
|
||||
else:
|
||||
raise F5ModuleError(resp.content)
|
||||
result = [x['name'] for x in response['items']]
|
||||
return result
|
||||
|
||||
def _read_current_fasthttp_profiles_from_device(self):
|
||||
collection = self.client.api.tm.ltm.profile.fasthttps.get_collection()
|
||||
result = [x.name for x in collection]
|
||||
uri = "https://{0}:{1}/mgmt/tm/ltm/profile/fasthttp/".format(
|
||||
self.client.provider['server'],
|
||||
self.client.provider['server_port'],
|
||||
)
|
||||
resp = self.client.api.get(uri)
|
||||
try:
|
||||
response = resp.json()
|
||||
except ValueError as ex:
|
||||
raise F5ModuleError(str(ex))
|
||||
|
||||
if 'code' in response and response['code'] == 400:
|
||||
if 'message' in response:
|
||||
raise F5ModuleError(response['message'])
|
||||
else:
|
||||
raise F5ModuleError(resp.content)
|
||||
result = [x['name'] for x in response['items']]
|
||||
return result
|
||||
|
||||
@property
|
||||
|
@ -15760,6 +15963,7 @@ class ModuleManager(object):
|
|||
'traffic-groups': TrafficGroupsFactManager,
|
||||
'trunks': TrunksFactManager,
|
||||
'udp-profiles': UdpProfilesFactManager,
|
||||
'users': UsersFactManager,
|
||||
'vcmp-guests': VcmpGuestsFactManager,
|
||||
'virtual-addresses': VirtualAddressesFactManager,
|
||||
'virtual-servers': VirtualServersFactManager,
|
||||
|
@ -15959,6 +16163,7 @@ class ArgumentSpec(object):
|
|||
'traffic-groups',
|
||||
'trunks',
|
||||
'udp-profiles',
|
||||
'users',
|
||||
'vcmp-guests',
|
||||
'virtual-addresses',
|
||||
'virtual-servers',
|
||||
|
@ -16026,6 +16231,7 @@ class ArgumentSpec(object):
|
|||
'!traffic-groups',
|
||||
'!trunks',
|
||||
'!udp-profiles',
|
||||
'!users',
|
||||
'!vcmp-guests',
|
||||
'!virtual-addresses',
|
||||
'!virtual-servers',
|
||||
|
|
|
@ -100,6 +100,7 @@ options:
|
|||
- To specify the log_publisher on a different partition from the AFM log profile, specify the name in fullpath
|
||||
format, e.g. C(/Foobar/log-publisher), otherwise the partition for log publisher
|
||||
is inferred from C(partition) module parameter.
|
||||
type: str
|
||||
rate_limit:
|
||||
description:
|
||||
- Defines a rate limit for all combined port misuse log messages per second. Beyond this rate limit,
|
||||
|
|
|
@ -23,6 +23,7 @@ options:
|
|||
name:
|
||||
description:
|
||||
- Specifies the name of the region.
|
||||
type: str
|
||||
required: True
|
||||
region_members:
|
||||
description:
|
||||
|
|
|
@ -65,6 +65,7 @@ options:
|
|||
partition:
|
||||
description:
|
||||
- Device partition to manage resources on.
|
||||
type: str
|
||||
default: Common
|
||||
extends_documentation_fragment: f5
|
||||
author:
|
||||
|
|
|
@ -42,6 +42,7 @@ options:
|
|||
description:
|
||||
- Specifies the type of source address translation associated with the specified transport config.
|
||||
- When set to C(snat) the C(pool) parameter needs to contain a name for a valid LSN or SNAT pool.
|
||||
type: str
|
||||
choices:
|
||||
- snat
|
||||
- none
|
||||
|
|
|
@ -23,6 +23,7 @@ options:
|
|||
name:
|
||||
description:
|
||||
- Specifies the name of the monitor.
|
||||
type: str
|
||||
required: True
|
||||
parent:
|
||||
description:
|
||||
|
|
|
@ -186,6 +186,7 @@ options:
|
|||
- Monitor rule type when C(monitors) is specified.
|
||||
- When creating a new pool, if this value is not specified, the default of
|
||||
'all' will be used.
|
||||
type: str
|
||||
choices:
|
||||
- all
|
||||
- at_least
|
||||
|
|
|
@ -138,6 +138,7 @@ options:
|
|||
- Specifies the fully qualified DNS hostname of the server used in Server Name Indication communications.
|
||||
When creating a new profile, the setting is provided by the parent profile.
|
||||
- The server name can also be a wildcard string containing the asterisk C(*) character.
|
||||
type: str
|
||||
version_added: 2.8
|
||||
sni_default:
|
||||
description:
|
||||
|
|
|
@ -1719,7 +1719,7 @@ class ArgumentSpec(object):
|
|||
poll_interval=dict(type='int'),
|
||||
poll_interval_global=dict(type='bool'),
|
||||
sampling_rate=dict(type='int'),
|
||||
sampling_rate_global=dict(type='int'),
|
||||
sampling_rate_global=dict(type='bool'),
|
||||
)
|
||||
),
|
||||
state=dict(
|
||||
|
|
|
@ -38,9 +38,12 @@ options:
|
|||
- ilx
|
||||
- lc
|
||||
- ltm
|
||||
- mgmt
|
||||
- pem
|
||||
- sam
|
||||
- sslo
|
||||
- swg
|
||||
- urldb
|
||||
- vcmp
|
||||
aliases:
|
||||
- name
|
||||
|
@ -51,21 +54,38 @@ options:
|
|||
For example, changing one module to C(dedicated) requires setting all
|
||||
others to C(none). Setting the level of a module to C(none) means that
|
||||
the module is not activated.
|
||||
- This parameter is not relevant to C(cgnat) and will not be applied to the
|
||||
C(cgnat) module.
|
||||
- Use c(state) absent to set c(level) to none and de-provision module.
|
||||
- This parameter is not relevant to C(cgnat - pre tmos 15.0) or C(mgmt) and will not be
|
||||
applied to the C(cgnat - pre tmos 15.0) or C(mgmt) module.
|
||||
type: str
|
||||
choices:
|
||||
- dedicated
|
||||
- nominal
|
||||
- minimum
|
||||
default: nominal
|
||||
memory:
|
||||
description:
|
||||
- Sets additional memory for management module. This is in addition to
|
||||
minimum allocated RAM of 1264MB.
|
||||
- The accepted value range is C(0 - 8192). Maximum value is restricted by
|
||||
systems available RAM.
|
||||
- Specifying C(large) reserves an additional 500MB for mgmt module.
|
||||
- Specifying C(medium) reserves an additional 200MB for mgmt module.
|
||||
- Specifying C(small) reserves no additional RAM for mgmt module.
|
||||
- Use Large for configurations containing more than 2000 objects, or
|
||||
more specifically, for any configuration that exceeds 1000 objects
|
||||
per 2 GB of installed memory. Changing the Management C(mgmt) size
|
||||
after initial provisioning causes a reprovision operation
|
||||
type: str
|
||||
version_added: 2.9
|
||||
state:
|
||||
description:
|
||||
- The state of the provisioned module on the system. When C(present),
|
||||
guarantees that the specified module is provisioned at the requested
|
||||
level provided that there are sufficient resources on the device (such
|
||||
as physical RAM) to support the provisioned module. When C(absent),
|
||||
de-provision the module.
|
||||
as physical RAM) to support the provisioned module.
|
||||
- When C(absent), de-provision the module.
|
||||
- C(absent), is not a relevent option to C(mgmt) module as module can not be de-provisioned.
|
||||
type: str
|
||||
choices:
|
||||
- present
|
||||
|
@ -74,6 +94,7 @@ options:
|
|||
extends_documentation_fragment: f5
|
||||
author:
|
||||
- Tim Rupp (@caphrim007)
|
||||
- Greg Crosby (@crosbygw)
|
||||
'''
|
||||
|
||||
EXAMPLES = r'''
|
||||
|
@ -96,6 +117,16 @@ EXAMPLES = r'''
|
|||
password: secret
|
||||
user: admin
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Provision mgmt with medium amount of memory.
|
||||
bigip_provision:
|
||||
module: mgmt
|
||||
memory: medium
|
||||
provider:
|
||||
server: lb.mydomain.com
|
||||
password: secret
|
||||
user: admin
|
||||
delegate_to: localhost
|
||||
'''
|
||||
|
||||
RETURN = r'''
|
||||
|
@ -104,11 +135,17 @@ level:
|
|||
returned: changed
|
||||
type: str
|
||||
sample: minimum
|
||||
memory:
|
||||
description: The new provisioned amount of memory for mgmt module.
|
||||
returned: changed
|
||||
type: str
|
||||
sample: large
|
||||
'''
|
||||
|
||||
import time
|
||||
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from distutils.version import LooseVersion
|
||||
|
||||
try:
|
||||
from library.module_utils.network.f5.bigip import F5RestClient
|
||||
|
@ -116,28 +153,36 @@ try:
|
|||
from library.module_utils.network.f5.common import AnsibleF5Parameters
|
||||
from library.module_utils.network.f5.common import f5_argument_spec
|
||||
from library.module_utils.network.f5.icontrol import TransactionContextManager
|
||||
from library.module_utils.network.f5.icontrol import tmos_version
|
||||
except ImportError:
|
||||
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 AnsibleF5Parameters
|
||||
from ansible.module_utils.network.f5.common import f5_argument_spec
|
||||
from ansible.module_utils.network.f5.icontrol import TransactionContextManager
|
||||
from ansible.module_utils.network.f5.icontrol import tmos_version
|
||||
|
||||
|
||||
class Parameters(AnsibleF5Parameters):
|
||||
api_attributes = ['level']
|
||||
api_map = {
|
||||
'value': 'memory',
|
||||
}
|
||||
|
||||
returnables = ['level']
|
||||
api_attributes = [
|
||||
'level',
|
||||
'value',
|
||||
]
|
||||
|
||||
updatables = ['level', 'cgnat']
|
||||
returnables = [
|
||||
'level',
|
||||
'memory',
|
||||
]
|
||||
|
||||
@property
|
||||
def level(self):
|
||||
if self._values['level'] is None:
|
||||
return None
|
||||
if self.state == 'absent':
|
||||
return 'none'
|
||||
return str(self._values['level'])
|
||||
updatables = [
|
||||
'level',
|
||||
'cgnat',
|
||||
'memory',
|
||||
]
|
||||
|
||||
|
||||
class ApiParameters(Parameters):
|
||||
|
@ -145,7 +190,37 @@ class ApiParameters(Parameters):
|
|||
|
||||
|
||||
class ModuleParameters(Parameters):
|
||||
pass
|
||||
|
||||
def _validate_memory_limit(self, limit):
|
||||
if self._values['memory'] == 'small':
|
||||
return '0'
|
||||
if self._values['memory'] == 'medium':
|
||||
return '200'
|
||||
if self._values['memory'] == 'large':
|
||||
return '500'
|
||||
if 0 <= int(limit) <= 8192:
|
||||
return str(limit)
|
||||
raise F5ModuleError(
|
||||
"Valid 'memory' must be in range 0 - 8192, 'small', 'medium', or 'large'."
|
||||
)
|
||||
|
||||
@property
|
||||
def level(self):
|
||||
if self._values['level'] is None:
|
||||
return None
|
||||
if self._values['module'] == 'mgmt':
|
||||
return None
|
||||
if self.state == 'absent':
|
||||
return 'none'
|
||||
return str(self._values['level'])
|
||||
|
||||
@property
|
||||
def memory(self):
|
||||
if self._values['memory'] is None:
|
||||
return None
|
||||
if self._values['module'] != 'mgmt':
|
||||
return None
|
||||
return int(self._validate_memory_limit(self._values['memory']))
|
||||
|
||||
|
||||
class Changes(Parameters):
|
||||
|
@ -165,7 +240,17 @@ class UsableChanges(Changes):
|
|||
|
||||
|
||||
class ReportableChanges(Changes):
|
||||
pass
|
||||
@property
|
||||
def memory(self):
|
||||
if self._values['memory'] is None:
|
||||
return None
|
||||
if self._values['memory'] == '0':
|
||||
return 'small'
|
||||
if self._values['memory'] == '200':
|
||||
return 'medium'
|
||||
if self._values['memory'] == '500':
|
||||
return 'large'
|
||||
return str(self._values['memory'])
|
||||
|
||||
|
||||
class Difference(object):
|
||||
|
@ -234,19 +319,26 @@ class ModuleManager(object):
|
|||
changed = self.present()
|
||||
elif state == "absent":
|
||||
changed = self.absent()
|
||||
|
||||
changes = self.changes.to_return()
|
||||
reportable = ReportableChanges(params=self.changes.to_return())
|
||||
changes = reportable.to_return()
|
||||
result.update(**changes)
|
||||
result.update(dict(changed=changed))
|
||||
return result
|
||||
|
||||
def version_is_greater_or_equal_15(self):
|
||||
version = tmos_version(self.client)
|
||||
if LooseVersion(version) >= LooseVersion('15.0.0'):
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def present(self):
|
||||
if self.exists():
|
||||
return False
|
||||
return self.update()
|
||||
|
||||
def exists(self):
|
||||
if self.want.module == 'cgnat':
|
||||
if self.want.module == 'cgnat' and not self.version_is_greater_or_equal_15():
|
||||
uri = "https://{0}:{1}/mgmt/tm/sys/feature-module/cgnat/".format(
|
||||
self.client.provider['server'],
|
||||
self.client.provider['server_port'],
|
||||
|
@ -257,7 +349,7 @@ class ModuleManager(object):
|
|||
except ValueError as ex:
|
||||
raise F5ModuleError(str(ex))
|
||||
|
||||
if 'code' in response and response['code'] == 400:
|
||||
if 'code' in response and response['code'] in [400, 404]:
|
||||
if 'message' in response:
|
||||
raise F5ModuleError(response['message'])
|
||||
else:
|
||||
|
@ -266,6 +358,25 @@ class ModuleManager(object):
|
|||
return False
|
||||
elif 'enabled' in response and response['enabled'] is True:
|
||||
return True
|
||||
elif self.want.module == 'mgmt':
|
||||
uri = "https://{0}:{1}/mgmt/tm/sys/db/provision.extramb/".format(
|
||||
self.client.provider['server'],
|
||||
self.client.provider['server_port'],
|
||||
)
|
||||
resp = self.client.api.get(uri)
|
||||
try:
|
||||
response = resp.json()
|
||||
except ValueError:
|
||||
return False
|
||||
if resp.status == 404 or 'code' in response and response['code'] == 404:
|
||||
return False
|
||||
if str(response['value']) != 0 and self.want.memory == 0:
|
||||
return False
|
||||
if str(response['value']) == 0 and self.want.memory == 0:
|
||||
return True
|
||||
if str(response['value']) == self.want.memory:
|
||||
return True
|
||||
return False
|
||||
try:
|
||||
for x in range(0, 5):
|
||||
uri = "https://{0}:{1}/mgmt/tm/sys/provision/{2}".format(
|
||||
|
@ -279,7 +390,7 @@ class ModuleManager(object):
|
|||
except ValueError as ex:
|
||||
raise F5ModuleError(str(ex))
|
||||
|
||||
if 'code' in response and response['code'] == 400:
|
||||
if 'code' in response and response['code'] in [400, 404]:
|
||||
if 'message' in response:
|
||||
raise F5ModuleError(response['message'])
|
||||
else:
|
||||
|
@ -303,11 +414,9 @@ class ModuleManager(object):
|
|||
return False
|
||||
if self.module.check_mode:
|
||||
return True
|
||||
|
||||
result = self.update_on_device()
|
||||
if self.want.module == 'cgnat':
|
||||
if self.want.module == 'cgnat' and not self.version_is_greater_or_equal_15():
|
||||
return result
|
||||
|
||||
self._wait_for_module_provisioning()
|
||||
|
||||
if self.want.module == 'vcmp':
|
||||
|
@ -318,6 +427,10 @@ class ModuleManager(object):
|
|||
self._wait_for_asm_ready()
|
||||
if self.want.module == 'afm':
|
||||
self._wait_for_afm_ready()
|
||||
if self.want.module == 'cgnat':
|
||||
self._wait_for_cgnat_ready()
|
||||
if self.want.module == 'mgmt':
|
||||
self._wait_for_mgmt_ready()
|
||||
return True
|
||||
|
||||
def should_reboot(self):
|
||||
|
@ -334,7 +447,7 @@ class ModuleManager(object):
|
|||
except ValueError as ex:
|
||||
raise F5ModuleError(str(ex))
|
||||
|
||||
if 'code' in response and response['code'] == 400:
|
||||
if 'code' in response and response['code'] in [400, 404]:
|
||||
if 'message' in response:
|
||||
raise F5ModuleError(response['message'])
|
||||
else:
|
||||
|
@ -404,11 +517,11 @@ class ModuleManager(object):
|
|||
return False
|
||||
|
||||
def update_on_device(self):
|
||||
if self.want.module == 'cgnat':
|
||||
if self.want.module == 'cgnat' and not self.version_is_greater_or_equal_15():
|
||||
if self.changes.cgnat:
|
||||
return self.provision_cgnat_on_device()
|
||||
return False
|
||||
elif self.want.level == 'dedicated':
|
||||
elif self.want.level == 'dedicated' and self.want.module != 'mgmt':
|
||||
self.provision_dedicated_on_device()
|
||||
else:
|
||||
self.provision_non_dedicated_on_device()
|
||||
|
@ -425,7 +538,7 @@ class ModuleManager(object):
|
|||
except ValueError as ex:
|
||||
raise F5ModuleError(str(ex))
|
||||
|
||||
if 'code' in response and response['code'] == 400:
|
||||
if 'code' in response and response['code'] in [400, 404]:
|
||||
if 'message' in response:
|
||||
raise F5ModuleError(response['message'])
|
||||
else:
|
||||
|
@ -444,7 +557,7 @@ class ModuleManager(object):
|
|||
except ValueError as ex:
|
||||
raise F5ModuleError(str(ex))
|
||||
|
||||
if 'code' in response and response['code'] == 400:
|
||||
if 'code' in response and response['code'] in [400, 404]:
|
||||
if 'message' in response:
|
||||
raise F5ModuleError(response['message'])
|
||||
else:
|
||||
|
@ -461,7 +574,7 @@ class ModuleManager(object):
|
|||
except ValueError as ex:
|
||||
raise F5ModuleError(str(ex))
|
||||
|
||||
if 'code' in response and response['code'] == 400:
|
||||
if 'code' in response and response['code'] in [400, 404]:
|
||||
if 'message' in response:
|
||||
raise F5ModuleError(response['message'])
|
||||
else:
|
||||
|
@ -474,7 +587,7 @@ class ModuleManager(object):
|
|||
except ValueError as ex:
|
||||
raise F5ModuleError(str(ex))
|
||||
|
||||
if 'code' in response and response['code'] == 400:
|
||||
if 'code' in response and response['code'] in [400, 404]:
|
||||
if 'message' in response:
|
||||
raise F5ModuleError(response['message'])
|
||||
else:
|
||||
|
@ -482,25 +595,31 @@ class ModuleManager(object):
|
|||
|
||||
def provision_non_dedicated_on_device(self):
|
||||
params = self.want.api_params()
|
||||
uri = "https://{0}:{1}/mgmt/tm/sys/provision/{2}".format(
|
||||
self.client.provider['server'],
|
||||
self.client.provider['server_port'],
|
||||
self.want.module
|
||||
)
|
||||
if self.want.module == 'mgmt':
|
||||
uri = "https://{0}:{1}/mgmt/tm/sys/db/provision.extramb/".format(
|
||||
self.client.provider['server'],
|
||||
self.client.provider['server_port'],
|
||||
)
|
||||
else:
|
||||
uri = "https://{0}:{1}/mgmt/tm/sys/provision/{2}".format(
|
||||
self.client.provider['server'],
|
||||
self.client.provider['server_port'],
|
||||
self.want.module
|
||||
)
|
||||
resp = self.client.api.patch(uri, json=params)
|
||||
try:
|
||||
response = resp.json()
|
||||
except ValueError as ex:
|
||||
raise F5ModuleError(str(ex))
|
||||
|
||||
if 'code' in response and response['code'] == 400:
|
||||
if 'code' in response and response['code'] in [400, 404]:
|
||||
if 'message' in response:
|
||||
raise F5ModuleError(response['message'])
|
||||
else:
|
||||
raise F5ModuleError(resp.content)
|
||||
|
||||
def read_current_from_device(self):
|
||||
if self.want.module == 'cgnat':
|
||||
if self.want.module == 'cgnat' and not self.version_is_greater_or_equal_15():
|
||||
uri = "https://{0}:{1}/mgmt/tm/sys/feature-module/cgnat/".format(
|
||||
self.client.provider['server'],
|
||||
self.client.provider['server_port'],
|
||||
|
@ -511,12 +630,27 @@ class ModuleManager(object):
|
|||
except ValueError as ex:
|
||||
raise F5ModuleError(str(ex))
|
||||
|
||||
if 'code' in response and response['code'] == 400:
|
||||
if 'code' in response and response['code'] in [400, 404]:
|
||||
if 'message' in response:
|
||||
raise F5ModuleError(response['message'])
|
||||
else:
|
||||
raise F5ModuleError(resp.content)
|
||||
elif self.want.module == 'mgmt':
|
||||
uri = "https://{0}:{1}/mgmt/tm/sys/db/provision.extramb/".format(
|
||||
self.client.provider['server'],
|
||||
self.client.provider['server_port'],
|
||||
)
|
||||
resp = self.client.api.get(uri)
|
||||
try:
|
||||
response = resp.json()
|
||||
except ValueError as ex:
|
||||
raise F5ModuleError(str(ex))
|
||||
|
||||
if 'code' in response and response['code'] in [400, 404]:
|
||||
if 'message' in response:
|
||||
raise F5ModuleError(response['message'])
|
||||
else:
|
||||
raise F5ModuleError(resp.content)
|
||||
else:
|
||||
uri = "https://{0}:{1}/mgmt/tm/sys/provision/{2}".format(
|
||||
self.client.provider['server'],
|
||||
|
@ -529,7 +663,7 @@ class ModuleManager(object):
|
|||
except ValueError as ex:
|
||||
raise F5ModuleError(str(ex))
|
||||
|
||||
if 'code' in response and response['code'] == 400:
|
||||
if 'code' in response and response['code'] in [400, 404]:
|
||||
if 'message' in response:
|
||||
raise F5ModuleError(response['message'])
|
||||
else:
|
||||
|
@ -544,7 +678,7 @@ class ModuleManager(object):
|
|||
def remove(self):
|
||||
if self.module.check_mode:
|
||||
return True
|
||||
if self.want.module == 'cgnat':
|
||||
if self.want.module == 'cgnat' and not self.version_is_greater_or_equal_15():
|
||||
return self.deprovision_cgnat_on_device()
|
||||
|
||||
self.remove_from_device()
|
||||
|
@ -760,6 +894,78 @@ class ModuleManager(object):
|
|||
pass
|
||||
time.sleep(5)
|
||||
|
||||
def _wait_for_cgnat_ready(self):
|
||||
"""Waits specifically for CGNAT
|
||||
|
||||
Starting in TMOS 15.0 cgnat can take longer to actually start up than all the previous checks take.
|
||||
This check here is specifically waiting for a cgnat API to stop raising
|
||||
errors.
|
||||
:return:
|
||||
"""
|
||||
nops = 0
|
||||
while nops < 3:
|
||||
try:
|
||||
uri = "https://{0}:{1}/mgmt/tm/ltm/lsn-pool".format(
|
||||
self.client.provider['server'],
|
||||
self.client.provider['server_port'],
|
||||
)
|
||||
resp = self.client.api.get(uri)
|
||||
|
||||
try:
|
||||
response = resp.json()
|
||||
except ValueError as ex:
|
||||
raise F5ModuleError(str(ex))
|
||||
|
||||
if 'code' in response and response['code'] in [400, 403]:
|
||||
if 'message' in response:
|
||||
raise F5ModuleError(response['message'])
|
||||
else:
|
||||
raise F5ModuleError(resp.content)
|
||||
|
||||
if len(response['items']) >= 0:
|
||||
nops += 1
|
||||
else:
|
||||
nops = 0
|
||||
except Exception as ex:
|
||||
pass
|
||||
time.sleep(5)
|
||||
|
||||
def _wait_for_mgmt_ready(self):
|
||||
"""Waits specifically for CGNAT
|
||||
|
||||
Modifying memory reserve for mgmt can take longer to actually start up than all the previous checks take.
|
||||
This check here is specifically waiting for a cgnat API to stop raising
|
||||
errors.
|
||||
:return:
|
||||
"""
|
||||
nops = 0
|
||||
while nops < 3:
|
||||
try:
|
||||
uri = "https://{0}:{1}/mgmt/tm".format(
|
||||
self.client.provider['server'],
|
||||
self.client.provider['server_port'],
|
||||
)
|
||||
resp = self.client.api.get(uri)
|
||||
|
||||
try:
|
||||
response = resp.json()
|
||||
except ValueError as ex:
|
||||
raise F5ModuleError(str(ex))
|
||||
|
||||
if 'code' in response and response['code'] in [400, 403]:
|
||||
if 'message' in response:
|
||||
raise F5ModuleError(response['message'])
|
||||
else:
|
||||
raise F5ModuleError(resp.content)
|
||||
|
||||
if len(response['items']) >= 0:
|
||||
nops += 1
|
||||
else:
|
||||
nops = 0
|
||||
except Exception as ex:
|
||||
pass
|
||||
time.sleep(5)
|
||||
|
||||
def _restart_asm(self):
|
||||
try:
|
||||
params = dict(
|
||||
|
@ -848,9 +1054,9 @@ class ArgumentSpec(object):
|
|||
module=dict(
|
||||
required=True,
|
||||
choices=[
|
||||
'afm', 'am', 'sam', 'asm', 'avr', 'fps',
|
||||
'gtm', 'lc', 'ltm', 'pem', 'swg', 'ilx',
|
||||
'apm', 'vcmp', 'cgnat'
|
||||
'afm', 'am', 'apm', 'asm', 'avr', 'cgnat',
|
||||
'fps', 'gtm', 'ilx', 'lc', 'ltm', 'mgmt',
|
||||
'pem', 'sam', 'sslo', 'swg', 'urldb', 'vcmp'
|
||||
],
|
||||
aliases=['name']
|
||||
),
|
||||
|
@ -858,6 +1064,7 @@ class ArgumentSpec(object):
|
|||
default='nominal',
|
||||
choices=['nominal', 'dedicated', 'minimum']
|
||||
),
|
||||
memory=dict(),
|
||||
state=dict(
|
||||
default='present',
|
||||
choices=['present', 'absent']
|
||||
|
|
|
@ -58,7 +58,7 @@ options:
|
|||
passphrase:
|
||||
description:
|
||||
- Specifies the passphrase that is necessary to load the specified UCS file.
|
||||
type: bool
|
||||
type: str
|
||||
reset_trust:
|
||||
description:
|
||||
- When specified, the device and trust domain certs and keys are not
|
||||
|
|
|
@ -1068,9 +1068,9 @@ class ArgumentSpec(object):
|
|||
def __init__(self):
|
||||
self.supports_check_mode = True
|
||||
argument_spec = dict(
|
||||
name=dict(
|
||||
username_credential=dict(
|
||||
required=True,
|
||||
aliases=['username_credential']
|
||||
aliases=['name']
|
||||
),
|
||||
password_credential=dict(
|
||||
no_log=True,
|
||||
|
|
|
@ -902,7 +902,7 @@ class ArgumentSpec(object):
|
|||
options=dict(
|
||||
interface=dict(),
|
||||
tagging=dict(
|
||||
choice=['tagged', 'untagged']
|
||||
choices=['tagged', 'untagged']
|
||||
)
|
||||
)
|
||||
),
|
||||
|
|
|
@ -53,6 +53,7 @@ options:
|
|||
inbound_virtual:
|
||||
description:
|
||||
- Settings to configure the virtual which will receive the inbound connection.
|
||||
type: dict
|
||||
suboptions:
|
||||
address:
|
||||
description:
|
||||
|
@ -72,8 +73,8 @@ options:
|
|||
- The port that the virtual listens for connections on.
|
||||
- When creating a new application, if this parameter is not specified, the
|
||||
default value of C(8080) will be used.
|
||||
type: str
|
||||
default: 8080
|
||||
type: dict
|
||||
service_environment:
|
||||
description:
|
||||
- Specifies the name of service environment that the application will be
|
||||
|
|
|
@ -53,6 +53,7 @@ options:
|
|||
inbound_virtual:
|
||||
description:
|
||||
- Settings to configure the virtual which will receive the inbound connection.
|
||||
type: dict
|
||||
suboptions:
|
||||
address:
|
||||
description:
|
||||
|
|
|
@ -152,6 +152,7 @@ options:
|
|||
- Specifies the name of service environment or the hostname of the BIG-IP that
|
||||
the application will be deployed to.
|
||||
- When creating a new application, this parameter is required.
|
||||
type: str
|
||||
add_analytics:
|
||||
description:
|
||||
- Collects statistics of the BIG-IP that the application is deployed to.
|
||||
|
|
|
@ -119,6 +119,7 @@ options:
|
|||
statistics:
|
||||
description:
|
||||
- Specify the statistics collection for discovered device.
|
||||
type: dict
|
||||
suboptions:
|
||||
enable:
|
||||
description:
|
||||
|
|
|
@ -52,7 +52,6 @@ options:
|
|||
for either connecting or sending commands. If the timeout is
|
||||
exceeded before the operation is completed, the module will error.
|
||||
type: int
|
||||
default: 10
|
||||
ssh_keyfile:
|
||||
description:
|
||||
- Specifies the SSH keyfile to use to authenticate the connection to
|
||||
|
@ -66,6 +65,11 @@ options:
|
|||
type: str
|
||||
choices: [ cli, rest ]
|
||||
default: rest
|
||||
auth_provider:
|
||||
description:
|
||||
- Configures the auth provider for to obtain authentication tokens from the remote device.
|
||||
- This option is really used when working with BIG-IQ devices.
|
||||
type: str
|
||||
notes:
|
||||
- For more information on using Ansible to manage F5 Networks devices see U(https://www.ansible.com/integrations/networks/f5).
|
||||
- Requires BIG-IP software version >= 12.
|
||||
|
|
|
@ -3682,504 +3682,28 @@ lib/ansible/modules/network/exos/exos_command.py validate-modules:E338
|
|||
lib/ansible/modules/network/exos/exos_config.py validate-modules:E337
|
||||
lib/ansible/modules/network/exos/exos_config.py validate-modules:E338
|
||||
lib/ansible/modules/network/exos/exos_facts.py validate-modules:E337
|
||||
lib/ansible/modules/network/f5/_bigip_asm_policy.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/_bigip_asm_policy.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/_bigip_asm_policy.py validate-modules:E337
|
||||
lib/ansible/modules/network/f5/_bigip_asm_policy.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/_bigip_facts.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/_bigip_facts.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/_bigip_facts.py validate-modules:E337
|
||||
lib/ansible/modules/network/f5/_bigip_facts.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/_bigip_gtm_facts.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/_bigip_gtm_facts.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/_bigip_gtm_facts.py validate-modules:E337
|
||||
lib/ansible/modules/network/f5/_bigip_gtm_facts.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_apm_policy_fetch.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_apm_policy_fetch.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_apm_policy_fetch.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_apm_policy_import.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_apm_policy_import.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_apm_policy_import.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_appsvcs_extension.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_appsvcs_extension.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_appsvcs_extension.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_asm_policy_fetch.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_asm_policy_fetch.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_asm_policy_fetch.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_asm_policy_import.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_asm_policy_import.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_asm_policy_import.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_asm_policy_manage.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_asm_policy_manage.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_asm_policy_manage.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_asm_policy_server_technology.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_asm_policy_server_technology.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_asm_policy_server_technology.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_asm_policy_signature_set.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_asm_policy_signature_set.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_asm_policy_signature_set.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_cli_alias.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_cli_alias.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_cli_alias.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_cli_script.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_cli_script.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_cli_script.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_command.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_command.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_command.py validate-modules:E337
|
||||
lib/ansible/modules/network/f5/bigip_command.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_config.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_config.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_config.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_configsync_action.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_configsync_action.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_configsync_action.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_data_group.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_data_group.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_data_group.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_device_auth.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_device_auth.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_device_auth.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_device_auth_ldap.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_device_auth_ldap.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_device_auth_ldap.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_device_connectivity.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_device_connectivity.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_device_connectivity.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_device_dns.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_device_dns.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_device_dns.py validate-modules:E337
|
||||
lib/ansible/modules/network/f5/bigip_device_dns.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_device_group.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_device_group.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_device_group.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_device_group_member.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_device_group_member.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_device_group_member.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_device_ha_group.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_device_ha_group.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_device_ha_group.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_device_httpd.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_device_httpd.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_device_httpd.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_device_info.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_device_info.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_device_info.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_device_license.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_device_license.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_device_license.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_device_ntp.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_device_ntp.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_device_ntp.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_device_sshd.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_device_sshd.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_device_sshd.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_device_syslog.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_device_syslog.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_device_syslog.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_device_traffic_group.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_device_traffic_group.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_device_traffic_group.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_device_trust.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_device_trust.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_device_trust.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_dns_cache_resolver.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_dns_cache_resolver.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_dns_cache_resolver.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_dns_nameserver.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_dns_nameserver.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_dns_nameserver.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_dns_resolver.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_dns_resolver.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_dns_resolver.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_dns_zone.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_dns_zone.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_dns_zone.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_file_copy.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_file_copy.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_file_copy.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_firewall_address_list.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_firewall_address_list.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_firewall_address_list.py validate-modules:E326
|
||||
lib/ansible/modules/network/f5/bigip_firewall_address_list.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_firewall_dos_profile.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_firewall_dos_profile.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_firewall_dos_profile.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_firewall_dos_vector.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_firewall_dos_vector.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_firewall_dos_vector.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_firewall_global_rules.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_firewall_global_rules.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_firewall_global_rules.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_firewall_log_profile.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_firewall_log_profile.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_firewall_log_profile.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_firewall_log_profile_network.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_firewall_log_profile_network.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_firewall_log_profile_network.py validate-modules:E335
|
||||
lib/ansible/modules/network/f5/bigip_firewall_log_profile_network.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_firewall_policy.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_firewall_policy.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_firewall_policy.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_firewall_port_list.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_firewall_port_list.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_firewall_port_list.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_firewall_rule.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_firewall_rule.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_firewall_rule.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_firewall_rule_list.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_firewall_rule_list.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_firewall_rule_list.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_firewall_schedule.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_firewall_schedule.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_firewall_schedule.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_gtm_datacenter.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_gtm_datacenter.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_gtm_datacenter.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_gtm_global.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_gtm_global.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_gtm_global.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_bigip.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_bigip.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_bigip.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_external.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_external.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_external.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_firepass.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_firepass.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_firepass.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_http.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_http.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_http.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_https.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_https.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_https.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_tcp.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_tcp.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_tcp.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_tcp_half_open.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_tcp_half_open.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_gtm_monitor_tcp_half_open.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_gtm_pool.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_gtm_pool.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_gtm_pool.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_gtm_pool_member.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_gtm_pool_member.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_gtm_pool_member.py validate-modules:E326
|
||||
lib/ansible/modules/network/f5/bigip_gtm_pool_member.py validate-modules:E337
|
||||
lib/ansible/modules/network/f5/bigip_gtm_pool_member.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_gtm_pool_member.py validate-modules:E340
|
||||
lib/ansible/modules/network/f5/bigip_gtm_server.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_gtm_server.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_gtm_server.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_gtm_topology_record.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_gtm_topology_record.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_gtm_topology_record.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_gtm_topology_region.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_gtm_topology_region.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_gtm_topology_region.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_gtm_virtual_server.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_gtm_virtual_server.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_gtm_virtual_server.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_gtm_wide_ip.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_gtm_wide_ip.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_gtm_wide_ip.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_hostname.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_hostname.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_hostname.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_iapp_service.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_iapp_service.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_iapp_service.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_iapp_template.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_iapp_template.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_iapp_template.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_ike_peer.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_ike_peer.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_ike_peer.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_imish_config.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_imish_config.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_imish_config.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_ipsec_policy.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_ipsec_policy.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_ipsec_policy.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_irule.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_irule.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_irule.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_log_destination.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_log_destination.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_log_destination.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_log_publisher.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_log_publisher.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_log_publisher.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_lx_package.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_lx_package.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_lx_package.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_management_route.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_management_route.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_management_route.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_message_routing_peer.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_message_routing_peer.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_message_routing_peer.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_message_routing_protocol.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_message_routing_protocol.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_message_routing_protocol.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_message_routing_route.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_message_routing_route.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_message_routing_route.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_message_routing_router.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_message_routing_router.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_message_routing_router.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_message_routing_transport_config.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_message_routing_transport_config.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_message_routing_transport_config.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_monitor_dns.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_monitor_dns.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_monitor_dns.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_monitor_external.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_monitor_external.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_monitor_external.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_monitor_gateway_icmp.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_monitor_gateway_icmp.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_monitor_gateway_icmp.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_monitor_http.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_monitor_http.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_monitor_http.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_monitor_https.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_monitor_https.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_monitor_https.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_monitor_ldap.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_monitor_ldap.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_monitor_ldap.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_monitor_snmp_dca.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_monitor_snmp_dca.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_monitor_snmp_dca.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_monitor_tcp.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_monitor_tcp.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_monitor_tcp.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_monitor_tcp_echo.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_monitor_tcp_echo.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_monitor_tcp_echo.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_monitor_tcp_half_open.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_monitor_tcp_half_open.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_monitor_tcp_half_open.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_monitor_udp.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_monitor_udp.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_monitor_udp.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_node.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_node.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_node.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_partition.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_partition.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_partition.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_password_policy.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_password_policy.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_password_policy.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_policy.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_policy.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_policy.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_policy_rule.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_policy_rule.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_policy_rule.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_pool.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_pool.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_pool.py validate-modules:E326
|
||||
lib/ansible/modules/network/f5/bigip_pool.py validate-modules:E337
|
||||
lib/ansible/modules/network/f5/bigip_pool.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_pool.py validate-modules:E340
|
||||
lib/ansible/modules/network/f5/bigip_pool_member.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_pool_member.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_pool_member.py validate-modules:E326
|
||||
lib/ansible/modules/network/f5/bigip_pool_member.py validate-modules:E337
|
||||
lib/ansible/modules/network/f5/bigip_pool_member.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_pool_member.py validate-modules:E340
|
||||
lib/ansible/modules/network/f5/bigip_profile_analytics.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_profile_analytics.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_profile_analytics.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_profile_client_ssl.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_profile_client_ssl.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_profile_client_ssl.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_profile_dns.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_profile_dns.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_profile_dns.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_profile_fastl4.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_profile_fastl4.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_profile_fastl4.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_profile_http.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_profile_http.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_profile_http.py validate-modules:E325
|
||||
lib/ansible/modules/network/f5/bigip_profile_http.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_profile_http2.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_profile_http2.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_profile_http2.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_profile_http_compression.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_profile_http_compression.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_profile_http_compression.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_profile_oneconnect.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_profile_oneconnect.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_profile_oneconnect.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_profile_persistence_cookie.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_profile_persistence_cookie.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_profile_persistence_cookie.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_profile_persistence_src_addr.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_profile_persistence_src_addr.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_profile_persistence_src_addr.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_profile_server_ssl.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_profile_server_ssl.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_profile_server_ssl.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_profile_tcp.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_profile_tcp.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_profile_tcp.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_profile_udp.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_profile_udp.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_profile_udp.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_provision.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_provision.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_provision.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_qkview.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_qkview.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_qkview.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_remote_role.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_remote_role.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_remote_role.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_remote_syslog.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_remote_syslog.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_remote_syslog.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_remote_user.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_remote_user.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_remote_user.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_routedomain.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_routedomain.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_routedomain.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_selfip.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_selfip.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_selfip.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_service_policy.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_service_policy.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_service_policy.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_smtp.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_smtp.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_smtp.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_snat_pool.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_snat_pool.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_snat_pool.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_snmp.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_snmp.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_snmp.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_snmp_community.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_snmp_community.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_snmp_community.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_snmp_trap.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_snmp_trap.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_snmp_trap.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_software_image.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_software_image.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_software_image.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_software_install.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_software_install.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_software_install.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_software_update.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_software_update.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_software_update.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_ssl_certificate.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_ssl_certificate.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_ssl_certificate.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_ssl_key.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_ssl_key.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_ssl_key.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_ssl_ocsp.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_ssl_ocsp.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_ssl_ocsp.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_static_route.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_static_route.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_static_route.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_sys_daemon_log_tmm.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_sys_daemon_log_tmm.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_sys_daemon_log_tmm.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_sys_db.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_sys_db.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_sys_db.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_sys_global.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_sys_global.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_sys_global.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_timer_policy.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_timer_policy.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_timer_policy.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_traffic_selector.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_traffic_selector.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_traffic_selector.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_trunk.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_trunk.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_trunk.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_tunnel.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_tunnel.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_tunnel.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_ucs.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_ucs.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_ucs.py validate-modules:E335
|
||||
lib/ansible/modules/network/f5/bigip_ucs.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_ucs_fetch.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_ucs_fetch.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_ucs_fetch.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_user.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_user.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_user.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_vcmp_guest.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_vcmp_guest.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_vcmp_guest.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_virtual_address.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_virtual_address.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_virtual_address.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_virtual_server.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_virtual_server.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_virtual_server.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_vlan.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_vlan.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_vlan.py validate-modules:E326
|
||||
lib/ansible/modules/network/f5/bigip_vlan.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigip_wait.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigip_wait.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigip_wait.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigiq_application_fasthttp.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigiq_application_fasthttp.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigiq_application_fasthttp.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigiq_application_fastl4_tcp.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigiq_application_fastl4_tcp.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigiq_application_fastl4_tcp.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigiq_application_fastl4_udp.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigiq_application_fastl4_udp.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigiq_application_fastl4_udp.py validate-modules:E337
|
||||
lib/ansible/modules/network/f5/bigiq_application_fastl4_udp.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigiq_application_http.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigiq_application_http.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigiq_application_http.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigiq_application_https_offload.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigiq_application_https_offload.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigiq_application_https_offload.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigiq_application_https_waf.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigiq_application_https_waf.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigiq_application_https_waf.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigiq_device_discovery.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigiq_device_discovery.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigiq_device_discovery.py validate-modules:E337
|
||||
lib/ansible/modules/network/f5/bigiq_device_discovery.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigiq_device_info.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigiq_device_info.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigiq_device_info.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigiq_regkey_license.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigiq_regkey_license.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigiq_regkey_license.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigiq_regkey_license_assignment.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigiq_regkey_license_assignment.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigiq_regkey_license_assignment.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigiq_regkey_pool.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigiq_regkey_pool.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigiq_regkey_pool.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigiq_utility_license.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigiq_utility_license.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigiq_utility_license.py validate-modules:E338
|
||||
lib/ansible/modules/network/f5/bigiq_utility_license_assignment.py validate-modules:E322
|
||||
lib/ansible/modules/network/f5/bigiq_utility_license_assignment.py validate-modules:E324
|
||||
lib/ansible/modules/network/f5/bigiq_utility_license_assignment.py validate-modules:E338
|
||||
lib/ansible/modules/network/fortimanager/fmgr_device.py validate-modules:E337
|
||||
lib/ansible/modules/network/fortimanager/fmgr_device_config.py validate-modules:E337
|
||||
lib/ansible/modules/network/fortimanager/fmgr_device_group.py validate-modules:E337
|
||||
|
|
Loading…
Reference in a new issue