Added new option to select the active a10 partition (#2628)
* Added new option to select the active a10 partition * added version_added to the description of the new option * added RETURN documentation * fixed indents * Removed empty cases, removed unneeded aliases * removed artifacts from merging * updated version_added to 2.3 * removed host, username and password option * removed write_config and validate_certs documentation
This commit is contained in:
parent
fa4b353da8
commit
1f32d68310
3 changed files with 57 additions and 1 deletions
|
@ -34,6 +34,12 @@ notes:
|
||||||
- Requires A10 Networks aXAPI 2.1.
|
- Requires A10 Networks aXAPI 2.1.
|
||||||
extends_documentation_fragment: a10
|
extends_documentation_fragment: a10
|
||||||
options:
|
options:
|
||||||
|
partition:
|
||||||
|
version_added: "2.3"
|
||||||
|
description:
|
||||||
|
- set active-partition
|
||||||
|
required: false
|
||||||
|
default: null
|
||||||
server_name:
|
server_name:
|
||||||
description:
|
description:
|
||||||
- The SLB (Server Load Balancer) server name.
|
- The SLB (Server Load Balancer) server name.
|
||||||
|
@ -87,6 +93,7 @@ EXAMPLES = '''
|
||||||
host: a10.mydomain.com
|
host: a10.mydomain.com
|
||||||
username: myadmin
|
username: myadmin
|
||||||
password: mypassword
|
password: mypassword
|
||||||
|
partition: mypartition
|
||||||
server: test
|
server: test
|
||||||
server_ip: 1.1.1.100
|
server_ip: 1.1.1.100
|
||||||
server_ports:
|
server_ports:
|
||||||
|
@ -97,6 +104,15 @@ EXAMPLES = '''
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
RETURN = '''
|
||||||
|
content:
|
||||||
|
description: the full info regarding the slb_server
|
||||||
|
returned: success
|
||||||
|
type: string
|
||||||
|
sample: "mynewserver"
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
VALID_PORT_FIELDS = ['port_num', 'protocol', 'status']
|
VALID_PORT_FIELDS = ['port_num', 'protocol', 'status']
|
||||||
|
|
||||||
def validate_ports(module, ports):
|
def validate_ports(module, ports):
|
||||||
|
@ -142,6 +158,7 @@ def main():
|
||||||
server_ip=dict(type='str', aliases=['ip', 'address']),
|
server_ip=dict(type='str', aliases=['ip', 'address']),
|
||||||
server_status=dict(type='str', default='enabled', aliases=['status'], choices=['enabled', 'disabled']),
|
server_status=dict(type='str', default='enabled', aliases=['status'], choices=['enabled', 'disabled']),
|
||||||
server_ports=dict(type='list', aliases=['port'], default=[]),
|
server_ports=dict(type='list', aliases=['port'], default=[]),
|
||||||
|
partition=dict(type='str', default=[]),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -151,6 +168,7 @@ def main():
|
||||||
)
|
)
|
||||||
|
|
||||||
host = module.params['host']
|
host = module.params['host']
|
||||||
|
partition = module.params['partition']
|
||||||
username = module.params['username']
|
username = module.params['username']
|
||||||
password = module.params['password']
|
password = module.params['password']
|
||||||
state = module.params['state']
|
state = module.params['state']
|
||||||
|
@ -185,6 +203,8 @@ def main():
|
||||||
if slb_server_status:
|
if slb_server_status:
|
||||||
json_post['server']['status'] = axapi_enabled_disabled(slb_server_status)
|
json_post['server']['status'] = axapi_enabled_disabled(slb_server_status)
|
||||||
|
|
||||||
|
slb_server_partition = axapi_call(module, session_url + '&method=system.partition.active', json.dumps({'name': partition}))
|
||||||
|
|
||||||
slb_server_data = axapi_call(module, session_url + '&method=slb.server.search', json.dumps({'name': slb_server}))
|
slb_server_data = axapi_call(module, session_url + '&method=slb.server.search', json.dumps({'name': slb_server}))
|
||||||
slb_server_exists = not axapi_failure(slb_server_data)
|
slb_server_exists = not axapi_failure(slb_server_data)
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,12 @@ notes:
|
||||||
- When a server doesn't exist and is added to the service-group the server will be created.
|
- When a server doesn't exist and is added to the service-group the server will be created.
|
||||||
extends_documentation_fragment: a10
|
extends_documentation_fragment: a10
|
||||||
options:
|
options:
|
||||||
|
partition:
|
||||||
|
version_added: "2.3"
|
||||||
|
description:
|
||||||
|
- set active-partition
|
||||||
|
required: false
|
||||||
|
default: null
|
||||||
service_group:
|
service_group:
|
||||||
description:
|
description:
|
||||||
- The SLB (Server Load Balancing) service-group name
|
- The SLB (Server Load Balancing) service-group name
|
||||||
|
@ -82,6 +88,7 @@ EXAMPLES = '''
|
||||||
host: a10.mydomain.com
|
host: a10.mydomain.com
|
||||||
username: myadmin
|
username: myadmin
|
||||||
password: mypassword
|
password: mypassword
|
||||||
|
partition: mypartition
|
||||||
service_group: sg-80-tcp
|
service_group: sg-80-tcp
|
||||||
servers:
|
servers:
|
||||||
- server: foo1.mydomain.com
|
- server: foo1.mydomain.com
|
||||||
|
@ -96,6 +103,14 @@ EXAMPLES = '''
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
RETURN = '''
|
||||||
|
content:
|
||||||
|
description: the full info regarding the slb_service_group
|
||||||
|
returned: success
|
||||||
|
type: string
|
||||||
|
sample: "mynewservicegroup"
|
||||||
|
'''
|
||||||
|
|
||||||
VALID_SERVICE_GROUP_FIELDS = ['name', 'protocol', 'lb_method']
|
VALID_SERVICE_GROUP_FIELDS = ['name', 'protocol', 'lb_method']
|
||||||
VALID_SERVER_FIELDS = ['server', 'port', 'status']
|
VALID_SERVER_FIELDS = ['server', 'port', 'status']
|
||||||
|
|
||||||
|
@ -147,6 +162,7 @@ def main():
|
||||||
'src-ip-only-hash',
|
'src-ip-only-hash',
|
||||||
'src-ip-hash']),
|
'src-ip-hash']),
|
||||||
servers=dict(type='list', aliases=['server', 'member'], default=[]),
|
servers=dict(type='list', aliases=['server', 'member'], default=[]),
|
||||||
|
partition=dict(type='str', default=[]),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -158,6 +174,7 @@ def main():
|
||||||
host = module.params['host']
|
host = module.params['host']
|
||||||
username = module.params['username']
|
username = module.params['username']
|
||||||
password = module.params['password']
|
password = module.params['password']
|
||||||
|
partition = module.params['partition']
|
||||||
state = module.params['state']
|
state = module.params['state']
|
||||||
write_config = module.params['write_config']
|
write_config = module.params['write_config']
|
||||||
slb_service_group = module.params['service_group']
|
slb_service_group = module.params['service_group']
|
||||||
|
@ -199,7 +216,8 @@ def main():
|
||||||
|
|
||||||
# first we authenticate to get a session id
|
# first we authenticate to get a session id
|
||||||
session_url = axapi_authenticate(module, axapi_base_url, username, password)
|
session_url = axapi_authenticate(module, axapi_base_url, username, password)
|
||||||
|
# then we select the active-partition
|
||||||
|
slb_server_partition = axapi_call(module, session_url + '&method=system.partition.active', json.dumps({'name': partition}))
|
||||||
# then we check to see if the specified group exists
|
# then we check to see if the specified group exists
|
||||||
slb_result = axapi_call(module, session_url + '&method=slb.service_group.search', json.dumps({'name': slb_service_group}))
|
slb_result = axapi_call(module, session_url + '&method=slb.service_group.search', json.dumps({'name': slb_service_group}))
|
||||||
slb_service_group_exist = not axapi_failure(slb_result)
|
slb_service_group_exist = not axapi_failure(slb_result)
|
||||||
|
|
|
@ -34,6 +34,12 @@ notes:
|
||||||
- Requires A10 Networks aXAPI 2.1.
|
- Requires A10 Networks aXAPI 2.1.
|
||||||
extends_documentation_fragment: a10
|
extends_documentation_fragment: a10
|
||||||
options:
|
options:
|
||||||
|
partition:
|
||||||
|
version_added: "2.3"
|
||||||
|
description:
|
||||||
|
- set active-partition
|
||||||
|
required: false
|
||||||
|
default: null
|
||||||
virtual_server:
|
virtual_server:
|
||||||
description:
|
description:
|
||||||
- The SLB (Server Load Balancing) virtual server name.
|
- The SLB (Server Load Balancing) virtual server name.
|
||||||
|
@ -80,6 +86,7 @@ EXAMPLES = '''
|
||||||
host: a10.mydomain.com
|
host: a10.mydomain.com
|
||||||
username: myadmin
|
username: myadmin
|
||||||
password: mypassword
|
password: mypassword
|
||||||
|
partition: mypartition
|
||||||
virtual_server: vserver1
|
virtual_server: vserver1
|
||||||
virtual_server_ip: 1.1.1.1
|
virtual_server_ip: 1.1.1.1
|
||||||
virtual_server_ports:
|
virtual_server_ports:
|
||||||
|
@ -95,6 +102,14 @@ EXAMPLES = '''
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
RETURN = '''
|
||||||
|
content:
|
||||||
|
description: the full info regarding the slb_virtual
|
||||||
|
returned: success
|
||||||
|
type: string
|
||||||
|
sample: "mynewvirtualserver"
|
||||||
|
'''
|
||||||
|
|
||||||
VALID_PORT_FIELDS = ['port', 'protocol', 'service_group', 'status']
|
VALID_PORT_FIELDS = ['port', 'protocol', 'service_group', 'status']
|
||||||
|
|
||||||
def validate_ports(module, ports):
|
def validate_ports(module, ports):
|
||||||
|
@ -143,6 +158,7 @@ def main():
|
||||||
virtual_server_ip=dict(type='str', aliases=['ip', 'address'], required=True),
|
virtual_server_ip=dict(type='str', aliases=['ip', 'address'], required=True),
|
||||||
virtual_server_status=dict(type='str', default='enabled', aliases=['status'], choices=['enabled', 'disabled']),
|
virtual_server_status=dict(type='str', default='enabled', aliases=['status'], choices=['enabled', 'disabled']),
|
||||||
virtual_server_ports=dict(type='list', required=True),
|
virtual_server_ports=dict(type='list', required=True),
|
||||||
|
partition=dict(type='str', default=[]),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -154,6 +170,7 @@ def main():
|
||||||
host = module.params['host']
|
host = module.params['host']
|
||||||
username = module.params['username']
|
username = module.params['username']
|
||||||
password = module.params['password']
|
password = module.params['password']
|
||||||
|
partition = module.params['partition']
|
||||||
state = module.params['state']
|
state = module.params['state']
|
||||||
write_config = module.params['write_config']
|
write_config = module.params['write_config']
|
||||||
slb_virtual = module.params['virtual_server']
|
slb_virtual = module.params['virtual_server']
|
||||||
|
@ -169,6 +186,7 @@ def main():
|
||||||
axapi_base_url = 'https://%s/services/rest/V2.1/?format=json' % host
|
axapi_base_url = 'https://%s/services/rest/V2.1/?format=json' % host
|
||||||
session_url = axapi_authenticate(module, axapi_base_url, username, password)
|
session_url = axapi_authenticate(module, axapi_base_url, username, password)
|
||||||
|
|
||||||
|
slb_server_partition = axapi_call(module, session_url + '&method=system.partition.active', json.dumps({'name': partition}))
|
||||||
slb_virtual_data = axapi_call(module, session_url + '&method=slb.virtual_server.search', json.dumps({'name': slb_virtual}))
|
slb_virtual_data = axapi_call(module, session_url + '&method=slb.virtual_server.search', json.dumps({'name': slb_virtual}))
|
||||||
slb_virtual_exists = not axapi_failure(slb_virtual_data)
|
slb_virtual_exists = not axapi_failure(slb_virtual_data)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue