Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- import bigsuds
- DOCUMENTATION = '''
- ---
- module: f5_control
- author: Diego Garber
- short_description: Disables/Enables Nodes on F5
- description:
- -
- requirements: [ bigsuds ]
- '''
- # ===========================================
- # Module execution.
- #
- import urllib2, json
- def main():
- module = AnsibleModule(
- argument_spec=dict(
- server=dict(required=True),
- user=dict(required=True),
- password=dict(required=True),
- pool=dict(required=True),
- host=dict(required=True),
- port=dict(required=True),
- name=dict(required=True),
- state=dict(default="STATE_ENABLED", choices=["STATE_ENABLED", "STATE_DISABLED"]),
- ),
- supports_check_mode=True
- )
- server = module.params["server"]
- user = module.params["user"]
- pwd = module.params["password"]
- pool = module.params["pool"]
- host = module.params["host"]
- port = module.params["port"]
- state = module.params["state"]
- try:
- b = bigsuds.BIGIP(
- hostname = server,
- username = user,
- password = pwd,
- )
- except Exception, e:
- module.fail_json(msg="AUTH ERROR!, BAD CREDENTIALS!!!")
- #address[].append(["web1"]
- states=[]
- states.append(state)
- b.LocalLB.Pool.set_member_session_enabled_state([pool],[[{'address': host, 'port': port}]],session_states = [states])
- #set_member_monitor_enabled_state
- monitor=b.LocalLB.Pool.get_member_monitor_status([pool], [[{'address': host, 'port': port}]])
- if state == "STATE_ENABLED" and monitor == [['MONITOR_STATUS_DOWN']]:
- module.fail_json(msg="POOL MEMBER DOWN!!!")
- else:
- module.exit_json(changed=True, state=state)
- from ansible.module_utils.basic import *
- from ansible.module_utils.urls import *
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement