mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-20 12:22:23 -06:00
- Introduces a new `vpn` app with the following models:
- Tunnel
- TunnelTermination
- IKEProposal
- IKEPolicy
- IPSecProposal
- IPSecPolicy
- IPSecProfile
This commit is contained in:
0
netbox/vpn/graphql/__init__.py
Normal file
0
netbox/vpn/graphql/__init__.py
Normal file
51
netbox/vpn/graphql/schema.py
Normal file
51
netbox/vpn/graphql/schema.py
Normal file
@@ -0,0 +1,51 @@
|
||||
import graphene
|
||||
|
||||
from netbox.graphql.fields import ObjectField, ObjectListField
|
||||
from utilities.graphql_optimizer import gql_query_optimizer
|
||||
from vpn import models
|
||||
from .types import *
|
||||
|
||||
|
||||
class VPNQuery(graphene.ObjectType):
|
||||
|
||||
ike_policy = ObjectField(IKEPolicyType)
|
||||
ike_policy_list = ObjectListField(IKEPolicyType)
|
||||
|
||||
def resolve_ike_policy_list(root, info, **kwargs):
|
||||
return gql_query_optimizer(models.IKEPolicy.objects.all(), info)
|
||||
|
||||
ike_proposal = ObjectField(IKEProposalType)
|
||||
ike_proposal_list = ObjectListField(IKEProposalType)
|
||||
|
||||
def resolve_ike_proposal_list(root, info, **kwargs):
|
||||
return gql_query_optimizer(models.IKEProposal.objects.all(), info)
|
||||
|
||||
ipsec_policy = ObjectField(IPSecPolicyType)
|
||||
ipsec_policy_list = ObjectListField(IPSecPolicyType)
|
||||
|
||||
def resolve_ipsec_policy_list(root, info, **kwargs):
|
||||
return gql_query_optimizer(models.IPSecPolicy.objects.all(), info)
|
||||
|
||||
ipsec_profile = ObjectField(IPSecProfileType)
|
||||
ipsec_profile_list = ObjectListField(IPSecProfileType)
|
||||
|
||||
def resolve_ipsec_profile_list(root, info, **kwargs):
|
||||
return gql_query_optimizer(models.IPSecProfile.objects.all(), info)
|
||||
|
||||
ipsec_proposal = ObjectField(IPSecProposalType)
|
||||
ipsec_proposal_list = ObjectListField(IPSecProposalType)
|
||||
|
||||
def resolve_ipsec_proposal_list(root, info, **kwargs):
|
||||
return gql_query_optimizer(models.IPSecProposal.objects.all(), info)
|
||||
|
||||
tunnel = ObjectField(TunnelType)
|
||||
tunnel_list = ObjectListField(TunnelType)
|
||||
|
||||
def resolve_tunnel_list(root, info, **kwargs):
|
||||
return gql_query_optimizer(models.Tunnel.objects.all(), info)
|
||||
|
||||
tunnel_termination = ObjectField(TunnelTerminationType)
|
||||
tunnel_termination_list = ObjectListField(TunnelTerminationType)
|
||||
|
||||
def resolve_tunnel_termination_list(root, info, **kwargs):
|
||||
return gql_query_optimizer(models.TunnelTermination.objects.all(), info)
|
||||
69
netbox/vpn/graphql/types.py
Normal file
69
netbox/vpn/graphql/types.py
Normal file
@@ -0,0 +1,69 @@
|
||||
from extras.graphql.mixins import CustomFieldsMixin, TagsMixin
|
||||
from netbox.graphql.types import ObjectType, OrganizationalObjectType, NetBoxObjectType
|
||||
from vpn import filtersets, models
|
||||
|
||||
__all__ = (
|
||||
'IKEPolicyType',
|
||||
'IKEProposalType',
|
||||
'IPSecPolicyType',
|
||||
'IPSecProfileType',
|
||||
'IPSecProposalType',
|
||||
'TunnelTerminationType',
|
||||
'TunnelType',
|
||||
)
|
||||
|
||||
|
||||
class TunnelTerminationType(CustomFieldsMixin, TagsMixin, ObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.TunnelTermination
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.TunnelTerminationFilterSet
|
||||
|
||||
|
||||
class TunnelType(NetBoxObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.Tunnel
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.TunnelFilterSet
|
||||
|
||||
|
||||
class IKEProposalType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.IKEProposal
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.IKEProposalFilterSet
|
||||
|
||||
|
||||
class IKEPolicyType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.IKEPolicy
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.IKEPolicyFilterSet
|
||||
|
||||
|
||||
class IPSecProposalType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.IPSecProposal
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.IPSecProposalFilterSet
|
||||
|
||||
|
||||
class IPSecPolicyType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.IPSecPolicy
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.IPSecPolicyFilterSet
|
||||
|
||||
|
||||
class IPSecProfileType(OrganizationalObjectType):
|
||||
|
||||
class Meta:
|
||||
model = models.IPSecProfile
|
||||
fields = '__all__'
|
||||
filterset_class = filtersets.IPSecProfileFilterSet
|
||||
Reference in New Issue
Block a user