Adds server port argument to legacy modules (#2444)

This patch adds support for the server_port module. It
additionally updates the documentation in the module for
it.

The changes were tested in the f5-ansible repository to
ensure no breaking changes were made. This argument allows
modules to be used on BIG-IPs that are listening on
non-standard ports.
pull/18777/head
Tim Rupp 9 years ago committed by Matt Clay
parent 890366b67a
commit 1eb7aa5d78

@ -25,7 +25,9 @@ short_description: "Collect facts from F5 BIG-IP devices"
description: description:
- "Collect facts from F5 BIG-IP devices via iControl SOAP API" - "Collect facts from F5 BIG-IP devices via iControl SOAP API"
version_added: "1.6" version_added: "1.6"
author: "Matt Hite (@mhite)" author:
- Matt Hite (@mhite)
- Tim Rupp (@caphrim007)
notes: notes:
- "Requires BIG-IP software version >= 11.4" - "Requires BIG-IP software version >= 11.4"
- "F5 developed module 'bigsuds' required (see http://devcentral.f5.com)" - "F5 developed module 'bigsuds' required (see http://devcentral.f5.com)"
@ -42,6 +44,12 @@ options:
default: null default: null
choices: [] choices: []
aliases: [] aliases: []
server_port:
description:
- BIG-IP server port
required: false
default: 443
version_added: "2.2"
user: user:
description: description:
- BIG-IP username - BIG-IP username
@ -137,8 +145,8 @@ class F5(object):
api: iControl API instance. api: iControl API instance.
""" """
def __init__(self, host, user, password, session=False, validate_certs=True): def __init__(self, host, user, password, session=False, validate_certs=True, port=443):
self.api = bigip_api(host, user, password, validate_certs) self.api = bigip_api(host, user, password, validate_certs, port)
if session: if session:
self.start_session() self.start_session()
@ -1593,6 +1601,7 @@ def main():
module.fail_json(msg="the python suds and bigsuds modules are required") module.fail_json(msg="the python suds and bigsuds modules are required")
server = module.params['server'] server = module.params['server']
server_port = module.params['server_port']
user = module.params['user'] user = module.params['user']
password = module.params['password'] password = module.params['password']
validate_certs = module.params['validate_certs'] validate_certs = module.params['validate_certs']
@ -1622,7 +1631,7 @@ def main():
facts = {} facts = {}
if len(include) > 0: if len(include) > 0:
f5 = F5(server, user, password, session, validate_certs) f5 = F5(server, user, password, session, validate_certs, server_port)
saved_active_folder = f5.get_active_folder() saved_active_folder = f5.get_active_folder()
saved_recursive_query_state = f5.get_recursive_query_state() saved_recursive_query_state = f5.get_recursive_query_state()
if saved_active_folder != "/": if saved_active_folder != "/":

@ -25,7 +25,9 @@ short_description: "Manages F5 BIG-IP GTM virtual servers"
description: description:
- "Manages F5 BIG-IP GTM virtual servers" - "Manages F5 BIG-IP GTM virtual servers"
version_added: "2.2" version_added: "2.2"
author: 'Michael Perzel' author:
- Michael Perzel (@perzizzle)
- Tim Rupp (@caphrim007)
notes: notes:
- "Requires BIG-IP software version >= 11.4" - "Requires BIG-IP software version >= 11.4"
- "F5 developed module 'bigsuds' required (see http://devcentral.f5.com)" - "F5 developed module 'bigsuds' required (see http://devcentral.f5.com)"
@ -39,6 +41,11 @@ options:
description: description:
- BIG-IP host - BIG-IP host
required: true required: true
server_port:
description:
- BIG-IP server port
required: false
default: 443
user: user:
description: description:
- BIG-IP username - BIG-IP username
@ -96,11 +103,6 @@ else:
bigsuds_found = True bigsuds_found = True
def bigip_api(server, user, password):
api = bigsuds.BIGIP(hostname=server, username=user, password=password)
return api
def server_exists(api, server): def server_exists(api, server):
# hack to determine if virtual server exists # hack to determine if virtual server exists
result = False result = False
@ -157,17 +159,19 @@ def set_virtual_server_state(api, name, server, state):
def main(): def main():
argument_spec = f5_argument_spec()
meta_args = dict(
state=dict(type='str', default='present', choices=['present', 'absent', 'enabled', 'disabled']),
host=dict(type='str', default=None, aliases=['address']),
port=dict(type='int', default=None),
virtual_server_name=dict(type='str', required=True),
virtual_server_server=dict(type='str', required=True)
)
argument_spec.update(meta_args)
module = AnsibleModule( module = AnsibleModule(
argument_spec=dict( argument_spec=argument_spec,
server=dict(type='str', required=True),
user=dict(type='str', required=True),
password=dict(type='str', required=True, no_log=True),
state=dict(type='str', default='present', choices=['present', 'absent', 'enabled', 'disabled']),
host=dict(type='str', default=None, aliases=['address']),
port=dict(type='int', default=None),
virtual_server_name=dict(type='str', required=True),
virtual_server_server=dict(type='str', required=True)
),
supports_check_mode=True supports_check_mode=True
) )
@ -175,6 +179,8 @@ def main():
module.fail_json(msg="the python bigsuds module is required") module.fail_json(msg="the python bigsuds module is required")
server = module.params['server'] server = module.params['server']
server_port = module.params['server_port']
validate_certs = module.params['validate_certs']
user = module.params['user'] user = module.params['user']
password = module.params['password'] password = module.params['password']
virtual_server_name = module.params['virtual_server_name'] virtual_server_name = module.params['virtual_server_name']
@ -186,7 +192,7 @@ def main():
result = {'changed': False} # default result = {'changed': False} # default
try: try:
api = bigip_api(server, user, password) api = bigip_api(server, user, password, validate_certs, port=server_port)
if state == 'absent': if state == 'absent':
if virtual_server_exists(api, virtual_server_name, virtual_server_server): if virtual_server_exists(api, virtual_server_name, virtual_server_server):
@ -239,6 +245,7 @@ def main():
# import module snippets # import module snippets
from ansible.module_utils.basic import * from ansible.module_utils.basic import *
from ansible.module_utils.f5 import *
if __name__ == '__main__': if __name__ == '__main__':
main() main()

@ -25,7 +25,9 @@ short_description: "Manages F5 BIG-IP GTM wide ip"
description: description:
- "Manages F5 BIG-IP GTM wide ip" - "Manages F5 BIG-IP GTM wide ip"
version_added: "2.0" version_added: "2.0"
author: 'Michael Perzel' author:
- Michael Perzel (@perzizzle)
- Tim Rupp (@caphrim007)
notes: notes:
- "Requires BIG-IP software version >= 11.4" - "Requires BIG-IP software version >= 11.4"
- "F5 developed module 'bigsuds' required (see http://devcentral.f5.com)" - "F5 developed module 'bigsuds' required (see http://devcentral.f5.com)"
@ -39,6 +41,12 @@ options:
description: description:
- BIG-IP host - BIG-IP host
required: true required: true
server_port:
description:
- BIG-IP server port
required: false
default: 443
version_added: "2.2"
user: user:
description: description:
- BIG-IP username - BIG-IP username
@ -56,6 +64,13 @@ options:
'vs_capacity', 'least_conn', 'lowest_rtt', 'lowest_hops', 'vs_capacity', 'least_conn', 'lowest_rtt', 'lowest_hops',
'packet_rate', 'cpu', 'hit_ratio', 'qos', 'bps', 'packet_rate', 'cpu', 'hit_ratio', 'qos', 'bps',
'drop_packet', 'explicit_ip', 'connection_rate', 'vs_score'] 'drop_packet', 'explicit_ip', 'connection_rate', 'vs_score']
validate_certs:
description:
- If C(no), SSL certificates will not be validated. This should only be
used on personally controlled sites using self-signed certificates.
required: false
default: true
version_added: "2.2"
wide_ip: wide_ip:
description: description:
- Wide IP name - Wide IP name
@ -80,10 +95,6 @@ except ImportError:
else: else:
bigsuds_found = True bigsuds_found = True
def bigip_api(server, user, password):
api = bigsuds.BIGIP(hostname=server, username=user, password=password)
return api
def get_wide_ip_lb_method(api, wide_ip): def get_wide_ip_lb_method(api, wide_ip):
lb_method = api.GlobalLB.WideIP.get_lb_method(wide_ips=[wide_ip])[0] lb_method = api.GlobalLB.WideIP.get_lb_method(wide_ips=[wide_ip])[0]
lb_method = lb_method.strip().replace('LB_METHOD_', '').lower() lb_method = lb_method.strip().replace('LB_METHOD_', '').lower()
@ -114,21 +125,21 @@ def set_wide_ip_lb_method(api, wide_ip, lb_method):
api.GlobalLB.WideIP.set_lb_method(wide_ips=[wide_ip], lb_methods=[lb_method]) api.GlobalLB.WideIP.set_lb_method(wide_ips=[wide_ip], lb_methods=[lb_method])
def main(): def main():
argument_spec = f5_argument_spec()
lb_method_choices = ['return_to_dns', 'null', 'round_robin', lb_method_choices = ['return_to_dns', 'null', 'round_robin',
'ratio', 'topology', 'static_persist', 'global_availability', 'ratio', 'topology', 'static_persist', 'global_availability',
'vs_capacity', 'least_conn', 'lowest_rtt', 'lowest_hops', 'vs_capacity', 'least_conn', 'lowest_rtt', 'lowest_hops',
'packet_rate', 'cpu', 'hit_ratio', 'qos', 'bps', 'packet_rate', 'cpu', 'hit_ratio', 'qos', 'bps',
'drop_packet', 'explicit_ip', 'connection_rate', 'vs_score'] 'drop_packet', 'explicit_ip', 'connection_rate', 'vs_score']
meta_args = dict(
lb_method = dict(type='str', required=True, choices=lb_method_choices),
wide_ip = dict(type='str', required=True)
)
argument_spec.update(meta_args)
module = AnsibleModule( module = AnsibleModule(
argument_spec = dict( argument_spec=argument_spec,
server = dict(type='str', required=True),
user = dict(type='str', required=True),
password = dict(type='str', required=True),
lb_method = dict(type='str', required=True, choices=lb_method_choices),
wide_ip = dict(type='str', required=True)
),
supports_check_mode=True supports_check_mode=True
) )
@ -136,15 +147,17 @@ def main():
module.fail_json(msg="the python bigsuds module is required") module.fail_json(msg="the python bigsuds module is required")
server = module.params['server'] server = module.params['server']
server_port = module.params['server_port']
user = module.params['user'] user = module.params['user']
password = module.params['password'] password = module.params['password']
wide_ip = module.params['wide_ip'] wide_ip = module.params['wide_ip']
lb_method = module.params['lb_method'] lb_method = module.params['lb_method']
validate_certs = module.params['validate_certs']
result = {'changed': False} # default result = {'changed': False} # default
try: try:
api = bigip_api(server, user, password) api = bigip_api(server, user, password, validate_certs, port=server_port)
if not wide_ip_exists(api, wide_ip): if not wide_ip_exists(api, wide_ip):
module.fail_json(msg="wide ip %s does not exist" % wide_ip) module.fail_json(msg="wide ip %s does not exist" % wide_ip)
@ -163,6 +176,7 @@ def main():
# import module snippets # import module snippets
from ansible.module_utils.basic import * from ansible.module_utils.basic import *
from ansible.module_utils.f5 import *
if __name__ == '__main__': if __name__ == '__main__':
main() main()

@ -27,7 +27,9 @@ short_description: "Manages F5 BIG-IP LTM http monitors"
description: description:
- "Manages F5 BIG-IP LTM monitors via iControl SOAP API" - "Manages F5 BIG-IP LTM monitors via iControl SOAP API"
version_added: "1.4" version_added: "1.4"
author: "Serge van Ginderachter (@srvg)" author:
- Serge van Ginderachter (@srvg)
- Tim Rupp (@caphrim007)
notes: notes:
- "Requires BIG-IP software version >= 11" - "Requires BIG-IP software version >= 11"
- "F5 developed module 'bigsuds' required (see http://devcentral.f5.com)" - "F5 developed module 'bigsuds' required (see http://devcentral.f5.com)"
@ -41,6 +43,12 @@ options:
- BIG-IP host - BIG-IP host
required: true required: true
default: null default: null
server_port:
description:
- BIG-IP server port
required: false
default: 443
version_added: "2.2"
user: user:
description: description:
- BIG-IP username - BIG-IP username
@ -326,6 +334,7 @@ def main():
module.fail_json(msg='bigsuds does not support verifying certificates with python < 2.7.9. Either update python or set validate_certs=False on the task') module.fail_json(msg='bigsuds does not support verifying certificates with python < 2.7.9. Either update python or set validate_certs=False on the task')
server = module.params['server'] server = module.params['server']
server_port = module.params['server_port']
user = module.params['user'] user = module.params['user']
password = module.params['password'] password = module.params['password']
state = module.params['state'] state = module.params['state']
@ -347,7 +356,7 @@ def main():
# end monitor specific stuff # end monitor specific stuff
api = bigip_api(server, user, password, validate_certs) api = bigip_api(server, user, password, validate_certs, port=server_port)
monitor_exists = check_monitor_exists(module, api, monitor, parent) monitor_exists = check_monitor_exists(module, api, monitor, parent)

@ -25,7 +25,9 @@ short_description: "Manages F5 BIG-IP LTM tcp monitors"
description: description:
- "Manages F5 BIG-IP LTM tcp monitors via iControl SOAP API" - "Manages F5 BIG-IP LTM tcp monitors via iControl SOAP API"
version_added: "1.4" version_added: "1.4"
author: "Serge van Ginderachter (@srvg)" author:
- Serge van Ginderachter (@srvg)
- Tim Rupp (@caphrim007)
notes: notes:
- "Requires BIG-IP software version >= 11" - "Requires BIG-IP software version >= 11"
- "F5 developed module 'bigsuds' required (see http://devcentral.f5.com)" - "F5 developed module 'bigsuds' required (see http://devcentral.f5.com)"
@ -39,6 +41,12 @@ options:
- BIG-IP host - BIG-IP host
required: true required: true
default: null default: null
server_port:
description:
- BIG-IP server port
required: false
default: 443
version_added: "2.2"
user: user:
description: description:
- BIG-IP username - BIG-IP username
@ -345,6 +353,7 @@ def main():
module.fail_json(msg='bigsuds does not support verifying certificates with python < 2.7.9. Either update python or set validate_certs=False on the task') module.fail_json(msg='bigsuds does not support verifying certificates with python < 2.7.9. Either update python or set validate_certs=False on the task')
server = module.params['server'] server = module.params['server']
server_port = module.params['server_port']
user = module.params['user'] user = module.params['user']
password = module.params['password'] password = module.params['password']
state = module.params['state'] state = module.params['state']
@ -370,7 +379,7 @@ def main():
# end monitor specific stuff # end monitor specific stuff
api = bigip_api(server, user, password, validate_certs) api = bigip_api(server, user, password, validate_certs, port=server_port)
monitor_exists = check_monitor_exists(module, api, monitor, parent) monitor_exists = check_monitor_exists(module, api, monitor, parent)

@ -25,7 +25,9 @@ short_description: "Manages F5 BIG-IP LTM nodes"
description: description:
- "Manages F5 BIG-IP LTM nodes via iControl SOAP API" - "Manages F5 BIG-IP LTM nodes via iControl SOAP API"
version_added: "1.4" version_added: "1.4"
author: "Matt Hite (@mhite)" author:
- Matt Hite (@mhite)
- Tim Rupp (@caphrim007)
notes: notes:
- "Requires BIG-IP software version >= 11" - "Requires BIG-IP software version >= 11"
- "F5 developed module 'bigsuds' required (see http://devcentral.f5.com)" - "F5 developed module 'bigsuds' required (see http://devcentral.f5.com)"
@ -40,6 +42,12 @@ options:
default: null default: null
choices: [] choices: []
aliases: [] aliases: []
server_port:
description:
- BIG-IP server port
required: false
default: 443
version_added: "2.2"
user: user:
description: description:
- BIG-IP username - BIG-IP username
@ -313,7 +321,8 @@ def set_monitors(api, name, monitor_type, quorum, monitor_templates):
def main(): def main():
monitor_type_choices = ['and_list', 'm_of_n'] monitor_type_choices = ['and_list', 'm_of_n']
argument_spec=f5_argument_spec() argument_spec = f5_argument_spec()
argument_spec.update(dict( argument_spec.update(dict(
session_state = dict(type='str', choices=['enabled', 'disabled']), session_state = dict(type='str', choices=['enabled', 'disabled']),
monitor_state = dict(type='str', choices=['enabled', 'disabled']), monitor_state = dict(type='str', choices=['enabled', 'disabled']),
@ -340,6 +349,7 @@ def main():
module.fail_json(msg='bigsuds does not support verifying certificates with python < 2.7.9. Either update python or set validate_certs=False on the task') module.fail_json(msg='bigsuds does not support verifying certificates with python < 2.7.9. Either update python or set validate_certs=False on the task')
server = module.params['server'] server = module.params['server']
server_port = module.params['server_port']
user = module.params['user'] user = module.params['user']
password = module.params['password'] password = module.params['password']
state = module.params['state'] state = module.params['state']
@ -387,7 +397,7 @@ def main():
module.fail_json(msg="quorum requires monitors parameter") module.fail_json(msg="quorum requires monitors parameter")
try: try:
api = bigip_api(server, user, password, validate_certs) api = bigip_api(server, user, password, validate_certs, port=server_port)
result = {'changed': False} # default result = {'changed': False} # default
if state == 'absent': if state == 'absent':

@ -25,7 +25,9 @@ short_description: "Manages F5 BIG-IP LTM pools"
description: description:
- "Manages F5 BIG-IP LTM pools via iControl SOAP API" - "Manages F5 BIG-IP LTM pools via iControl SOAP API"
version_added: "1.2" version_added: "1.2"
author: "Matt Hite (@mhite)" author:
- Matt Hite (@mhite)
- Tim Rupp (@caphrim007)
notes: notes:
- "Requires BIG-IP software version >= 11" - "Requires BIG-IP software version >= 11"
- "F5 developed module 'bigsuds' required (see http://devcentral.f5.com)" - "F5 developed module 'bigsuds' required (see http://devcentral.f5.com)"
@ -40,6 +42,12 @@ options:
default: null default: null
choices: [] choices: []
aliases: [] aliases: []
server_port:
description:
- BIG-IP server port
required: false
default: 443
version_added: "2.2"
user: user:
description: description:
- BIG-IP username - BIG-IP username
@ -95,7 +103,7 @@ options:
'least_connection_node_address', 'fastest_node_address', 'least_connection_node_address', 'fastest_node_address',
'observed_node_address', 'predictive_node_address', 'observed_node_address', 'predictive_node_address',
'dynamic_ratio', 'fastest_app_response', 'least_sessions', 'dynamic_ratio', 'fastest_app_response', 'least_sessions',
'dynamic_ratio_member', 'l3_addr', 'unknown', 'dynamic_ratio_member', 'l3_addr',
'weighted_least_connection_member', 'weighted_least_connection_member',
'weighted_least_connection_node_address', 'weighted_least_connection_node_address',
'ratio_session', 'ratio_least_connection_member', 'ratio_session', 'ratio_least_connection_member',
@ -353,7 +361,7 @@ def main():
'fastest_node_address', 'observed_node_address', 'fastest_node_address', 'observed_node_address',
'predictive_node_address', 'dynamic_ratio', 'predictive_node_address', 'dynamic_ratio',
'fastest_app_response', 'least_sessions', 'fastest_app_response', 'least_sessions',
'dynamic_ratio_member', 'l3_addr', 'unknown', 'dynamic_ratio_member', 'l3_addr',
'weighted_least_connection_member', 'weighted_least_connection_member',
'weighted_least_connection_node_address', 'weighted_least_connection_node_address',
'ratio_session', 'ratio_least_connection_member', 'ratio_session', 'ratio_least_connection_member',
@ -392,6 +400,7 @@ def main():
module.fail_json(msg='bigsuds does not support verifying certificates with python < 2.7.9. Either update python or set validate_certs=False on the task') module.fail_json(msg='bigsuds does not support verifying certificates with python < 2.7.9. Either update python or set validate_certs=False on the task')
server = module.params['server'] server = module.params['server']
server_port = module.params['server_port']
user = module.params['user'] user = module.params['user']
password = module.params['password'] password = module.params['password']
state = module.params['state'] state = module.params['state']
@ -449,7 +458,7 @@ def main():
module.fail_json(msg="quorum requires monitors parameter") module.fail_json(msg="quorum requires monitors parameter")
try: try:
api = bigip_api(server, user, password, validate_certs) api = bigip_api(server, user, password, validate_certs, port=server_port)
result = {'changed': False} # default result = {'changed': False} # default
if state == 'absent': if state == 'absent':

@ -25,7 +25,9 @@ short_description: "Manages F5 BIG-IP LTM pool members"
description: description:
- "Manages F5 BIG-IP LTM pool members via iControl SOAP API" - "Manages F5 BIG-IP LTM pool members via iControl SOAP API"
version_added: "1.4" version_added: "1.4"
author: "Matt Hite (@mhite)" author:
- Matt Hite (@mhite)
- Tim Rupp (@caphrim007)
notes: notes:
- "Requires BIG-IP software version >= 11" - "Requires BIG-IP software version >= 11"
- "F5 developed module 'bigsuds' required (see http://devcentral.f5.com)" - "F5 developed module 'bigsuds' required (see http://devcentral.f5.com)"
@ -39,9 +41,12 @@ options:
description: description:
- BIG-IP host - BIG-IP host
required: true required: true
default: null server_port:
choices: [] description:
aliases: [] - BIG-IP server port
required: false
default: 443
version_added: "2.2"
user: user:
description: description:
- BIG-IP username - BIG-IP username
@ -371,6 +376,7 @@ def main():
module.fail_json(msg='bigsuds does not support verifying certificates with python < 2.7.9. Either update python or set validate_certs=False on the task') module.fail_json(msg='bigsuds does not support verifying certificates with python < 2.7.9. Either update python or set validate_certs=False on the task')
server = module.params['server'] server = module.params['server']
server_port = module.params['server_port']
user = module.params['user'] user = module.params['user']
password = module.params['password'] password = module.params['password']
state = module.params['state'] state = module.params['state']
@ -399,7 +405,7 @@ def main():
module.fail_json(msg="valid ports must be in range 0 - 65535") module.fail_json(msg="valid ports must be in range 0 - 65535")
try: try:
api = bigip_api(server, user, password, validate_certs) api = bigip_api(server, user, password, validate_certs, port=server_port)
if not pool_exists(api, pool): if not pool_exists(api, pool):
module.fail_json(msg="pool %s does not exist" % pool) module.fail_json(msg="pool %s does not exist" % pool)
result = {'changed': False} # default result = {'changed': False} # default

@ -25,7 +25,9 @@ short_description: "Manages F5 BIG-IP LTM virtual servers"
description: description:
- "Manages F5 BIG-IP LTM virtual servers via iControl SOAP API" - "Manages F5 BIG-IP LTM virtual servers via iControl SOAP API"
version_added: "2.1" version_added: "2.1"
author: Etienne Carriere (@Etienne-Carriere) author:
- Etienne Carriere (@Etienne-Carriere)
- Tim Rupp (@caphrim007)
notes: notes:
- "Requires BIG-IP software version >= 11" - "Requires BIG-IP software version >= 11"
- "F5 developed module 'bigsuds' required (see http://devcentral.f5.com)" - "F5 developed module 'bigsuds' required (see http://devcentral.f5.com)"
@ -37,9 +39,12 @@ options:
description: description:
- BIG-IP host - BIG-IP host
required: true required: true
default: null server_port:
choices: [] description:
aliases: [] - BIG-IP server port
required: false
default: 443
version_added: "2.2"
user: user:
description: description:
- BIG-IP username - BIG-IP username
@ -165,7 +170,7 @@ EXAMPLES = '''
name: myvirtualserver name: myvirtualserver
port: 8080 port: 8080
- name: Delete pool - name: Delete virtual server
local_action: local_action:
module: bigip_virtual_server module: bigip_virtual_server
server: lb.mydomain.net server: lb.mydomain.net
@ -437,6 +442,7 @@ def main():
module.fail_json(msg='bigsuds does not support verifying certificates with python < 2.7.9. Either update python or set validate_certs=False on the task') module.fail_json(msg='bigsuds does not support verifying certificates with python < 2.7.9. Either update python or set validate_certs=False on the task')
server = module.params['server'] server = module.params['server']
server_port = module.params['server_port']
user = module.params['user'] user = module.params['user']
password = module.params['password'] password = module.params['password']
state = module.params['state'] state = module.params['state']
@ -457,7 +463,7 @@ def main():
module.fail_json(msg="valid ports must be in range 1 - 65535") module.fail_json(msg="valid ports must be in range 1 - 65535")
try: try:
api = bigip_api(server, user, password, validate_certs) api = bigip_api(server, user, password, validate_certs, port=server_port)
result = {'changed': False} # default result = {'changed': False} # default
if state == 'absent': if state == 'absent':

Loading…
Cancel
Save