Exemple #1
0
    def removegroups(self):
        response.content_type = "application/json"
        if 'ids[]' in request.params:
            ids = [v for k,v in request.params.items() if 'ids[]' in k]
        else:
            session['flash'] = 'No ids were sent'
            session.save()
            return '{"success": false}'

        data = {}
        data['remove_groups'] = True
        if 'groups' in request.params:
            data['groups'] = [\
                    v for k,v in request.params.items() if 'groups' in k]
        else:
            session['flash'] = 'No groups were sent'
            session.save()
            return '{"success": false}'

        activity_engine = ActivityEngine(
                Session, session['active_user']['user_id'])
        status = activity_engine.update_many('group', ids, data)

        session['flash'] = status
        session.save()
        return '{"success": true}'
Exemple #2
0
    def removegroups(self):
        response.content_type = "application/json"
        if 'ids[]' in request.params:
            ids = [v for k, v in request.params.items() if 'ids[]' in k]
        else:
            session['flash'] = 'No ids were sent'
            session.save()
            return '{"success": false}'

        data = {}
        data['remove_groups'] = True
        if 'groups' in request.params:
            data['groups'] = [\
                    v for k,v in request.params.items() if 'groups' in k]
        else:
            session['flash'] = 'No groups were sent'
            session.save()
            return '{"success": false}'

        activity_engine = ActivityEngine(Session,
                                         session['active_user']['user_id'])
        status = activity_engine.update_many('group', ids, data)

        session['flash'] = status
        session.save()
        return '{"success": true}'
Exemple #3
0
    def addhost(self, format=None):
        valid = False
        response.content_type = "application/json"
        ids = []
        ips = []
        ports = []
        if 'ids[]' in request.params:
            ids = [v for k, v in request.params.items() if 'ids[]' in k]
        if 'ips[]' in request.params:
            ips = [v for k, v in request.params.items() if 'ips[]' in k]
        if 'pool' in request.params:
            pool = request.params['pool']
            if 'ports[]' in request.params:
                ports = [v for k,v in request.params.items()\
                        if 'ports[]' in k]
        if ids or ips:
            if ports:
                valid = True

        if not valid:
            session['flash'] = 'No ids were sent'
            session.save()
            if format == 'json':
                return '{"success": false}'
            else:
                return redirect(url(controller='loadbalancer', action='index'))

        lb = LoadBalancer(ip='your_lb_ip')
        members = lb.b.LocalLB.Pool.typefactory.create(
            'Common.IPPortDefinitionSequence')

        data = {}
        if ids:
            data['hosts'] = [
                Session.query(Node.hostname)\
                    .filter(Node.id == id)\
                    .first()[0] for id in ids ]
            iplist = [ip[0] for ip in Session.query(Node.primary_ip)\
                .filter(Node.id.in_(ids)).all()]

            members.item = [lb._member_factory(
                ':'.join([ip, ports[i]]))\
                                for i,ip in enumerate(iplist)]
        if ips:
            data['hosts'] = [ q[0] for q in\
                Session.query(Node.hostname)\
                    .filter(or_(Node.primary_ip == ip,
                                Node.secondary_ip == ip))\
                    .all() for ip in ips ]
            members.item = [lb._member_factory(
                ':'.join([ip, port]))\
                                for i,ip in enumerate(ips)]

        lb.add_members(pool, members)
        data['pool'] = pool
        data['type'] = 'add'
        ae = ActivityEngine(Session, session['active_user']['user_id'])
        if len(ids) > 2 or len(ips) > 2:
            status = ae.update_many('loadbalancer', data)
        else:
            status = ae.update('loadbalancer', None, data)
        session['flash'] = status
        session.save()
        if format == 'json':
            return '{"success": true}'
        else:
            return redirect(url(controller='loadbalancer', action='index'))
Exemple #4
0
    def addhost(self, format=None):
        valid = False
        response.content_type = "application/json"
        ids = []
        ips = []
        ports = []
        if 'ids[]' in request.params:
            ids = [v for k,v in request.params.items() if 'ids[]' in k]
        if 'ips[]' in request.params:
            ips = [v for k,v in request.params.items() if 'ips[]' in k]
        if 'pool' in request.params:
            pool = request.params['pool']
            if 'ports[]' in request.params:
                ports = [v for k,v in request.params.items()\
                        if 'ports[]' in k]
        if ids or ips:
            if ports:
                valid = True

        if not valid:
            session['flash'] = 'No ids were sent'
            session.save()
            if format == 'json':
                return '{"success": false}'
            else:
                return redirect(url(
                        controller='loadbalancer', action='index'))

        lb = LoadBalancer(ip='your_lb_ip')
        members = lb.b.LocalLB.Pool.typefactory.create(
                'Common.IPPortDefinitionSequence')

        data = {}
        if ids:
            data['hosts'] = [
                Session.query(Node.hostname)\
                    .filter(Node.id == id)\
                    .first()[0] for id in ids ]
            iplist = [ip[0] for ip in Session.query(Node.primary_ip)\
                .filter(Node.id.in_(ids)).all()]

            members.item = [lb._member_factory(
                ':'.join([ip, ports[i]]))\
                                for i,ip in enumerate(iplist)]
        if ips:
            data['hosts'] = [ q[0] for q in\
                Session.query(Node.hostname)\
                    .filter(or_(Node.primary_ip == ip,
                                Node.secondary_ip == ip))\
                    .all() for ip in ips ]
            members.item = [lb._member_factory(
                ':'.join([ip, port]))\
                                for i,ip in enumerate(ips)]

        lb.add_members(pool, members)
        data['pool'] = pool
        data['type'] = 'add'
        ae = ActivityEngine(
            Session, session['active_user']['user_id'])
        if len(ids) > 2 or len(ips) > 2:
            status = ae.update_many('loadbalancer', data)
        else:
            status = ae.update('loadbalancer', None, data)
        session['flash'] = status
        session.save()
        if format == 'json':
            return '{"success": true}'
        else:
            return redirect(url(
                    controller='loadbalancer', action='index'))