blob: 3414fb8d46f2a56db17f9c6ee60b7217bd1135e8 [file] [log] [blame]
Scott Bakerb0cfe522015-04-15 22:11:25 -07001from rest_framework.decorators import api_view
2from rest_framework.response import Response
3from rest_framework.reverse import reverse
4from rest_framework import serializers
5from rest_framework import generics
6from core.models import *
7from django.forms import widgets
8from cord.models import VOLTTenant
9from core.xoslib.objects.cordsubscriber import CordSubscriber
10from plus import PlusSerializerMixin
11from xos.apibase import XOSListCreateAPIView, XOSRetrieveUpdateDestroyAPIView, XOSPermissionDenied
12
13if hasattr(serializers, "ReadOnlyField"):
14 # rest_framework 3.x
Scott Baker808a15f2015-04-16 21:56:03 -070015 ReadOnlyField = serializers.ReadOnlyField
Scott Bakerb0cfe522015-04-15 22:11:25 -070016else:
17 # rest_framework 2.x
Scott Baker808a15f2015-04-16 21:56:03 -070018 ReadOnlyField = serializers.Field
Scott Bakerb0cfe522015-04-15 22:11:25 -070019
20class CordSubscriberIdSerializer(serializers.ModelSerializer, PlusSerializerMixin):
Scott Baker808a15f2015-04-16 21:56:03 -070021 id = ReadOnlyField()
Scott Baker297c1382015-04-20 09:17:34 -070022 vlan_id = ReadOnlyField()
Scott Baker808a15f2015-04-16 21:56:03 -070023 vcpe_id = ReadOnlyField()
24 sliver = ReadOnlyField()
25 image = ReadOnlyField()
Scott Baker297c1382015-04-20 09:17:34 -070026 vbng_id = ReadOnlyField()
Scott Bakerb0cfe522015-04-15 22:11:25 -070027 firewall_enable = serializers.BooleanField()
Scott Baker808a15f2015-04-16 21:56:03 -070028 firewall_rules = serializers.CharField()
29 url_filter_enable = serializers.BooleanField()
30 url_filter_rules = serializers.CharField()
31 cdn_enable = serializers.BooleanField()
32 sliver_name = ReadOnlyField()
33 image_name = ReadOnlyField()
Scott Baker297c1382015-04-20 09:17:34 -070034 routeable_subnet = serializers.CharField()
Scott Bakerb0cfe522015-04-15 22:11:25 -070035
36 humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
37
38 class Meta:
39 model = CordSubscriber
40 fields = ('humanReadableName', 'id',
Scott Baker297c1382015-04-20 09:17:34 -070041 'vlan_id',
42 'vcpe_id', 'sliver', 'sliver_name', 'image', 'image_name', 'firewall_enable', 'firewall_rules', 'url_filter_enable', 'url_filter_rules', 'cdn_enable', 'vbng_id', 'routeable_subnet',)
Scott Bakerb0cfe522015-04-15 22:11:25 -070043
44
45 def getHumanReadableName(self, obj):
Scott Baker808a15f2015-04-16 21:56:03 -070046 return obj.__unicode__()
Scott Bakerb0cfe522015-04-15 22:11:25 -070047
48class CordSubscriberList(XOSListCreateAPIView):
49 queryset = CordSubscriber.get_tenant_objects().select_related().all()
50 serializer_class = CordSubscriberIdSerializer
51
52 method_kind = "list"
53 method_name = "cordsubscriber"
54
55class CordSubscriberDetail(XOSRetrieveUpdateDestroyAPIView):
56 queryset = CordSubscriber.get_tenant_objects().select_related().all()
57 serializer_class = CordSubscriberIdSerializer
58
59 method_kind = "detail"
60 method_name = "cordsubscriber"
61
62