Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
re2o
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nounous
re2o
Commits
e2736e17
Commit
e2736e17
authored
Apr 22, 2018
by
Maël Kervella
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
API support for app machines
parent
98dc4205
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
400 additions
and
26 deletions
+400
-26
api/serializers.py
api/serializers.py
+245
-16
api/urls.py
api/urls.py
+22
-2
api/views.py
api/views.py
+133
-8
No files found.
api/serializers.py
View file @
e2736e17
...
...
@@ -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
):
...
...
api/urls.py
View file @
e2736e17
...
...
@@ -30,14 +30,34 @@ from rest_framework.routers import DefaultRouter
from
.
import
views
router
=
DefaultRouter
()
# COTISATION APP
# COTISATION
S
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
)
...
...
api/views.py
View file @
e2736e17
...
...
@@ -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
# COTISATION
S
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
# COTISATION
S
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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment