Beispiel #1
0
    def create(self):
        hash_params = ('username', 'name', 'mail',
                       'loginShell', 'title', 'manager',
                       'departmentNumber', 'roomNumber',
                       'orgchartmanager', 'utilityaccount', 'deploycode')
        dh = DirectoryHelper(
                directoryCN, directoryPassword, directoryDomain)

        data_map = {}
        groups = []
        for k,v in request.params.items():
            if k in hash_params:
                data_map[k] = v
            elif k == 'group':
                groups.append(v)

        data_map['username'] = data_map['username'].lower()

        dh.ldap.create(data_map['username'], data_map['name'],
                       data_map['mail'], data_map['loginShell'],
                       data_map['title'], data_map['manager'],
                       data_map['departmentNumber'], data_map['roomNumber'],
                       data_map['deploycode'], data_map['orgchartmanager'],
                       data_map['utilityaccount'] )

        dh.set_groups(data_map['username'], groups)

        session['flash'] = 'Successfully created %s' % data_map['username']
        session.save()

        data_map['account'] = data_map['username']
        ae = ActivityEngine(Session, session['active_user']['user_id'])
        ae.create('user', data_map)

        return redirect(url(
                controller='users', action='edit',
                account=data_map['username']))
Beispiel #2
0
    def create(self):
        data = {}

        data['name'] = request.params['name']
        data['description'] = request.params['description']

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

        if status:
            session['flash'] = status
            session.save()

        return redirect(url(controller='groups', action='index'))
Beispiel #3
0
    def create(self):
        data = {}

        data['name'] = request.params['name']
        data['description'] = request.params['description']

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

        if status:
            session['flash'] = status
            session.save()

        return redirect(url(controller='groups', action='index'))
Beispiel #4
0
    def create(self):
        data = {}
        data['hostname'] = request.params['hostname']
        data['service_tag'] = request.params['service_tag']
        data['primary_ip'] = request.params['primary_ip']
        data['location'] = request.params['location']
        data['description'] = request.params['description']

        activity_engine = ActivityEngine(Session,
                session['active_user']['user_id'])
        status = activity_engine.create('node', data)

        if status:
            session['flash'] = status['status']
            session.save()

        return redirect(url(controller='nodes',
            action='show', id=status['info']['id']))
Beispiel #5
0
    def create(self):
        data = {}
        data['hostname'] = request.params['hostname']
        data['service_tag'] = request.params['service_tag']
        data['primary_ip'] = request.params['primary_ip']
        data['location'] = request.params['location']
        data['description'] = request.params['description']

        activity_engine = ActivityEngine(Session,
                                         session['active_user']['user_id'])
        status = activity_engine.create('node', data)

        if status:
            session['flash'] = status['status']
            session.save()

        return redirect(
            url(controller='nodes', action='show', id=status['info']['id']))
Beispiel #6
0
    def createpool(self, format=None):
        response.content_type = "application/json"
        has_members = False
        ids = None
        ips = None
        use_primary = True

        if 'pool' in request.params:
            pool = request.params['pool']
        else:
            session['flash'] = 'Pool was not created'
            session.save()
            if format == 'json':
                return '{"success": false}'
            else:
                return redirect(url(controller='loadbalancer', action='index'))

        if 'ids[]' in request.params:
            ids = [v for k, v in request.params.items() if 'ids[]' in k]
            if 'use_secondary' in request.params:
                use_primary = False
        if 'ips[]' in request.params:
            ips = [v for k, v in request.params.items() if 'ips[]' in k]
        if ips or ids:
            if 'port' in request.params:
                port = request.params['port']
                has_members = True
        else:
            ids, ips, port = None, None, None

        lb = LoadBalancer(ip='your_lb_ip')
        mem_seq = lb.b.LocalLB.Pool.typefactory.create(
            'Common.IPPortDefinitionSequence')
        if ids:
            if use_primary:
                mem_seq.item = [lb._member_factory(
                    ':'.join([Session.query(Node.primary_ip)\
                            .filter(Node.id == id)\
                            .first()[0], port])) for id in ids]
            else:
                mem_seq.item = [lb._member_factory(
                    ':'.join([Session.query(Node.secondary_ip)\
                            .filter(Node.id == id)\
                            .first()[0], port])) for id in ids]
        elif ips:
            mem_seq.item = [
                lb._member_factory(':'.join([ip, port])) for ip in ips
            ]

        if not has_members:
            mem_seq = []

        lb.create_pool(pool, mem_seq)
        data = {}
        data['pool'] = pool
        if ids:
            data['hosts'] = [
                Session.query(Node)\
                    .filter(Node.id == id).first()\
                    for id in ids ]
        if ips:
            data['hosts'] = [
                Session.query(Node)\
                    .filter(or_(Node.primary_ip.in_([ips]),
                                Node.secondary_ip.in_([ips])))\
                    .first() for id in ids ]
        ae = ActivityEngine(Session, session['active_user']['user_id'])

        status = ae.create('loadbalancer', data)
        session['flash'] = status
        session.save()
        if format == 'json':
            return '{"success": true}'
        else:
            return redirect(url(controller='loadbalancer', action='index'))
Beispiel #7
0
    def createpool(self, format=None):
        response.content_type = "application/json"
        has_members = False
        ids = None
        ips = None
        use_primary = True

        if 'pool' in request.params:
            pool = request.params['pool']
        else:
            session['flash'] = 'Pool was not created'
            session.save()
            if format == 'json':
                return '{"success": false}'
            else:
                return redirect(url(
                        controller='loadbalancer', action='index'))

        if 'ids[]' in request.params:
            ids = [v for k,v in request.params.items() if 'ids[]' in k]
            if 'use_secondary' in request.params:
                use_primary = False
        if 'ips[]' in request.params:
            ips = [v for k,v in request.params.items() if 'ips[]' in k]
        if ips or ids:
            if 'port' in request.params:
                port = request.params['port']
                has_members = True
        else:
            ids,ips,port = None,None,None

        lb = LoadBalancer(ip='your_lb_ip')
        mem_seq = lb.b.LocalLB.Pool.typefactory.create(
                'Common.IPPortDefinitionSequence')
        if ids:
            if use_primary:
                mem_seq.item = [lb._member_factory(
                    ':'.join([Session.query(Node.primary_ip)\
                            .filter(Node.id == id)\
                            .first()[0], port])) for id in ids]
            else:
                mem_seq.item = [lb._member_factory(
                    ':'.join([Session.query(Node.secondary_ip)\
                            .filter(Node.id == id)\
                            .first()[0], port])) for id in ids]
        elif ips:
            mem_seq.item = [lb._member_factory(
                ':'.join([ip, port])) for ip in ips]

        if not has_members:
            mem_seq = []

        lb.create_pool(pool, mem_seq)
        data = {}
        data['pool'] = pool
        if ids:
            data['hosts'] = [
                Session.query(Node)\
                    .filter(Node.id == id).first()\
                    for id in ids ]
        if ips:
            data['hosts'] = [
                Session.query(Node)\
                    .filter(or_(Node.primary_ip.in_([ips]),
                                Node.secondary_ip.in_([ips])))\
                    .first() for id in ids ]
        ae = ActivityEngine(
            Session, session['active_user']['user_id'])

        status = ae.create('loadbalancer', data)
        session['flash'] = status
        session.save()
        if format == 'json':
            return '{"success": true}'
        else:
            return redirect(url(
                    controller='loadbalancer', action='index'))