Source code for networkapi.plugins.F5.poolmember

# -*- coding: utf-8 -*-
import logging

from networkapi.plugins.F5.f5base import F5Base
from networkapi.plugins.F5.util import logger

log = logging.getLogger(__name__)


[docs]class PoolMember(F5Base):
[docs] @logger def set_states(self, **kwargs): for k, v in kwargs.items(): if v == []: return self._lb._channel.LocalLB.Pool.set_member_session_enabled_state( kwargs['names'], kwargs['members'], kwargs['session_state']) self._lb._channel.LocalLB.Pool.set_member_monitor_state( kwargs['names'], kwargs['members'], kwargs['monitor_state'])
[docs] @logger def set_member_monitor_state(self, **kwargs): for k, v in kwargs.items(): if v == []: return self._lb._channel.LocalLB.Pool.set_member_monitor_state( kwargs['names'], kwargs['members'], kwargs['monitor_state'])
[docs] @logger def get_states(self, **kwargs): for k, v in kwargs.items(): if v == []: return monitors = self._lb._channel.LocalLB.Pool.get_member_monitor_status( kwargs['names'], kwargs['members']) sessions = self._lb._channel.LocalLB.Pool.get_member_session_status( kwargs['names'], kwargs['members']) status_pools = [] for p, pool in enumerate(monitors): status = [] for s, state in enumerate(pool): if state == 'MONITOR_STATUS_UP': healthcheck = '1' monitor = '1' elif state == 'MONITOR_STATUS_DOWN': healthcheck = '0' monitor = '1' elif state == 'MONITOR_STATUS_FORCED_DOWN': healthcheck = '0' monitor = '0' else: healthcheck = '1' monitor = '1' if sessions[p][s] == 'SESSION_STATUS_ENABLED': session = '1' elif sessions[p][s] == 'SESSION_STATUS_DISABLED': session = '0' elif sessions[p][s] == 'SESSION_STATUS_FORCED_DISABLED': session = '0' else: session = '1' status.append(int(healthcheck + session + monitor, 2)) status_pools.append(status) return status_pools
[docs] @logger def set_connection_limit(self, **kwargs): for k, v in kwargs.items(): if v == []: return self._lb._channel.LocalLB.Pool.set_member_connection_limit( kwargs['names'], kwargs['members'], kwargs['connection_limit'])
[docs] @logger def set_priority(self, **kwargs): for k, v in kwargs.items(): if v == []: return self._lb._channel.LocalLB.Pool.set_member_priority( kwargs['names'], kwargs['members'], kwargs['priority'],)
[docs] @logger def create(self, **kwargs): for k, v in kwargs.items(): if v == []: return names = [kwargs['names'][k] for k, n in enumerate(kwargs['members']) if kwargs[ 'names'][k] and kwargs['members'][k]] members = [kwargs['members'][k] for k, n in enumerate( kwargs['members']) if kwargs['names'][k] and kwargs['members'][k]] if names: self._lb._channel.LocalLB.Pool.add_member_v2( pool_names=names, members=members)
[docs] @logger def remove(self, **kwargs): for k, v in kwargs.items(): if v == []: return names = [kwargs['names'][k] for k, n in enumerate(kwargs['members']) if kwargs[ 'names'][k] and kwargs['members'][k]] members = [kwargs['members'][k] for k, n in enumerate( kwargs['members']) if kwargs['names'][k] and kwargs['members'][k]] if names: self._lb._channel.LocalLB.Pool.remove_member_v2( pool_names=names, members=members)
[docs] @logger def set_member_description(self, **kwargs): for k, v in kwargs.items(): if v == []: return self._lb._channel.LocalLB.Pool.set_member_description( kwargs['names'], kwargs['members'], kwargs['description'])
[docs] @logger def set_ratio(self, **kwargs): for k, v in kwargs.items(): if v == []: return self._lb._channel.LocalLB.Pool.set_member_ratio( kwargs['names'], kwargs['members'], kwargs['ratio'])
def __repr__(self): log.info('%s' % (self._lb)) return self._lb