mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-24 22:00:22 -07:00
Added priority attribute for pool members (bigip_pool_member module) (#23128)
* Added priority attribute for pool members (bigip_pool_member module) * Line break missing * Change from 'priority' to 'priority_group' * Update bigip_pool_member.py * Update bigip_pool_member.py
This commit is contained in:
parent
bb998a3cd2
commit
3290c2fc3c
1 changed files with 33 additions and 1 deletions
|
@ -121,6 +121,12 @@ options:
|
||||||
- yes
|
- yes
|
||||||
- no
|
- no
|
||||||
version_added: 2.1
|
version_added: 2.1
|
||||||
|
priority_group:
|
||||||
|
description:
|
||||||
|
- Sets priority group for a pool member.
|
||||||
|
required: false
|
||||||
|
default: null
|
||||||
|
version_added: 2.4
|
||||||
extends_documentation_fragment: f5
|
extends_documentation_fragment: f5
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
@ -331,6 +337,24 @@ def set_ratio(api, pool, address, port, ratio):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def get_priority_group(api, pool, address, port):
|
||||||
|
members = [{'address': address, 'port': port}]
|
||||||
|
result = api.LocalLB.Pool.get_member_priority(
|
||||||
|
pool_names=[pool],
|
||||||
|
members=[members]
|
||||||
|
)[0][0]
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def set_priority_group(api, pool, address, port, priority_group):
|
||||||
|
members = [{'address': address, 'port': port}]
|
||||||
|
api.LocalLB.Pool.set_member_priority(
|
||||||
|
pool_names=[pool],
|
||||||
|
members=[members],
|
||||||
|
priorities=[[priority_group]]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def set_member_session_enabled_state(api, pool, address, port, session_state):
|
def set_member_session_enabled_state(api, pool, address, port, session_state):
|
||||||
members = [{'address': address, 'port': port}]
|
members = [{'address': address, 'port': port}]
|
||||||
session_state = ["STATE_%s" % session_state.strip().upper()]
|
session_state = ["STATE_%s" % session_state.strip().upper()]
|
||||||
|
@ -384,7 +408,8 @@ def main():
|
||||||
description=dict(type='str'),
|
description=dict(type='str'),
|
||||||
rate_limit=dict(type='int'),
|
rate_limit=dict(type='int'),
|
||||||
ratio=dict(type='int'),
|
ratio=dict(type='int'),
|
||||||
preserve_node=dict(type='bool', default=False)
|
preserve_node=dict(type='bool', default=False),
|
||||||
|
priority_group=dict(type='int')
|
||||||
)
|
)
|
||||||
argument_spec.update(meta_args)
|
argument_spec.update(meta_args)
|
||||||
|
|
||||||
|
@ -415,6 +440,7 @@ def main():
|
||||||
description = module.params['description']
|
description = module.params['description']
|
||||||
rate_limit = module.params['rate_limit']
|
rate_limit = module.params['rate_limit']
|
||||||
ratio = module.params['ratio']
|
ratio = module.params['ratio']
|
||||||
|
priority_group = module.params['priority_group']
|
||||||
host = module.params['host']
|
host = module.params['host']
|
||||||
address = fq_name(partition, host)
|
address = fq_name(partition, host)
|
||||||
port = module.params['port']
|
port = module.params['port']
|
||||||
|
@ -460,6 +486,8 @@ def main():
|
||||||
set_member_session_enabled_state(api, pool, address, port, session_state)
|
set_member_session_enabled_state(api, pool, address, port, session_state)
|
||||||
if monitor_state is not None:
|
if monitor_state is not None:
|
||||||
set_member_monitor_state(api, pool, address, port, monitor_state)
|
set_member_monitor_state(api, pool, address, port, monitor_state)
|
||||||
|
if priority_group is not None:
|
||||||
|
set_priority_group(api, pool, address, port, priority_group)
|
||||||
result = {'changed': True}
|
result = {'changed': True}
|
||||||
else:
|
else:
|
||||||
# pool member exists -- potentially modify attributes
|
# pool member exists -- potentially modify attributes
|
||||||
|
@ -499,6 +527,10 @@ def main():
|
||||||
if not module.check_mode:
|
if not module.check_mode:
|
||||||
set_member_monitor_state(api, pool, address, port, monitor_state)
|
set_member_monitor_state(api, pool, address, port, monitor_state)
|
||||||
result = {'changed': True}
|
result = {'changed': True}
|
||||||
|
if priority_group is not None and priority_group != get_priority_group(api, pool, address, port):
|
||||||
|
if not module.check_mode:
|
||||||
|
set_priority_group(api, pool, address, port, priority_group)
|
||||||
|
result = {'changed': True}
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
module.fail_json(msg="received exception: %s" % e)
|
module.fail_json(msg="received exception: %s" % e)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue