예제 #1
0
파일: ixctl.py 프로젝트: fullctl/ixctl
    def update(self, request, org, instance, ix, routeserver, *args, **kwargs):
        serializer = Serializers.rs(data=request.data,
                                    instance=routeserver,
                                    context={"instance": instance})
        if not serializer.is_valid():
            return BadRequest(serializer.errors)

        routeserver = serializer.save()

        return Response(Serializers.rs(instance=routeserver).data)
예제 #2
0
파일: ixctl.py 프로젝트: fullctl/ixctl
    def create(self, request, org, instance, ix, *args, **kwargs):
        data = request.data
        data["ix"] = models.InternetExchange.objects.get(instance=instance,
                                                         id=ix.pk).id
        serializer = Serializers.rs(data=data, context={"instance": instance})
        if not serializer.is_valid():
            return BadRequest(serializer.errors)

        routeserver = serializer.save()

        return Response(Serializers.rs(instance=routeserver).data)
예제 #3
0
파일: ixctl.py 프로젝트: fullctl/ixctl
    def create(self, request, org, instance, auditlog=None, *args, **kwargs):

        data = request.data
        data["pdb_id"] = None
        data["instance"] = instance.id
        serializer = Serializers.ix(data=data)
        if not serializer.is_valid():
            return BadRequest(serializer.errors)
        ix = serializer.save()

        return Response(Serializers.ix(instance=ix).data)
예제 #4
0
파일: ixctl.py 프로젝트: fullctl/ixctl
 def retrieve(self, request, org, instance, ix, name, *args, **kwargs):
     rs_config = self.get_object()
     serializer = Serializers.rsconf(
         instance=rs_config,
         many=False,
     )
     return Response(serializer.data)
예제 #5
0
파일: ixctl.py 프로젝트: fullctl/ixctl
 def plain(self, request, org, instance, ix, name, *args, **kwargs):
     rs_config = self.get_object()
     serializer = Serializers.rsconf(
         instance=rs_config,
         many=False,
     )
     # return Response(serializer.instance.body)
     return Response(serializer.instance.body)
예제 #6
0
파일: ixctl.py 프로젝트: fullctl/ixctl
 def list(self, request, org, *args, **kwargs):
     serializer = Serializers.permreq(
         org.permreq_set.all(),
         many=True,
         context={
             "user": request.user,
             "perms": request.perms,
         },
     )
     return Response(serializer.data)
예제 #7
0
파일: ixctl.py 프로젝트: fullctl/ixctl
 def presence(self, request, org, instance, asn, net=None, *args, **kwargs):
     serializer = Serializers.presence(
         net.members,
         many=True,
         context={
             "perms": request.perms,
             "user": request.user
         },
     )
     return Response(serializer.data)
예제 #8
0
파일: ixctl.py 프로젝트: fullctl/ixctl
    def update(self, request, org, instance, ix, member, *args, **kwargs):
        serializer = request.grainy_update_serializer(
            Serializers.member, member, context={"instance": instance})

        if not serializer.is_valid():
            return BadRequest(serializer.errors)

        member = serializer.save()

        return Response(Serializers.member(instance=member).data)
예제 #9
0
파일: ixctl.py 프로젝트: fullctl/ixctl
 def destroy(self,
             request,
             org,
             ix,
             instance,
             auditlog=None,
             *args,
             **kwargs):
     ix.delete()
     ix.id = request.data.get("id")
     return Response(Serializers.ix(instance=ix).data)
예제 #10
0
파일: ixctl.py 프로젝트: fullctl/ixctl
    def update(self,
               request,
               org,
               ix,
               instance,
               auditlog=None,
               *args,
               **kwargs):
        serializer = Serializers.ix(
            ix,
            data=request.data,
        )

        if not serializer.is_valid():
            return BadRequest(serializer.errors)
        ix = serializer.save()
        ix.instance = instance
        ix.save()

        return Response(Serializers.ix(instance=ix).data)
예제 #11
0
파일: ixctl.py 프로젝트: fullctl/ixctl
    def list(self, request, org, instance, ix, *args, **kwargs):
        queryset = self.get_queryset().order_by("name")
        ordering_filter = CaseInsensitiveOrderingFilter(
            ["name", "asn", "router_id"])
        queryset = ordering_filter.filter_queryset(request, queryset, self)

        serializer = Serializers.rs(
            instance=queryset,
            many=True,
        )

        return Response(serializer.data)
예제 #12
0
파일: ixctl.py 프로젝트: fullctl/ixctl
    def import_peeringdb(self,
                         request,
                         org,
                         instance,
                         auditlog=None,
                         *args,
                         **kwargs):

        serializer = Serializers.impix(
            data=request.data,
            context={"instance": instance},
        )

        if not serializer.is_valid():
            return BadRequest(serializer.errors)

        ix = serializer.save()

        auditlog.log("ix:import", log_object=ix, **request.data)

        return Response(Serializers.ix(instance=ix).data)
예제 #13
0
파일: ixctl.py 프로젝트: fullctl/ixctl
    def list(self, request, org, instance, ix, *args, **kwargs):
        ordering_filter = CaseInsensitiveOrderingFilter(
            ["name", "asn", "ipaddr4", "ipaddr6", "speed"])

        queryset = self.get_queryset().select_related("ix", "ix__instance")

        queryset = ordering_filter.filter_queryset(request, queryset, self)

        members = models.InternetExchangeMember.preload_as_macro(queryset)

        serializer = Serializers.member(
            instance=members,
            many=True,
        )

        return Response(serializer.data)
예제 #14
0
파일: ixctl.py 프로젝트: fullctl/ixctl
 def list(self, request, org, instance, *args, **kwargs):
     serializer = Serializers.ix(
         instance=models.InternetExchange.objects.filter(instance=instance),
         many=True,
     )
     return Response(serializer.data)
예제 #15
0
파일: ixctl.py 프로젝트: fullctl/ixctl
 def list(self, request, org, instance, *args, **kwargs):
     serializer = Serializers.net(
         instance.net_set.all(),
         many=True,
     )
     return Response(serializer.data)
예제 #16
0
파일: ixctl.py 프로젝트: fullctl/ixctl
 def destroy(self, request, org, instance, ix, member, *args, **kwargs):
     r = Response(Serializers.member(instance=member).data)
     member.delete()
     return r
예제 #17
0
파일: ixctl.py 프로젝트: fullctl/ixctl
 def retrieve(self, request, org, ix, instance, *args, **kwargs):
     serializer = Serializers.ix(
         instance=ix,
         many=False,
     )
     return Response(serializer.data)
예제 #18
0
파일: ixctl.py 프로젝트: fullctl/ixctl
 def destroy(self, request, org, instance, ix, routeserver, *args,
             **kwargs):
     r = Response(Serializers.rs(instance=routeserver).data)
     routeserver.delete()
     return r