常见负载均衡器禁(启)用成员汇总(2)
日期:2011-10-27
点击:195
来源: 刘天斯
分享至:
'2.0.1'
>>> pc.__build__
'r83'
>>>
2、编写LB_member.py代码
-
-
"""
-
----------------------------------------------------------------------------
-
Disable/Enable F5-LTM POOL member
-
Name: LB_member.py
-
Author: Liu tian si
-
Email: liutiansi@gamil.com
-
Created: 2011/05/08
-
Version: 1.0
-
Blog: http://blog.liuts.com
-
Copyright: (c) 2011
-
----------------------------------------------------------------------------
-
"""
-
-
import sys
-
import time
-
import string
-
import pycontrol.pycontrol as pc
-
-
"""
-
----------------------------------------------------------------------------
-
F5-LTM Disable/Enable Pool member Class
-
----------------------------------------------------------------------------
-
__init__() -Initialization F5-BIG object
-
set_pool_member() -Initialization pool and member object
-
member_factory() -Create a pool member object (Common.IPPortDefinition)
-
session_state_factory() -Create a session state object (LocalLB.PoolMember.MemberSessionState)
-
disable_member() -Disable menber methods
-
enable_member() -Enable menber methods
-
----------------------------------------------------------------------------
-
"""
-
-
class F5_LB_menber():
-
-
def __init__(self,_hostname,_username,_password):
-
self.b = pc.BIGIP(
-
hostname = _hostname,
-
username = _username,
-
password = _password,
-
fromurl = True,
-
wsdls = ['LocalLB.PoolMember'])
-
self.sstate_seq = self.b.LocalLB.PoolMember.typefactory.create('LocalLB.PoolMember.MemberSessionStateSequence')
-
-
-
def set_pool_member(self,pool,members):
-
self.POOL=pool
-
self.members=members
-
self.sstate_seq.item = self.session_state_factory()
-
-
def member_factory(self, member):
-
ip,port = member.split(':')
-
pmem = self.b.LocalLB.PoolMember.typefactory.create('Common.IPPortDefinition')
-
pmem.address = ip
-
pmem.port = int(port)
-
return pmem
-
-
-
def session_state_factory(self):
-
session_states = []
-
for x in self.members:
-
sstate = self.b.LocalLB.PoolMember.typefactory.create('LocalLB.PoolMember.MemberSessionState')
-
sstate.member = self.member_factory(x)
-
session_states.append(sstate)
-
return session_states
-
-
def disable_member(self):
-
for x in self.sstate_seq.item:
-
x.session_state = 'STATE_DISABLED'