Esempio n. 1
0
    def getStateMember(self, pools):
        pls = util._trataParam(pools)

        plm = poolmember.PoolMember(self._lb)
        return plm.getStates(
            names=pls['pools_names'],
            members=pls['pools_members']['members'])
Esempio n. 2
0
    def setConnectionLimitMember(self, pools):

        pls = util._trataParam(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. 3
0
    def setPriorityMember(self, pools):

        pls = util._trataParam(pools)

        plm = poolmember.PoolMember(self._lb)
        plm.setPriority(
            names=pls['pools_names'],
            members=pls['pools_members']['members'],
            priority=pls['pools_members']['priority'])
Esempio n. 4
0
    def deletePool(self, pools):

        pls = util._trataParam(pools)

        pl = pool.Pool(self._lb)
        mon = monitor.Monitor(self._lb)

        mon.deleteTemplateAssoc(names=pls['pools_names'])
        pl.delete(names=pls['pools_names'])
Esempio n. 5
0
    def createPool(self, pools):

        monitor_associations = []
        pls = util._trataParam(pools)

        mon = monitor.Monitor(self._lb)

        monitor_associations = mon.createTemplate(
            names=pls['pools_names'],
            healthcheck=pls['pools_healthcheck']
        )

        try:
            self._lb._channel.System.Session.start_transaction()

            pl = pool.Pool(self._lb)

            pl.create(
                names=pls['pools_names'],
                lbmethod=pls['pools_lbmethod'],
                members=pls['pools_members']['members'])

            pl.setMonitorAssociation(monitor_associations=monitor_associations)

            pl.setServiceDownAction(
                names=pls['pools_names'],
                actions=pls['pools_actions'])

            plm = poolmember.PoolMember(self._lb)

            plm.setConnectionLimit(
                names=pls['pools_names'],
                members=pls['pools_members']['members'],
                connection_limit=pls['pools_members']['limit'])

            plm.setPriority(
                names=pls['pools_names'],
                members=pls['pools_members']['members'],
                priority=pls['pools_members']['priority'])

            plm.setStates(
                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()
            if monitor_associations != []:
                template_names = [m['monitor_rule']['monitor_templates'] for m in monitor_associations]
                mon.deleteTemplate(
                    template_names=template_names
                )
            raise base_exceptions.CommandErrorException(e)
Esempio n. 6
0
    def setStateMember(self, pools):

        pls = util._trataParam(pools)

        plm = poolmember.PoolMember(self._lb)

        plm.setStates(
            names=pls['pools_names'],
            members=pls['pools_members']['members'],
            monitor_state=pls['pools_members']['monitor'],
            session_state=pls['pools_members']['session'])
Esempio n. 7
0
    def deletePool(self, pools):

        pls = util._trataParam(pools)

        pl = pool.Pool(self._lb)
        mon = monitor.Monitor(self._lb)

        monitor_associations_old = pl.getMonitorAssociation(names=pls['pools_names'])
        mon.deleteTemplateAssoc(names=pls['pools_names'])
        pl.delete(names=pls['pools_names'])
        template_names = [m for m in list(itertools.chain(*[m['monitor_rule']['monitor_templates'] for m in monitor_associations_old])) if 'MONITOR' in m]
        if template_names:
            mon.deleteTemplate(names=template_names)
    def deletePool(self, pools):
        log.info('deletePool')

        pls = util._trataParam(pools)

        pl = pool.Pool(self._lb)
        mon = monitor.Monitor(self._lb)
        self._lb._channel.System.Session.start_transaction()
        try:
            monitor_associations = pl.getMonitorAssociation(names=pls['pools_names'])
            pl.removeMonitorAssociation(names=pls['pools_names'])
        except Exception, e:
            self._lb._channel.System.Session.rollback_transaction()
            raise base_exceptions.CommandErrorException(e)
    def updatePool(self, pools):
        log.info('updatePool')
        monitor_associations = []
        pls = util._trataParam(pools)

        pl = pool.Pool(self._lb)
        mon = monitor.Monitor(self._lb)

        # get template currents
        monitor_associations_old = pl.getMonitorAssociation(names=pls['pools_names'])

        # creates templates
        monitor_associations = mon.createTemplate(
            names=pls['pools_names'],
            healthcheck=pls['pools_healthcheck']
        )

        try:
            self._lb._channel.System.Session.start_transaction()

            pl.removeMonitorAssociation(names=pls['pools_names'])

            pl.setMonitorAssociation(monitor_associations=monitor_associations)

            pl.setLbMethod(
                names=pls['pools_names'],
                lbmethod=pls['pools_lbmethod'])

            pl.setServiceDownAction(
                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.setConnectionLimit(
                names=pls['pools_names'],
                members=pls['pools_members']['members'],
                connection_limit=pls['pools_members']['limit'])

            plm.setPriority(
                names=pls['pools_names'],
                members=pls['pools_members']['members'],
                priority=pls['pools_members']['priority'])

            plm.setStates(
                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_old])) if 'MONITOR' in m]
            if template_names:
                mon.deleteTemplate(
                    template_names=template_names
                )
            raise base_exceptions.CommandErrorException(e)