blob: 1470323497ff98ba8200361191f62ed9cab77129 [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()
22 vcpe_id = ReadOnlyField()
23 sliver = ReadOnlyField()
24 image = ReadOnlyField()
Scott Bakerb0cfe522015-04-15 22:11:25 -070025 firewall_enable = serializers.BooleanField()
Scott Baker808a15f2015-04-16 21:56:03 -070026 firewall_rules = serializers.CharField()
27 url_filter_enable = serializers.BooleanField()
28 url_filter_rules = serializers.CharField()
29 cdn_enable = serializers.BooleanField()
30 sliver_name = ReadOnlyField()
31 image_name = ReadOnlyField()
Scott Bakerb0cfe522015-04-15 22:11:25 -070032
33 humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
34
35 class Meta:
36 model = CordSubscriber
37 fields = ('humanReadableName', 'id',
38 'service_specific_id',
Scott Baker808a15f2015-04-16 21:56:03 -070039 'vcpe_id', 'sliver', 'sliver_name', 'image', 'image_name', 'firewall_enable', 'firewall_rules', 'url_filter_enable', 'url_filter_rules', 'cdn_enable')
Scott Bakerb0cfe522015-04-15 22:11:25 -070040
41
42 def getHumanReadableName(self, obj):
Scott Baker808a15f2015-04-16 21:56:03 -070043 return obj.__unicode__()
Scott Bakerb0cfe522015-04-15 22:11:25 -070044
45class CordSubscriberList(XOSListCreateAPIView):
46 queryset = CordSubscriber.get_tenant_objects().select_related().all()
47 serializer_class = CordSubscriberIdSerializer
48
49 method_kind = "list"
50 method_name = "cordsubscriber"
51
52class CordSubscriberDetail(XOSRetrieveUpdateDestroyAPIView):
53 queryset = CordSubscriber.get_tenant_objects().select_related().all()
54 serializer_class = CordSubscriberIdSerializer
55
56 method_kind = "detail"
57 method_name = "cordsubscriber"
58
59