diff options
| -rw-r--r-- | docs/synopsis.txt | 3 | ||||
| -rwxr-xr-x | src/fapi | 24 |
2 files changed, 26 insertions, 1 deletions
diff --git a/docs/synopsis.txt b/docs/synopsis.txt index c4e4e07..593f214 100644 --- a/docs/synopsis.txt +++ b/docs/synopsis.txt @@ -31,7 +31,8 @@ Synopsis: monitor NAME get desc|state node node NODENAME create|delete - node NODENAME get detail|status + node NODENAME get detail|status|ratio + node NODENAME set ratio RATIO pool pool NAME add member MEMBER:PORT pool NAME add monitor MONITOR @@ -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': |
