mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-16 01:45:25 -07:00
Add "Default Persistence profile" support
This commit is contained in:
parent
3c06b968bc
commit
c51c36d8d7
1 changed files with 32 additions and 4 deletions
|
@ -116,9 +116,11 @@ options:
|
||||||
- "Source network address policy"
|
- "Source network address policy"
|
||||||
required: false
|
required: false
|
||||||
default: None
|
default: None
|
||||||
choices: []
|
default_persistence_profile:
|
||||||
aliases: []
|
description:
|
||||||
|
- "Default Profile which manages the session persistence"
|
||||||
|
required: false
|
||||||
|
default: None
|
||||||
description:
|
description:
|
||||||
description:
|
description:
|
||||||
- "Virtual server description."
|
- "Virtual server description."
|
||||||
|
@ -317,6 +319,28 @@ def set_description(api,name,description):
|
||||||
except bigsuds.OperationFailed, e:
|
except bigsuds.OperationFailed, e:
|
||||||
raise Exception('Error on setting description : %s ' % e)
|
raise Exception('Error on setting description : %s ' % e)
|
||||||
|
|
||||||
|
def get_persistence_profiles(api,name):
|
||||||
|
return api.LocalLB.VirtualServer.get_persistence_profile(virtual_servers = [name])[0]
|
||||||
|
|
||||||
|
def set_default_persistence_profiles(api,name,persistence_profile):
|
||||||
|
updated=False
|
||||||
|
if persistence_profile is None:
|
||||||
|
return updated
|
||||||
|
try:
|
||||||
|
current_persistence_profiles = get_persistence_profiles(api,name)
|
||||||
|
default=None
|
||||||
|
for profile in current_persistence_profiles:
|
||||||
|
if profile['default_profile']:
|
||||||
|
default=profile['profile_name']
|
||||||
|
break
|
||||||
|
if default is not None and default != persistence_profile:
|
||||||
|
api.LocalLB.VirtualServer.remove_persistence_profile(virtual_servers=[name],profiles=[[{'profile_name':default,'default_profile' : True}]])
|
||||||
|
if default != persistence_profile:
|
||||||
|
api.LocalLB.VirtualServer.add_persistence_profile(virtual_servers=[name],profiles=[[{'profile_name':persistence_profile,'default_profile' : True}]])
|
||||||
|
updated=True
|
||||||
|
return updated
|
||||||
|
except bigsuds.OperationFailed, e:
|
||||||
|
raise Exception('Error on setting default persistence profile : %s' % e)
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
argument_spec = f5_argument_spec()
|
argument_spec = f5_argument_spec()
|
||||||
|
@ -329,7 +353,8 @@ def main():
|
||||||
all_profiles = dict(type='list'),
|
all_profiles = dict(type='list'),
|
||||||
pool=dict(type='str'),
|
pool=dict(type='str'),
|
||||||
description = dict(type='str'),
|
description = dict(type='str'),
|
||||||
snat=dict(type='str')
|
snat=dict(type='str'),
|
||||||
|
default_persistence_profile=dict(type='str')
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -346,6 +371,7 @@ def main():
|
||||||
pool=fq_name(partition,module.params['pool'])
|
pool=fq_name(partition,module.params['pool'])
|
||||||
description = module.params['description']
|
description = module.params['description']
|
||||||
snat = module.params['snat']
|
snat = module.params['snat']
|
||||||
|
default_persistence_profile=fq_name(partition,module.params['default_persistence_profile'])
|
||||||
|
|
||||||
if 1 > port > 65535:
|
if 1 > port > 65535:
|
||||||
module.fail_json(msg="valid ports must be in range 1 - 65535")
|
module.fail_json(msg="valid ports must be in range 1 - 65535")
|
||||||
|
@ -387,6 +413,7 @@ def main():
|
||||||
set_profiles(api,name,all_profiles)
|
set_profiles(api,name,all_profiles)
|
||||||
set_snat(api,name,snat)
|
set_snat(api,name,snat)
|
||||||
set_description(api,name,description)
|
set_description(api,name,description)
|
||||||
|
set_default_persistence_profiles(api,name,default_persistence_profile)
|
||||||
result = {'changed': True}
|
result = {'changed': True}
|
||||||
except bigsuds.OperationFailed, e:
|
except bigsuds.OperationFailed, e:
|
||||||
raise Exception('Error on creating Virtual Server : %s' % e)
|
raise Exception('Error on creating Virtual Server : %s' % e)
|
||||||
|
@ -406,6 +433,7 @@ def main():
|
||||||
result['changed']|=set_description(api,name,description)
|
result['changed']|=set_description(api,name,description)
|
||||||
result['changed']|=set_snat(api,name,snat)
|
result['changed']|=set_snat(api,name,snat)
|
||||||
result['changed']|=set_profiles(api,name,all_profiles)
|
result['changed']|=set_profiles(api,name,all_profiles)
|
||||||
|
result['changed']|=set_default_persistence_profiles(api,name,default_persistence_profile)
|
||||||
api.System.Session.submit_transaction()
|
api.System.Session.submit_transaction()
|
||||||
except Exception,e:
|
except Exception,e:
|
||||||
raise Exception("Error on updating Virtual Server : %s" % e)
|
raise Exception("Error on updating Virtual Server : %s" % e)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue