in src/ansible_collections/alibaba/apsarastack/plugins/modules/ali_slb_server.py [0:0]
def main():
argument_spec = common_argument_spec()
argument_spec.update(dict(
state=dict(choices=['present', 'absent'], default='present', type='str'),
backend_servers=dict(required=True, type='list', elements='dict', aliases=['servers']),
load_balancer_id=dict(required=True, aliases=['lb_id'], type='str'),
))
# handling region parameter which is not required by this module
del argument_spec['apsarastack_region']
module = AnsibleModule(argument_spec=argument_spec)
if HAS_FOOTMARK is False:
module.fail_json(msg="'footmark' is required for the module ali_slb_server. "
"Please install 'footmark' by using 'sudo pip install footmark'.")
# handling region parameter which is required by common utils file to login but not required by this module
module.params['apsarastack_region'] = 'cn-hangzhou'
slb = slb_connect(module)
state = module.params['state']
backend_servers = parse_server_ids(module.params['backend_servers'])
load_balancer_id = module.params['load_balancer_id']
if state == 'present':
if len(backend_servers) > 0:
validate_backend_server_info(module, backend_servers, 100)
changed, current_backend_servers = add_set_backend_servers(module, slb, load_balancer_id, backend_servers)
result_servers = []
for server in current_backend_servers:
result_servers.append(get_backen_server_weight(server))
module.exit_json(changed=changed, backend_servers=result_servers, load_balancer_id=load_balancer_id)
else:
module.fail_json(msg='backend servers information is mandatory to state=present')
if len(backend_servers) > 0:
if not isinstance(backend_servers, list):
module.fail_json(msg='Invalid backend_server parameter type [%s] for state=absent.' % type(backend_servers))
changed, backend_servers = remove_backend_servers(module, slb, load_balancer_id, backend_servers)
result_servers = []
for server in backend_servers:
result_servers.append(get_backen_server_weight(server))
module.exit_json(changed=changed, backend_servers=result_servers, load_balancer_id=load_balancer_id)
else:
module.fail_json(msg='backend server ID(s) information is mandatory to state=absent')