| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504 |
- from ipam.tables import RouteTargetTable
- from netbox.views import generic
- from tenancy.views import ObjectContactsView
- from utilities.query import count_related
- from utilities.views import register_model_view
- from . import filtersets, forms, tables
- from .models import *
- #
- # Tunnel groups
- #
- class TunnelGroupListView(generic.ObjectListView):
- queryset = TunnelGroup.objects.annotate(
- tunnel_count=count_related(Tunnel, 'group')
- )
- filterset = filtersets.TunnelGroupFilterSet
- filterset_form = forms.TunnelGroupFilterForm
- table = tables.TunnelGroupTable
- @register_model_view(TunnelGroup)
- class TunnelGroupView(generic.ObjectView):
- queryset = TunnelGroup.objects.all()
- def get_extra_context(self, request, instance):
- related_models = (
- (Tunnel.objects.restrict(request.user, 'view').filter(group=instance), 'group_id'),
- )
- return {
- 'related_models': related_models,
- }
- @register_model_view(TunnelGroup, 'edit')
- class TunnelGroupEditView(generic.ObjectEditView):
- queryset = TunnelGroup.objects.all()
- form = forms.TunnelGroupForm
- @register_model_view(TunnelGroup, 'delete')
- class TunnelGroupDeleteView(generic.ObjectDeleteView):
- queryset = TunnelGroup.objects.all()
- class TunnelGroupBulkImportView(generic.BulkImportView):
- queryset = TunnelGroup.objects.all()
- model_form = forms.TunnelGroupImportForm
- class TunnelGroupBulkEditView(generic.BulkEditView):
- queryset = TunnelGroup.objects.annotate(
- tunnel_count=count_related(Tunnel, 'group')
- )
- filterset = filtersets.TunnelGroupFilterSet
- table = tables.TunnelGroupTable
- form = forms.TunnelGroupBulkEditForm
- class TunnelGroupBulkDeleteView(generic.BulkDeleteView):
- queryset = TunnelGroup.objects.annotate(
- tunnel_count=count_related(Tunnel, 'group')
- )
- filterset = filtersets.TunnelGroupFilterSet
- table = tables.TunnelGroupTable
- #
- # Tunnels
- #
- class TunnelListView(generic.ObjectListView):
- queryset = Tunnel.objects.annotate(
- count_terminations=count_related(TunnelTermination, 'tunnel')
- )
- filterset = filtersets.TunnelFilterSet
- filterset_form = forms.TunnelFilterForm
- table = tables.TunnelTable
- @register_model_view(Tunnel)
- class TunnelView(generic.ObjectView):
- queryset = Tunnel.objects.all()
- @register_model_view(Tunnel, 'edit')
- class TunnelEditView(generic.ObjectEditView):
- queryset = Tunnel.objects.all()
- form = forms.TunnelForm
- def dispatch(self, request, *args, **kwargs):
- # If creating a new Tunnel, use the creation form
- if 'pk' not in kwargs:
- self.form = forms.TunnelCreateForm
- return super().dispatch(request, *args, **kwargs)
- @register_model_view(Tunnel, 'delete')
- class TunnelDeleteView(generic.ObjectDeleteView):
- queryset = Tunnel.objects.all()
- class TunnelBulkImportView(generic.BulkImportView):
- queryset = Tunnel.objects.all()
- model_form = forms.TunnelImportForm
- class TunnelBulkEditView(generic.BulkEditView):
- queryset = Tunnel.objects.annotate(
- count_terminations=count_related(TunnelTermination, 'tunnel')
- )
- filterset = filtersets.TunnelFilterSet
- table = tables.TunnelTable
- form = forms.TunnelBulkEditForm
- class TunnelBulkDeleteView(generic.BulkDeleteView):
- queryset = Tunnel.objects.annotate(
- count_terminations=count_related(TunnelTermination, 'tunnel')
- )
- filterset = filtersets.TunnelFilterSet
- table = tables.TunnelTable
- #
- # Tunnel terminations
- #
- class TunnelTerminationListView(generic.ObjectListView):
- queryset = TunnelTermination.objects.all()
- filterset = filtersets.TunnelTerminationFilterSet
- filterset_form = forms.TunnelTerminationFilterForm
- table = tables.TunnelTerminationTable
- @register_model_view(TunnelTermination)
- class TunnelTerminationView(generic.ObjectView):
- queryset = TunnelTermination.objects.all()
- @register_model_view(TunnelTermination, 'edit')
- class TunnelTerminationEditView(generic.ObjectEditView):
- queryset = TunnelTermination.objects.all()
- form = forms.TunnelTerminationForm
- @register_model_view(TunnelTermination, 'delete')
- class TunnelTerminationDeleteView(generic.ObjectDeleteView):
- queryset = TunnelTermination.objects.all()
- class TunnelTerminationBulkImportView(generic.BulkImportView):
- queryset = TunnelTermination.objects.all()
- model_form = forms.TunnelTerminationImportForm
- class TunnelTerminationBulkEditView(generic.BulkEditView):
- queryset = TunnelTermination.objects.all()
- filterset = filtersets.TunnelTerminationFilterSet
- table = tables.TunnelTerminationTable
- form = forms.TunnelTerminationBulkEditForm
- class TunnelTerminationBulkDeleteView(generic.BulkDeleteView):
- queryset = TunnelTermination.objects.all()
- filterset = filtersets.TunnelTerminationFilterSet
- table = tables.TunnelTerminationTable
- #
- # IKE proposals
- #
- class IKEProposalListView(generic.ObjectListView):
- queryset = IKEProposal.objects.all()
- filterset = filtersets.IKEProposalFilterSet
- filterset_form = forms.IKEProposalFilterForm
- table = tables.IKEProposalTable
- @register_model_view(IKEProposal)
- class IKEProposalView(generic.ObjectView):
- queryset = IKEProposal.objects.all()
- @register_model_view(IKEProposal, 'edit')
- class IKEProposalEditView(generic.ObjectEditView):
- queryset = IKEProposal.objects.all()
- form = forms.IKEProposalForm
- @register_model_view(IKEProposal, 'delete')
- class IKEProposalDeleteView(generic.ObjectDeleteView):
- queryset = IKEProposal.objects.all()
- class IKEProposalBulkImportView(generic.BulkImportView):
- queryset = IKEProposal.objects.all()
- model_form = forms.IKEProposalImportForm
- class IKEProposalBulkEditView(generic.BulkEditView):
- queryset = IKEProposal.objects.all()
- filterset = filtersets.IKEProposalFilterSet
- table = tables.IKEProposalTable
- form = forms.IKEProposalBulkEditForm
- class IKEProposalBulkDeleteView(generic.BulkDeleteView):
- queryset = IKEProposal.objects.all()
- filterset = filtersets.IKEProposalFilterSet
- table = tables.IKEProposalTable
- #
- # IKE policies
- #
- class IKEPolicyListView(generic.ObjectListView):
- queryset = IKEPolicy.objects.all()
- filterset = filtersets.IKEPolicyFilterSet
- filterset_form = forms.IKEPolicyFilterForm
- table = tables.IKEPolicyTable
- @register_model_view(IKEPolicy)
- class IKEPolicyView(generic.ObjectView):
- queryset = IKEPolicy.objects.all()
- @register_model_view(IKEPolicy, 'edit')
- class IKEPolicyEditView(generic.ObjectEditView):
- queryset = IKEPolicy.objects.all()
- form = forms.IKEPolicyForm
- @register_model_view(IKEPolicy, 'delete')
- class IKEPolicyDeleteView(generic.ObjectDeleteView):
- queryset = IKEPolicy.objects.all()
- class IKEPolicyBulkImportView(generic.BulkImportView):
- queryset = IKEPolicy.objects.all()
- model_form = forms.IKEPolicyImportForm
- class IKEPolicyBulkEditView(generic.BulkEditView):
- queryset = IKEPolicy.objects.all()
- filterset = filtersets.IKEPolicyFilterSet
- table = tables.IKEPolicyTable
- form = forms.IKEPolicyBulkEditForm
- class IKEPolicyBulkDeleteView(generic.BulkDeleteView):
- queryset = IKEPolicy.objects.all()
- filterset = filtersets.IKEPolicyFilterSet
- table = tables.IKEPolicyTable
- #
- # IPSec proposals
- #
- class IPSecProposalListView(generic.ObjectListView):
- queryset = IPSecProposal.objects.all()
- filterset = filtersets.IPSecProposalFilterSet
- filterset_form = forms.IPSecProposalFilterForm
- table = tables.IPSecProposalTable
- @register_model_view(IPSecProposal)
- class IPSecProposalView(generic.ObjectView):
- queryset = IPSecProposal.objects.all()
- @register_model_view(IPSecProposal, 'edit')
- class IPSecProposalEditView(generic.ObjectEditView):
- queryset = IPSecProposal.objects.all()
- form = forms.IPSecProposalForm
- @register_model_view(IPSecProposal, 'delete')
- class IPSecProposalDeleteView(generic.ObjectDeleteView):
- queryset = IPSecProposal.objects.all()
- class IPSecProposalBulkImportView(generic.BulkImportView):
- queryset = IPSecProposal.objects.all()
- model_form = forms.IPSecProposalImportForm
- class IPSecProposalBulkEditView(generic.BulkEditView):
- queryset = IPSecProposal.objects.all()
- filterset = filtersets.IPSecProposalFilterSet
- table = tables.IPSecProposalTable
- form = forms.IPSecProposalBulkEditForm
- class IPSecProposalBulkDeleteView(generic.BulkDeleteView):
- queryset = IPSecProposal.objects.all()
- filterset = filtersets.IPSecProposalFilterSet
- table = tables.IPSecProposalTable
- #
- # IPSec policies
- #
- class IPSecPolicyListView(generic.ObjectListView):
- queryset = IPSecPolicy.objects.all()
- filterset = filtersets.IPSecPolicyFilterSet
- filterset_form = forms.IPSecPolicyFilterForm
- table = tables.IPSecPolicyTable
- @register_model_view(IPSecPolicy)
- class IPSecPolicyView(generic.ObjectView):
- queryset = IPSecPolicy.objects.all()
- @register_model_view(IPSecPolicy, 'edit')
- class IPSecPolicyEditView(generic.ObjectEditView):
- queryset = IPSecPolicy.objects.all()
- form = forms.IPSecPolicyForm
- @register_model_view(IPSecPolicy, 'delete')
- class IPSecPolicyDeleteView(generic.ObjectDeleteView):
- queryset = IPSecPolicy.objects.all()
- class IPSecPolicyBulkImportView(generic.BulkImportView):
- queryset = IPSecPolicy.objects.all()
- model_form = forms.IPSecPolicyImportForm
- class IPSecPolicyBulkEditView(generic.BulkEditView):
- queryset = IPSecPolicy.objects.all()
- filterset = filtersets.IPSecPolicyFilterSet
- table = tables.IPSecPolicyTable
- form = forms.IPSecPolicyBulkEditForm
- class IPSecPolicyBulkDeleteView(generic.BulkDeleteView):
- queryset = IPSecPolicy.objects.all()
- filterset = filtersets.IPSecPolicyFilterSet
- table = tables.IPSecPolicyTable
- #
- # IPSec profiles
- #
- class IPSecProfileListView(generic.ObjectListView):
- queryset = IPSecProfile.objects.all()
- filterset = filtersets.IPSecProfileFilterSet
- filterset_form = forms.IPSecProfileFilterForm
- table = tables.IPSecProfileTable
- @register_model_view(IPSecProfile)
- class IPSecProfileView(generic.ObjectView):
- queryset = IPSecProfile.objects.all()
- @register_model_view(IPSecProfile, 'edit')
- class IPSecProfileEditView(generic.ObjectEditView):
- queryset = IPSecProfile.objects.all()
- form = forms.IPSecProfileForm
- @register_model_view(IPSecProfile, 'delete')
- class IPSecProfileDeleteView(generic.ObjectDeleteView):
- queryset = IPSecProfile.objects.all()
- class IPSecProfileBulkImportView(generic.BulkImportView):
- queryset = IPSecProfile.objects.all()
- model_form = forms.IPSecProfileImportForm
- class IPSecProfileBulkEditView(generic.BulkEditView):
- queryset = IPSecProfile.objects.all()
- filterset = filtersets.IPSecProfileFilterSet
- table = tables.IPSecProfileTable
- form = forms.IPSecProfileBulkEditForm
- class IPSecProfileBulkDeleteView(generic.BulkDeleteView):
- queryset = IPSecProfile.objects.all()
- filterset = filtersets.IPSecProfileFilterSet
- table = tables.IPSecProfileTable
- # L2VPN
- class L2VPNListView(generic.ObjectListView):
- queryset = L2VPN.objects.all()
- table = tables.L2VPNTable
- filterset = filtersets.L2VPNFilterSet
- filterset_form = forms.L2VPNFilterForm
- @register_model_view(L2VPN)
- class L2VPNView(generic.ObjectView):
- queryset = L2VPN.objects.all()
- def get_extra_context(self, request, instance):
- import_targets_table = RouteTargetTable(
- instance.import_targets.prefetch_related('tenant'),
- orderable=False
- )
- export_targets_table = RouteTargetTable(
- instance.export_targets.prefetch_related('tenant'),
- orderable=False
- )
- return {
- 'import_targets_table': import_targets_table,
- 'export_targets_table': export_targets_table,
- }
- @register_model_view(L2VPN, 'edit')
- class L2VPNEditView(generic.ObjectEditView):
- queryset = L2VPN.objects.all()
- form = forms.L2VPNForm
- @register_model_view(L2VPN, 'delete')
- class L2VPNDeleteView(generic.ObjectDeleteView):
- queryset = L2VPN.objects.all()
- class L2VPNBulkImportView(generic.BulkImportView):
- queryset = L2VPN.objects.all()
- model_form = forms.L2VPNImportForm
- class L2VPNBulkEditView(generic.BulkEditView):
- queryset = L2VPN.objects.all()
- filterset = filtersets.L2VPNFilterSet
- table = tables.L2VPNTable
- form = forms.L2VPNBulkEditForm
- class L2VPNBulkDeleteView(generic.BulkDeleteView):
- queryset = L2VPN.objects.all()
- filterset = filtersets.L2VPNFilterSet
- table = tables.L2VPNTable
- @register_model_view(L2VPN, 'contacts')
- class L2VPNContactsView(ObjectContactsView):
- queryset = L2VPN.objects.all()
- #
- # L2VPN terminations
- #
- class L2VPNTerminationListView(generic.ObjectListView):
- queryset = L2VPNTermination.objects.all()
- table = tables.L2VPNTerminationTable
- filterset = filtersets.L2VPNTerminationFilterSet
- filterset_form = forms.L2VPNTerminationFilterForm
- @register_model_view(L2VPNTermination)
- class L2VPNTerminationView(generic.ObjectView):
- queryset = L2VPNTermination.objects.all()
- @register_model_view(L2VPNTermination, 'edit')
- class L2VPNTerminationEditView(generic.ObjectEditView):
- queryset = L2VPNTermination.objects.all()
- form = forms.L2VPNTerminationForm
- @register_model_view(L2VPNTermination, 'delete')
- class L2VPNTerminationDeleteView(generic.ObjectDeleteView):
- queryset = L2VPNTermination.objects.all()
- class L2VPNTerminationBulkImportView(generic.BulkImportView):
- queryset = L2VPNTermination.objects.all()
- model_form = forms.L2VPNTerminationImportForm
- class L2VPNTerminationBulkEditView(generic.BulkEditView):
- queryset = L2VPNTermination.objects.all()
- filterset = filtersets.L2VPNTerminationFilterSet
- table = tables.L2VPNTerminationTable
- form = forms.L2VPNTerminationBulkEditForm
- class L2VPNTerminationBulkDeleteView(generic.BulkDeleteView):
- queryset = L2VPNTermination.objects.all()
- filterset = filtersets.L2VPNTerminationFilterSet
- table = tables.L2VPNTerminationTable
|