Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. import bigsuds
  4.  
  5. DOCUMENTATION = '''
  6. ---
  7. module: f5_control
  8. author: Diego Garber
  9. short_description: Disables/Enables Nodes on F5
  10. description:
  11. -
  12. requirements: [ bigsuds ]
  13. '''
  14.  
  15. # ===========================================
  16. # Module execution.
  17. #
  18.  
  19. import urllib2, json
  20.  
  21. def main():
  22.  
  23. module = AnsibleModule(
  24. argument_spec=dict(
  25. server=dict(required=True),
  26. user=dict(required=True),
  27. password=dict(required=True),
  28. pool=dict(required=True),
  29. host=dict(required=True),
  30. port=dict(required=True),
  31. name=dict(required=True),
  32. state=dict(default="STATE_ENABLED", choices=["STATE_ENABLED", "STATE_DISABLED"]),
  33. ),
  34. supports_check_mode=True
  35. )
  36.  
  37. server = module.params["server"]
  38. user = module.params["user"]
  39. pwd = module.params["password"]
  40. pool = module.params["pool"]
  41. host = module.params["host"]
  42. port = module.params["port"]
  43. state = module.params["state"]
  44. try:
  45. b = bigsuds.BIGIP(
  46. hostname = server,
  47. username = user,
  48. password = pwd,
  49. )
  50. except Exception, e:
  51. module.fail_json(msg="AUTH ERROR!, BAD CREDENTIALS!!!")
  52.  
  53.  
  54. #address[].append(["web1"]
  55. states=[]
  56. states.append(state)
  57. b.LocalLB.Pool.set_member_session_enabled_state([pool],[[{'address': host, 'port': port}]],session_states = [states])
  58. #set_member_monitor_enabled_state
  59. monitor=b.LocalLB.Pool.get_member_monitor_status([pool], [[{'address': host, 'port': port}]])
  60. if state == "STATE_ENABLED" and monitor == [['MONITOR_STATUS_DOWN']]:
  61. module.fail_json(msg="POOL MEMBER DOWN!!!")
  62. else:
  63. module.exit_json(changed=True, state=state)
  64.  
  65. from ansible.module_utils.basic import *
  66. from ansible.module_utils.urls import *
  67.  
  68. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement