From 52623fe3259688b6c29a67397b6e465e2de37b49 Mon Sep 17 00:00:00 2001 From: "Paul Buetow (lxpbuetow.webde.local)" Date: Tue, 24 Jun 2014 16:40:54 +0200 Subject: can get and set ratio of pool members --- src/fapi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src') diff --git a/src/fapi b/src/fapi index 3d3b6e6..78e652e 100755 --- a/src/fapi +++ b/src/fapi @@ -84,6 +84,8 @@ class FapiBase(object): ' pool NAME del monitors', ' pool NAME get detail|lbmethod|members|monitor|status', ' pool NAME set lbmethod LBMETHOD', + ' poolmember NAME MEMBER:PORT get ratio', + ' poolmember NAME MEMBER:PORT set ratio RATIO', ' vip', ' vip NAME create NETMASK', ' vip NAME get arp|detail|status|tgroup', @@ -385,6 +387,26 @@ class Fapi(FapiBase): # Removes all monitor associations, not just one return lambda: f5().remove_monitor_association([a.name]) + + def __do_poolmember(self, f5): + ''' Do stuff concerning poolmebers ''' + a = self._args + member = a.sub + if not member: + return lambda: f5().get_ratio([a.name]) + elif a.sub2 == 'get': + if a.sub3 == 'ratio': + return lambda: f5().get_ratio([a.name]) + elif a.sub2 == 'set': + if a.sub3 == 'ratio': + ratio = a.sub4 + _, ip, port = self.lookup(member) + ipport = { "address": ip, "port": port } + memberratio = { "member": ipport, "ratio": ratio } + return lambda: memberratio + return lambda: f5().set_ratio([a.name], [[memberratio]]) + + def __do_vserver(self, f5): ''' Do stuff concerning virtual servers ''' a = self._args @@ -771,6 +793,8 @@ class Fapi(FapiBase): return self.__do_monitor(lambda: self._f5.LocalLB.Monitor) elif a.what == 'pool': return self.__do_pool(lambda: self._f5.LocalLB.Pool) + elif a.what == 'poolmember': + return self.__do_poolmember(lambda: self._f5.LocalLB.PoolMember) elif a.what == 'vserver': return self.__do_vserver(lambda: self._f5.LocalLB.VirtualServer) elif a.what == 'vip': -- cgit v1.2.3