Esempio n. 1
0
    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'])
Esempio n. 2
0
    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'])
Esempio n. 3
0
    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'])
Esempio n. 4
0
    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'])
Esempio n. 5
0
    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)
Esempio n. 6
0
    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'])