Add reselect_tries option to big_pool module (#2156)

This commit is contained in:
Ben Knight 2016-05-09 07:30:04 +10:00 committed by Matt Clay
parent ea6a2bfd95
commit d3fb59e187

View file

@ -133,6 +133,14 @@ options:
default: null default: null
choices: [] choices: []
aliases: [] aliases: []
reselect_tries:
description:
- Sets the number of times the system tries to contact a pool member after a passive failure
version_added: "2.2"
required: False
default: null
choices: []
aliases: []
service_down_action: service_down_action:
description: description:
- Sets the action to take when node goes down in pool - Sets the action to take when node goes down in pool
@ -284,6 +292,13 @@ def get_slow_ramp_time(api, pool):
def set_slow_ramp_time(api, pool, seconds): def set_slow_ramp_time(api, pool, seconds):
api.LocalLB.Pool.set_slow_ramp_time(pool_names=[pool], values=[seconds]) api.LocalLB.Pool.set_slow_ramp_time(pool_names=[pool], values=[seconds])
def get_reselect_tries(api, pool):
result = api.LocalLB.Pool.get_reselect_tries(pool_names=[pool])[0]
return result
def set_reselect_tries(api, pool, tries):
api.LocalLB.Pool.set_reselect_tries(pool_names=[pool], values=[tries])
def get_action_on_service_down(api, pool): def get_action_on_service_down(api, pool):
result = api.LocalLB.Pool.get_action_on_service_down(pool_names=[pool])[0] result = api.LocalLB.Pool.get_action_on_service_down(pool_names=[pool])[0]
result = result.split("SERVICE_DOWN_ACTION_")[-1].lower() result = result.split("SERVICE_DOWN_ACTION_")[-1].lower()
@ -356,6 +371,7 @@ def main():
quorum = dict(type='int'), quorum = dict(type='int'),
monitors = dict(type='list'), monitors = dict(type='list'),
slow_ramp_time = dict(type='int'), slow_ramp_time = dict(type='int'),
reselect_tries = dict(type='int'),
service_down_action = dict(type='str', choices=service_down_choices), service_down_action = dict(type='str', choices=service_down_choices),
host = dict(type='str', aliases=['address']), host = dict(type='str', aliases=['address']),
port = dict(type='int') port = dict(type='int')
@ -397,6 +413,7 @@ def main():
for monitor in module.params['monitors']: for monitor in module.params['monitors']:
monitors.append(fq_name(partition, monitor)) monitors.append(fq_name(partition, monitor))
slow_ramp_time = module.params['slow_ramp_time'] slow_ramp_time = module.params['slow_ramp_time']
reselect_tries = module.params['reselect_tries']
service_down_action = module.params['service_down_action'] service_down_action = module.params['service_down_action']
if service_down_action: if service_down_action:
service_down_action = service_down_action.lower() service_down_action = service_down_action.lower()
@ -487,6 +504,8 @@ def main():
set_monitors(api, pool, monitor_type, quorum, monitors) set_monitors(api, pool, monitor_type, quorum, monitors)
if slow_ramp_time: if slow_ramp_time:
set_slow_ramp_time(api, pool, slow_ramp_time) set_slow_ramp_time(api, pool, slow_ramp_time)
if reselect_tries:
set_reselect_tries(api, pool, reselect_tries)
if service_down_action: if service_down_action:
set_action_on_service_down(api, pool, service_down_action) set_action_on_service_down(api, pool, service_down_action)
if host and port: if host and port:
@ -513,6 +532,10 @@ def main():
if not module.check_mode: if not module.check_mode:
set_slow_ramp_time(api, pool, slow_ramp_time) set_slow_ramp_time(api, pool, slow_ramp_time)
result = {'changed': True} result = {'changed': True}
if reselect_tries and reselect_tries != get_reselect_tries(api, pool):
if not module.check_mode:
set_reselect_tries(api, pool, reselect_tries)
result = {'changed': True}
if service_down_action and service_down_action != get_action_on_service_down(api, pool): if service_down_action and service_down_action != get_action_on_service_down(api, pool):
if not module.check_mode: if not module.check_mode:
set_action_on_service_down(api, pool, service_down_action) set_action_on_service_down(api, pool, service_down_action)