Commit e2736e17 authored by Maël Kervella's avatar Maël Kervella

API support for app machines

parent 98dc4205
......@@ -32,6 +32,27 @@ from cotisations.models import (
Paiement,
Cotisation
)
from machines.models import (
Machine,
MachineType,
IpType,
Vlan,
Nas,
SOA,
Extension,
Mx,
Ns,
Txt,
Srv,
Interface,
Ipv6List,
Domain,
IpList,
Service,
Service_link,
OuverturePortList,
OuverturePort
)
from users.models import (
User,
Club,
......@@ -43,22 +64,9 @@ from users.models import (
Ban,
Whitelist
)
from machines.models import (
Interface,
IpType,
Extension,
IpList,
Domain,
Txt,
Mx,
Srv,
Service_link,
Ns,
OuverturePort,
Ipv6List
)
# COTISATION APP
# COTISATIONS APP
class FactureSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
......@@ -123,7 +131,228 @@ class CotisationSerializer(serializers.HyperlinkedModelSerializer):
}
# USER APP
# MACHINES APP
class MachineSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Machine
fields = ('user', 'name', 'active', 'api_url')
extra_kwargs = {
'user': {'view_name': 'api:user-detail'},
'api_url': {'view_name': 'api:machine-detail'}
}
class MachineTypeSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = MachineType
fields = ('type', 'ip_type', 'api_url')
extra_kwargs = {
'ip_type': {'view_name': 'api:iptype-detail'},
'api_url': {'view_name': 'api:machinetype-detail'}
}
class IpTypeSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = IpType
fields = ('type', 'extension', 'need_infra', 'domaine_ip_start',
'domaine_ip_stop', 'prefix_v6', 'vlan', 'ouverture_ports',
'api_url')
extra_kwargs = {
'extension': {'view_name': 'api:extension-detail'},
'vlan': {'view_name': 'api:vlan-detail'},
'ouverture_ports': {'view_name': 'api:ouvertureportlist-detail'},
'api_url': {'view_name': 'api:iptype-detail'}
}
class VlanSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Vlan
fields = ('vlan_id', 'name', 'comment', 'api_url')
extra_kwargs = {
'api_url': {'view_name': 'api:vlan-detail'}
}
class NasSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Nas
fields = ('name', 'nas_type', 'machine_type', 'port_access_mode',
'autocapture_mac', 'api_url')
extra_kwargs = {
'nas_type': {'view_name': 'api:machinetype-detail'},
'machine_type': {'view_name': 'api:machinetype-detail'},
'api_url': {'view_name': 'api:nas-detail'}
}
class SOASerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = SOA
fields = ('name', 'mail', 'refresh', 'retry', 'expire', 'ttl',
'api_url')
extra_kwargs = {
'api_url': {'view_name': 'api:soa-detail'}
}
class ExtensionSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Extension
fields = ('name', 'need_infra', 'origin', 'origin_v6', 'soa',
'api_url')
extra_kwargs = {
'origin': {'view_name': 'api:iplist-detail'},
'soa': {'view_name': 'api:soa-detail'},
'api_url': {'view_name': 'api:extension-detail'}
}
class MxSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Mx
fields = ('zone', 'priority', 'name', 'api_url')
extra_kwargs = {
'zone': {'view_name': 'api:extension-detail'},
'name': {'view_name': 'api:domain-detail'},
'api_url': {'view_name': 'api:mx-detail'}
}
class NsSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Ns
fields = ('zone', 'ns', 'api_url')
extra_kwargs = {
'zone': {'view_name': 'api:extension-detail'},
'ns': {'view_name': 'api:domain-detail'},
'api_url': {'view_name': 'api:ns-detail'}
}
class TxtSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Txt
fields = ('zone', 'field1', 'field2', 'api_url')
extra_kwargs = {
'zone': {'view_name': 'api:extension-detail'},
'api_url': {'view_name': 'api:txt-detail'}
}
class SrvSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Srv
fields = ('service', 'protocole', 'extension', 'ttl', 'priority',
'weight', 'port', 'target', 'api_url')
extra_kwargs = {
'extension': {'view_name': 'api:extension-detail'},
'target': {'view_name': 'api:domain-detail'},
'api_url': {'view_name': 'api:mx-detail'}
}
class InterfaceSerializer(serializers.HyperlinkedModelSerializer):
active = serializers.BooleanField(source='is_active')
class Meta:
model = Interface
fields = ('ipv4', 'mac_address', 'machine', 'type', 'details',
'port_lists', 'active', 'api_url')
extra_kwargs = {
'ipv4': {'view_name': 'api:iplist-detail'},
'machine': {'view_name': 'api:machine-detail'},
'type': {'view_name': 'api:machinetype-detail'},
'port_lists': {'view_name': 'api:ouvertureportlist-detail'},
'api_url': {'view_name': 'api:interface-detail'}
}
class Ipv6ListSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Ipv6List
fields = ('ipv6', 'interface', 'slaac_ip', 'date_end',
'api_url')
extra_kwargs = {
'interface': {'view_name': 'api:interface-detail'},
'api_url': {'view_name': 'api:ipv6list-detail'}
}
class DomainSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Domain
fields = ('interface_parent', 'name', 'extension', 'cname',
'api_url')
extra_kwargs = {
'interface_parent': {'view_name': 'api:interface-detail'},
'extension': {'view_name': 'api:extension-detail'},
'cname': {'view_name': 'api:domain-detail'},
'api_url': {'view_name': 'api:domain-detail'}
}
class IpListSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = IpList
fields = ('ipv4', 'ip_type', 'need_infra', 'api_url')
extra_kwargs = {
'ip_type': {'view_name': 'api:iptype-detail'},
'api_url': {'view_name': 'api:iplist-detail'}
}
class ServiceSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Service
fields = ('service_type', 'min_time_regen', 'regular_time_regen',
'servers', 'api_url')
extra_kwargs = {
'servers': {'view_name': 'api:interface-detail'},
'api_url': {'view_name': 'api:service-detail'}
}
class ServiceLinkSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Service_link
fields = ('service', 'server', 'last_regen', 'asked_regen',
'need_regen', 'api_url')
extra_kwargs = {
'service': {'view_name': 'api:service-detail'},
'server': {'view_name': 'api:interface-detail'},
'api_url': {'view_name': 'api:servicelink-detail'}
}
class OuverturePortListSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = OuverturePortList
fields = ('name', 'tcp_ports_in', 'udp_ports_in', 'tcp_ports_out',
'udp_ports_out', 'api_url')
extra_kwargs = {
'tcp_ports_in': {'view_name': 'api:ouvertureport-detail'},
'udp_ports_in': {'view_name': 'api:ouvertureport-detail'},
'tcp_ports_out': {'view_name': 'api:ouvertureport-detail'},
'udp_ports_out': {'view_name': 'api:ouvertureport-detail'},
'api_url': {'view_name': 'api:ouvertureportlist-detail'}
}
class OuverturePortSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = OuverturePort
fields = ('begin', 'end', 'port_list', 'protocole', 'io', 'api_url')
extra_kwargs = {
'port_list': {'view_name': 'api:ouvertureportlist-detail'},
'api_url': {'view_name': 'api:ouvertureport-detail'}
}
# USERS APP
class UserSerializer(serializers.HyperlinkedModelSerializer):
......
......@@ -30,14 +30,34 @@ from rest_framework.routers import DefaultRouter
from . import views
router = DefaultRouter()
# COTISATION APP
# COTISATIONS APP
router.register(r'factures', views.FactureViewSet)
router.register(r'ventes', views.VenteViewSet)
router.register(r'articles', views.ArticleViewSet)
router.register(r'banques', views.BanqueViewSet)
router.register(r'paiements', views.PaiementViewSet)
router.register(r'cotisations', views.CotisationViewSet)
# USER APP
# MACHINES APP
router.register(r'machines', views.MachineViewSet)
router.register(r'machinetypes', views.MachineTypeViewSet)
router.register(r'iptypes', views.IpTypeViewSet)
router.register(r'vlans', views.VlanViewSet)
router.register(r'nas', views.NasViewSet)
router.register(r'soa', views.SOAViewSet)
router.register(r'extensions', views.ExtensionViewSet)
router.register(r'mx', views.MxViewSet)
router.register(r'ns', views.NsViewSet)
router.register(r'txt', views.TxtViewSet)
router.register(r'srv', views.SrvViewSet)
router.register(r'interfaces', views.InterfaceViewSet)
router.register(r'ipv6lists', views.Ipv6ListViewSet)
router.register(r'domains', views.DomainViewSet)
router.register(r'iplists', views.IpListViewSet)
router.register(r'services', views.ServiceViewSet)
router.register(r'servicelinks', views.ServiceLinkViewSet, 'servicelink')
router.register(r'ouvertureportlists', views.OuverturePortListViewSet)
router.register(r'ouvertureports', views.OuverturePortViewSet)
# USERS APP
router.register(r'users', views.UserViewSet)
router.register(r'clubs', views.ClubViewSet)
router.register(r'adherents', views.AdherentViewSet)
......
......@@ -54,29 +54,56 @@ from users.models import (
Whitelist
)
from machines.models import (
Service_link,
Service,
Interface,
Domain,
Machine,
MachineType,
IpType,
Vlan,
Nas,
SOA,
Extension,
Mx,
Ns,
Txt,
Srv,
Extension,
Interface,
Ipv6List,
Domain,
IpList,
Service,
Service_link,
OuverturePortList,
OuverturePort
)
from .serializers import (
# COTISATION APP
# COTISATIONS APP
FactureSerializer,
VenteSerializer,
ArticleSerializer,
BanqueSerializer,
PaiementSerializer,
CotisationSerializer,
# USER APP
# MACHINES APP
MachineSerializer,
MachineTypeSerializer,
IpTypeSerializer,
VlanSerializer,
NasSerializer,
SOASerializer,
ExtensionSerializer,
MxSerializer,
NsSerializer,
TxtSerializer,
SrvSerializer,
InterfaceSerializer,
Ipv6ListSerializer,
DomainSerializer,
IpListSerializer,
ServiceSerializer,
ServiceLinkSerializer,
OuverturePortListSerializer,
OuverturePortSerializer,
# USERS APP
UserSerializer,
ClubSerializer,
AdherentSerializer,
......@@ -89,7 +116,7 @@ from .serializers import (
)
# COTISATION APP
# COTISATIONS APP
class FactureViewSet(viewsets.ReadOnlyModelViewSet):
......@@ -122,6 +149,104 @@ class CotisationViewSet(viewsets.ReadOnlyModelViewSet):
serializer_class = CotisationSerializer
# MACHINES APP
class MachineViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Machine.objects.all()
serializer_class = MachineSerializer
class MachineTypeViewSet(viewsets.ReadOnlyModelViewSet):
queryset = MachineType.objects.all()
serializer_class = MachineTypeSerializer
class IpTypeViewSet(viewsets.ReadOnlyModelViewSet):
queryset = IpType.objects.all()
serializer_class = IpTypeSerializer
class VlanViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Vlan.objects.all()
serializer_class = VlanSerializer
class NasViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Nas.objects.all()
serializer_class = NasSerializer
class SOAViewSet(viewsets.ReadOnlyModelViewSet):
queryset = SOA.objects.all()
serializer_class = SOASerializer
class ExtensionViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Extension.objects.all()
serializer_class = ExtensionSerializer
class MxViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Mx.objects.all()
serializer_class = MxSerializer
class NsViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Ns.objects.all()
serializer_class = NsSerializer
class TxtViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Txt.objects.all()
serializer_class = TxtSerializer
class SrvViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Srv.objects.all()
serializer_class = SrvSerializer
class InterfaceViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Interface.objects.all()
serializer_class = InterfaceSerializer
class Ipv6ListViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Ipv6List.objects.all()
serializer_class = Ipv6ListSerializer
class DomainViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Domain.objects.all()
serializer_class = DomainSerializer
class IpListViewSet(viewsets.ReadOnlyModelViewSet):
queryset = IpList.objects.all()
serializer_class = IpListSerializer
class ServiceViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Service.objects.all()
serializer_class = ServiceSerializer
class ServiceLinkViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Service_link.objects.all()
serializer_class = ServiceLinkSerializer
class OuverturePortListViewSet(viewsets.ReadOnlyModelViewSet):
queryset = OuverturePortList.objects.all()
serializer_class = OuverturePortListSerializer
class OuverturePortViewSet(viewsets.ReadOnlyModelViewSet):
queryset = OuverturePort.objects.all()
serializer_class = OuverturePortSerializer
# USER APP
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment