def remove_member(self, pools): pls = util.trata_param_pool(pools) plm = poolmember.PoolMember(self._lb) return plm.remove(names=pls['pools_names'], members=pls['pools_members']['members'])
def set_priority_member(self, pools): pls = util.trata_param_pool(pools) plm = poolmember.PoolMember(self._lb) plm.setPriority(names=pls['pools_names'], members=pls['pools_members']['members'], priority=pls['pools_members']['priority'])
def set_connection_limit_member(self, pools): pls = util.trata_param_pool(pools) plm = poolmember.PoolMember(self._lb) plm.setConnectionLimit(names=pls['pools_names'], members=pls['pools_members']['members'], connection_limit=pls['pools_members']['limit'])
def set_state_member(self, pools): pls = util.trata_param_pool(pools) plm = poolmember.PoolMember(self._lb) plm.set_states(names=pls['pools_names'], members=pls['pools_members']['members'], monitor_state=pls['pools_members']['monitor'], session_state=pls['pools_members']['session'])
def __update_pool(self, pools): monitor_associations = [] pls = util.trata_param_pool(pools) pl = pool.Pool(self._lb) mon = monitor.Monitor(self._lb) # get template currents monitor_associations_old = pl.get_monitor_association( names=pls['pools_names']) # creates templates monitor_associations, monitor_associations_nodes, templates_extra = mon.prepare_template( names=pls['pools_names'], members=pls['pools_members']['members'], healthcheck=pls['pools_healthcheck']) mon.create_template(templates_extra=templates_extra) try: self._lb._channel.System.Session.start_transaction() pl.set_monitor_association( monitor_associations=monitor_associations) pl.set_lb_method(names=pls['pools_names'], lbmethod=pls['pools_lbmethod']) pl.set_service_down_action(names=pls['pools_names'], actions=pls['pools_actions']) plm = poolmember.PoolMember(self._lb) if pls['pools_members']['members_remove']: plm.remove(names=pls['pools_names'], members=pls['pools_members']['members_remove']) if pls['pools_members']['members_new']: plm.create(names=pls['pools_names'], members=pls['pools_members']['members_new']) plm.set_connection_limit( names=pls['pools_names'], members=pls['pools_members']['members'], connection_limit=pls['pools_members']['limit']) plm.set_priority(names=pls['pools_names'], members=pls['pools_members']['members'], priority=pls['pools_members']['priority']) plm.set_ratio(names=pls['pools_names'], members=pls['pools_members']['members'], ratio=pls['pools_members']['weight']) # plm.set_member_description( # names=pls['pools_names'], # members=pls['pools_members']['members'], # description=pls['pools_members']['description']) plm.set_states(names=pls['pools_names'], members=pls['pools_members']['members'], monitor_state=pls['pools_members']['monitor'], session_state=pls['pools_members']['session']) except Exception, e: self._lb._channel.System.Session.rollback_transaction() # delete templates created template_names = [ m for m in list( itertools.chain(*[ m['monitor_rule']['monitor_templates'] for m in monitor_associations ])) if 'MONITOR' in m ] if template_names: mon.delete_template(template_names=template_names) log.error(e) raise base_exceptions.CommandErrorException(e)
def get_state_member(self, pools): pls = util.trata_param_pool(pools) plm = poolmember.PoolMember(self._lb) return plm.get_states(names=pls['pools_names'], members=pls['pools_members']['members'])