in src/ansible_collections/alibaba/apsarastack/plugins/modules/ali_slb_server.py [0:0]
def validate_backend_server_info(module, backend_servers, default_weight):
"""
Validate backend server information provided by user for add, set and remove action
:param module: Ansible module object
:param backend_servers: backend severs information to validate (list of dictionaries or string)
:param default_weight: assigns default weight, if provided, for a backend server to set/add
"""
VALID_PARAMS = ['server_id', 'server_ids', 'weight', 'type']
for backend_server in backend_servers:
if not isinstance(backend_server, dict):
module.fail_json(msg='Invalid backend_servers parameter type [%s] for state=present.' % type(backend_server))
for k in backend_server:
if k not in VALID_PARAMS:
module.fail_json(msg='Invalid backend_server parameter {}'.format(k))
if "server_id" not in backend_server and "server_ids" not in backend_server:
module.fail_json(msg="'server_id' or 'server_ids': required field is set")
# verifying weight parameter for non numeral string and limit validation
if "weight" in backend_server:
try:
w = int(backend_server['weight'])
if w < 0 or w > 100:
module.fail_json(msg="'weight': field value is invalid. Expect to [0-100].")
except Exception as e:
module.fail_json(msg="'weight': field value is invalid. Expect to positive integer [0-100].")