Exemple #1
0
def create_real_vip_request(vip_requests, user):

    load_balance = dict()
    keys = list()

    for vip in vip_requests:
        load_balance = prepare_apply(
            load_balance, vip, created=False, user=user)

        keys.append(sorted([str(key) for key in load_balance.keys()]))

    # vips are in differents load balancers
    keys = [','.join(key) for key in keys]
    if len(list(set(keys))) > 1:
        raise Exception('Vips Request are in differents load balancers')

    for lb in load_balance:
        inst = copy.deepcopy(load_balance.get(lb))
        log.info('started call:%s' % lb)
        inst.get('plugin').create_vip(inst)
        log.info('ended call')

    ids = [vip_id.get('id') for vip_id in vip_requests]

    vips = VipRequest.objects.filter(id__in=ids)
    vips.update(created=True)

    for vip in vips:
        syncs.new_to_old(vip)

    ServerPool.objects.filter(
        viprequestportpool__vip_request_port__vip_request__id__in=ids).update(pool_created=True)
Exemple #2
0
def create_real_vip_request(vip_requests, user):

    load_balance = dict()
    keys = list()

    for vip in vip_requests:
        load_balance = prepare_apply(load_balance,
                                     vip,
                                     created=False,
                                     user=user)

        keys.append(sorted([str(key) for key in load_balance.keys()]))

    # vips are in differents load balancers
    keys = [','.join(key) for key in keys]
    if len(list(set(keys))) > 1:
        raise Exception('Vips Request are in differents load balancers')

    for lb in load_balance:
        inst = copy.deepcopy(load_balance.get(lb))
        log.info('started call:%s' % lb)
        inst.get('plugin').create_vip(inst)
        log.info('ended call')

    ids = [vip_id.get('id') for vip_id in vip_requests]

    vips = VipRequest.objects.filter(id__in=ids)
    vips.update(created=True)

    for vip in vips:
        syncs.new_to_old(vip)

    ServerPool.objects.filter(
        viprequestportpool__vip_request_port__vip_request__id__in=ids).update(
            pool_created=True)
Exemple #3
0
def update_vip_request(vip_request, user):
    """
    update Vip Request
    """

    vip = models.VipRequest.get_by_pk(vip_request['id'])

    vip.name = vip_request['name']
    vip.service = vip_request['service']
    vip.business = vip_request['business']
    vip.environmentvip_id = vip_request['environmentvip']
    vip.ipv4 = Ip.get_by_pk(
        vip_request['ipv4']) if vip_request['ipv4'] else None
    vip.ipv6 = Ipv6.get_by_pk(
        vip_request['ipv6']) if vip_request['ipv6'] else None

    option_ids = [
        int(option.optionvip.id)
        for option in vip.viprequestoptionvip_set.all()
    ]
    options = [
        int(vip_request['options'][key]) for key in vip_request['options']
    ]
    option_remove = list(set(option_ids) - set(options))
    option_create = list(set(options) - set(option_ids))

    vip.save()

    _update_port(vip_request['ports'], vip)

    _create_option(option_create, vip.id)
    _delete_option(option_remove, vip.id)

    dsrl3 = OptionVip.objects.filter(
        nome_opcao_txt='DSRL3', tipo_opcao='Retorno de trafego').values('id')
    if dsrl3:
        if dsrl3[0]['id'] in option_remove:
            models.VipRequestDSCP.objects.filter(vip_request=vip.id).delete()

    # perms
    groups_perm = vip_request.get('groups_permissions', [])
    groups_perm += facade_usr.get_groups(
        vip_request.get('users_permissions', []))
    groups = facade_usr.reduce_groups(groups_perm)

    perm = vip_request.get('permissions')
    perm_replace = perm.get('replace') if perm else False

    update_groups_permissions(groups, vip.id, user, perm_replace)

    # sync with old tables
    syncs.new_to_old(vip)
Exemple #4
0
    def create_v3(self, vip_map, user):
        """Creates Vip Request."""

        ip_models = get_app('ip', 'models')
        env_models = get_app('ambiente', 'models')
        reqvip_models = get_app('requisicaovips', 'models')

        ogp_models = get_app('api_ogp', 'models')

        self.validate_save(vip_map, permit_created=False)

        req = reqvip_models.RequisicaoVips()
        req.save()

        self.id = req.id
        self.name = vip_map.get('name')
        self.service = vip_map.get('service')
        self.business = vip_map.get('business')

        # Environment VIP
        self.environmentvip = env_models.EnvironmentVip\
            .get_by_pk(vip_map.get('environmentvip'))
        # IPv4
        if vip_map.get('ipv4'):
            self.ipv4 = ip_models.Ip.get_by_pk(vip_map.get('ipv4'))
        # IPv6
        if vip_map.get('ipv6'):
            self.ipv6 = ip_models.Ipv6.get_by_pk(vip_map.get('ipv6'))

        self.save()

        # Options VIP
        option_create = [
            int(vip_map['options'][key]) for key in vip_map['options']
        ]
        self._create_option(option_create)

        # Ports
        for port in vip_map['ports']:
            pt = VipRequestPort()
            port['vip_request'] = self.id
            pt.create_v3(port)

        # Permissions
        perm = ogp_models.ObjectGroupPermission()
        perm.create_perms(vip_map, self.id, AdminPermission.OBJ_TYPE_VIP, user)

        # sync with old tables
        syncs.new_to_old(self)
Exemple #5
0
    def create_v3(self, vip_map, user):
        """Creates Vip Request."""

        ip_models = get_app('ip', 'models')
        env_models = get_app('ambiente', 'models')
        reqvip_models = get_app('requisicaovips', 'models')

        ogp_models = get_app('api_ogp', 'models')

        self.validate_save(vip_map, permit_created=False)

        req = reqvip_models.RequisicaoVips()
        req.save()

        self.id = req.id
        self.name = vip_map.get('name')
        self.service = vip_map.get('service')
        self.business = vip_map.get('business')

        # Environment VIP
        self.environmentvip = env_models.EnvironmentVip\
            .get_by_pk(vip_map.get('environmentvip'))
        # IPv4
        if vip_map.get('ipv4'):
            self.ipv4 = ip_models.Ip.get_by_pk(vip_map.get('ipv4'))
        # IPv6
        if vip_map.get('ipv6'):
            self.ipv6 = ip_models.Ipv6.get_by_pk(vip_map.get('ipv6'))

        self.save()

        # Options VIP
        option_create = [int(vip_map['options'][key])
                         for key in vip_map['options']]
        self._create_option(option_create)

        # Ports
        for port in vip_map['ports']:
            pt = VipRequestPort()
            port['vip_request'] = self.id
            pt.create_v3(port)

        # Permissions
        perm = ogp_models.ObjectGroupPermission()
        perm.create_perms(vip_map, self.id, AdminPermission.OBJ_TYPE_VIP, user)

        # sync with old tables
        syncs.new_to_old(self)
Exemple #6
0
def create_vip_request(vip_request, user):
    """
    Create Vip Request
    """
    # Remove when RequisicaoVips is die
    req = RequisicaoVips()
    req.save()

    vip = models.VipRequest()
    vip.id = req.id
    vip.name = vip_request['name']
    vip.service = vip_request['service']
    vip.business = vip_request['business']
    vip.environmentvip_id = vip_request['environmentvip']
    vip.ipv4 = Ip.get_by_pk(
        vip_request['ipv4']) if vip_request['ipv4'] else None
    vip.ipv6 = Ipv6.get_by_pk(
        vip_request['ipv6']) if vip_request['ipv6'] else None

    option_create = [
        vip_request['options'][key] for key in vip_request['options']
    ]
    vip.save()

    _create_port(vip_request['ports'], vip)
    _create_option(option_create, vip.id)

    # perms
    groups_perm = vip_request.get('groups_permissions', [])
    groups_perm += facade_usr.get_groups(
        vip_request.get('users_permissions', []))
    groups = facade_usr.reduce_groups(groups_perm)
    create_groups_permissions(groups, vip.id, user)

    # sync with old tables
    syncs.new_to_old(vip)

    return vip
Exemple #7
0
    def update_v3(self, vip_map, user, permit_created=False):
        """Updates Vip Request."""

        ip_models = get_app('ip', 'models')
        env_models = get_app('ambiente', 'models')

        ogp_models = get_app('api_ogp', 'models')

        self.validate_save(vip_map, permit_created=permit_created)

        self.name = vip_map.get('name')
        self.service = vip_map.get('service')
        self.business = vip_map.get('business')

        # Environment VIP
        self.environmentvip = env_models.EnvironmentVip\
            .get_by_pk(vip_map.get('environmentvip'))
        # IPv4
        if vip_map.get('ipv4'):
            self.ipv4 = ip_models.Ip.get_by_pk(vip_map.get('ipv4'))
        # IPv6
        if vip_map.get('ipv6'):
            self.ipv6 = ip_models.Ipv6.get_by_pk(vip_map.get('ipv6'))

        self.save()

        option_ids = [int(option.optionvip.id)
                      for option in self.viprequestoptionvip_set.all()]
        options = [int(vip_map['options'][key])
                   for key in vip_map['options']]
        option_remove = list(set(option_ids) - set(options))
        option_create = list(set(options) - set(option_ids))

        self._create_option(option_create)
        self._delete_option(option_remove)

        # Ports
        for port in vip_map.get('ports'):
            try:
                pt = VipRequestPort.objects.get(
                    vip_request_id=self.id,
                    port=port['port'])
            except:
                pt = VipRequestPort()
                port['vip_request'] = self.id
                pt.create_v3(port)
            else:
                pt.update_v3(port)

        # Deletes ports
        ports_ids = [port.get('port') for port in vip_map.get('ports')]
        VipRequestPort.objects.filter(
            vip_request_id=self.id
        ).exclude(
            port__in=ports_ids
        ).delete()

        # Permissions

        perm = ogp_models.ObjectGroupPermission()
        perm.update_perms(vip_map, self.id, AdminPermission.OBJ_TYPE_VIP, user)

        # sync with old tables
        syncs.new_to_old(self)
Exemple #8
0
    def update_v3(self, vip_map, user, permit_created=False):
        """Updates Vip Request."""

        ip_models = get_app('ip', 'models')
        env_models = get_app('ambiente', 'models')

        ogp_models = get_app('api_ogp', 'models')

        self.validate_save(vip_map, permit_created=permit_created)

        self.name = vip_map.get('name')
        self.service = vip_map.get('service')
        self.business = vip_map.get('business')

        # Environment VIP
        self.environmentvip = env_models.EnvironmentVip\
            .get_by_pk(vip_map.get('environmentvip'))
        # IPv4
        if vip_map.get('ipv4'):
            self.ipv4 = ip_models.Ip.get_by_pk(vip_map.get('ipv4'))
        # IPv6
        if vip_map.get('ipv6'):
            self.ipv6 = ip_models.Ipv6.get_by_pk(vip_map.get('ipv6'))

        self.save()

        option_ids = [int(option.optionvip.id)
                      for option in self.viprequestoptionvip_set.all()]
        options = [int(vip_map['options'][key])
                   for key in vip_map['options']]
        option_remove = list(set(option_ids) - set(options))
        option_create = list(set(options) - set(option_ids))

        self._create_option(option_create)
        self._delete_option(option_remove)

        # Ports
        for port in vip_map.get('ports'):
            try:
                pt = VipRequestPort.objects.get(
                    vip_request_id=self.id,
                    port=port['port'])
            except:
                pt = VipRequestPort()
                port['vip_request'] = self.id
                pt.create_v3(port)
            else:
                pt.update_v3(port)

        # Deletes ports
        ports_ids = [port.get('port') for port in vip_map.get('ports')]
        VipRequestPort.objects.filter(
            vip_request_id=self.id
        ).exclude(
            port__in=ports_ids
        ).delete()

        # Permissions

        perm = ogp_models.ObjectGroupPermission()
        perm.update_perms(vip_map, self.id, AdminPermission.OBJ_TYPE_VIP, user)

        # sync with old tables
        syncs.new_to_old(self)