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)
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)
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)
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)
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)
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
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)