urls.py 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. from django.urls import path
  2. from netbox.views.generic import ObjectChangeLogView, ObjectJournalView
  3. from . import views
  4. from .models import *
  5. app_name = 'ipam'
  6. urlpatterns = [
  7. # ASNs
  8. path('asns/', views.ASNListView.as_view(), name='asn_list'),
  9. path('asns/add/', views.ASNEditView.as_view(), name='asn_add'),
  10. path('asns/import/', views.ASNBulkImportView.as_view(), name='asn_import'),
  11. path('asns/edit/', views.ASNBulkEditView.as_view(), name='asn_bulk_edit'),
  12. path('asns/delete/', views.ASNBulkDeleteView.as_view(), name='asn_bulk_delete'),
  13. path('asns/<int:pk>/', views.ASNView.as_view(), name='asn'),
  14. path('asns/<int:pk>/edit/', views.ASNEditView.as_view(), name='asn_edit'),
  15. path('asns/<int:pk>/delete/', views.ASNDeleteView.as_view(), name='asn_delete'),
  16. path('asns/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='asn_changelog', kwargs={'model': ASN}),
  17. path('asns/<int:pk>/journal/', ObjectJournalView.as_view(), name='asn_journal', kwargs={'model': ASN}),
  18. # VRFs
  19. path('vrfs/', views.VRFListView.as_view(), name='vrf_list'),
  20. path('vrfs/add/', views.VRFEditView.as_view(), name='vrf_add'),
  21. path('vrfs/import/', views.VRFBulkImportView.as_view(), name='vrf_import'),
  22. path('vrfs/edit/', views.VRFBulkEditView.as_view(), name='vrf_bulk_edit'),
  23. path('vrfs/delete/', views.VRFBulkDeleteView.as_view(), name='vrf_bulk_delete'),
  24. path('vrfs/<int:pk>/', views.VRFView.as_view(), name='vrf'),
  25. path('vrfs/<int:pk>/edit/', views.VRFEditView.as_view(), name='vrf_edit'),
  26. path('vrfs/<int:pk>/delete/', views.VRFDeleteView.as_view(), name='vrf_delete'),
  27. path('vrfs/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='vrf_changelog', kwargs={'model': VRF}),
  28. path('vrfs/<int:pk>/journal/', ObjectJournalView.as_view(), name='vrf_journal', kwargs={'model': VRF}),
  29. # Route targets
  30. path('route-targets/', views.RouteTargetListView.as_view(), name='routetarget_list'),
  31. path('route-targets/add/', views.RouteTargetEditView.as_view(), name='routetarget_add'),
  32. path('route-targets/import/', views.RouteTargetBulkImportView.as_view(), name='routetarget_import'),
  33. path('route-targets/edit/', views.RouteTargetBulkEditView.as_view(), name='routetarget_bulk_edit'),
  34. path('route-targets/delete/', views.RouteTargetBulkDeleteView.as_view(), name='routetarget_bulk_delete'),
  35. path('route-targets/<int:pk>/', views.RouteTargetView.as_view(), name='routetarget'),
  36. path('route-targets/<int:pk>/edit/', views.RouteTargetEditView.as_view(), name='routetarget_edit'),
  37. path('route-targets/<int:pk>/delete/', views.RouteTargetDeleteView.as_view(), name='routetarget_delete'),
  38. path('route-targets/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='routetarget_changelog', kwargs={'model': RouteTarget}),
  39. path('route-targets/<int:pk>/journal/', ObjectJournalView.as_view(), name='routetarget_journal', kwargs={'model': RouteTarget}),
  40. # RIRs
  41. path('rirs/', views.RIRListView.as_view(), name='rir_list'),
  42. path('rirs/add/', views.RIREditView.as_view(), name='rir_add'),
  43. path('rirs/import/', views.RIRBulkImportView.as_view(), name='rir_import'),
  44. path('rirs/edit/', views.RIRBulkEditView.as_view(), name='rir_bulk_edit'),
  45. path('rirs/delete/', views.RIRBulkDeleteView.as_view(), name='rir_bulk_delete'),
  46. path('rirs/<int:pk>/', views.RIRView.as_view(), name='rir'),
  47. path('rirs/<int:pk>/edit/', views.RIREditView.as_view(), name='rir_edit'),
  48. path('rirs/<int:pk>/delete/', views.RIRDeleteView.as_view(), name='rir_delete'),
  49. path('rirs/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='rir_changelog', kwargs={'model': RIR}),
  50. # Aggregates
  51. path('aggregates/', views.AggregateListView.as_view(), name='aggregate_list'),
  52. path('aggregates/add/', views.AggregateEditView.as_view(), name='aggregate_add'),
  53. path('aggregates/import/', views.AggregateBulkImportView.as_view(), name='aggregate_import'),
  54. path('aggregates/edit/', views.AggregateBulkEditView.as_view(), name='aggregate_bulk_edit'),
  55. path('aggregates/delete/', views.AggregateBulkDeleteView.as_view(), name='aggregate_bulk_delete'),
  56. path('aggregates/<int:pk>/', views.AggregateView.as_view(), name='aggregate'),
  57. path('aggregates/<int:pk>/prefixes/', views.AggregatePrefixesView.as_view(), name='aggregate_prefixes'),
  58. path('aggregates/<int:pk>/edit/', views.AggregateEditView.as_view(), name='aggregate_edit'),
  59. path('aggregates/<int:pk>/delete/', views.AggregateDeleteView.as_view(), name='aggregate_delete'),
  60. path('aggregates/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='aggregate_changelog', kwargs={'model': Aggregate}),
  61. path('aggregates/<int:pk>/journal/', ObjectJournalView.as_view(), name='aggregate_journal', kwargs={'model': Aggregate}),
  62. # Roles
  63. path('roles/', views.RoleListView.as_view(), name='role_list'),
  64. path('roles/add/', views.RoleEditView.as_view(), name='role_add'),
  65. path('roles/import/', views.RoleBulkImportView.as_view(), name='role_import'),
  66. path('roles/edit/', views.RoleBulkEditView.as_view(), name='role_bulk_edit'),
  67. path('roles/delete/', views.RoleBulkDeleteView.as_view(), name='role_bulk_delete'),
  68. path('roles/<int:pk>/', views.RoleView.as_view(), name='role'),
  69. path('roles/<int:pk>/edit/', views.RoleEditView.as_view(), name='role_edit'),
  70. path('roles/<int:pk>/delete/', views.RoleDeleteView.as_view(), name='role_delete'),
  71. path('roles/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='role_changelog', kwargs={'model': Role}),
  72. # Prefixes
  73. path('prefixes/', views.PrefixListView.as_view(), name='prefix_list'),
  74. path('prefixes/add/', views.PrefixEditView.as_view(), name='prefix_add'),
  75. path('prefixes/import/', views.PrefixBulkImportView.as_view(), name='prefix_import'),
  76. path('prefixes/edit/', views.PrefixBulkEditView.as_view(), name='prefix_bulk_edit'),
  77. path('prefixes/delete/', views.PrefixBulkDeleteView.as_view(), name='prefix_bulk_delete'),
  78. path('prefixes/<int:pk>/', views.PrefixView.as_view(), name='prefix'),
  79. path('prefixes/<int:pk>/edit/', views.PrefixEditView.as_view(), name='prefix_edit'),
  80. path('prefixes/<int:pk>/delete/', views.PrefixDeleteView.as_view(), name='prefix_delete'),
  81. path('prefixes/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='prefix_changelog', kwargs={'model': Prefix}),
  82. path('prefixes/<int:pk>/journal/', ObjectJournalView.as_view(), name='prefix_journal', kwargs={'model': Prefix}),
  83. path('prefixes/<int:pk>/prefixes/', views.PrefixPrefixesView.as_view(), name='prefix_prefixes'),
  84. path('prefixes/<int:pk>/ip-ranges/', views.PrefixIPRangesView.as_view(), name='prefix_ipranges'),
  85. path('prefixes/<int:pk>/ip-addresses/', views.PrefixIPAddressesView.as_view(), name='prefix_ipaddresses'),
  86. # IP ranges
  87. path('ip-ranges/', views.IPRangeListView.as_view(), name='iprange_list'),
  88. path('ip-ranges/add/', views.IPRangeEditView.as_view(), name='iprange_add'),
  89. path('ip-ranges/import/', views.IPRangeBulkImportView.as_view(), name='iprange_import'),
  90. path('ip-ranges/edit/', views.IPRangeBulkEditView.as_view(), name='iprange_bulk_edit'),
  91. path('ip-ranges/delete/', views.IPRangeBulkDeleteView.as_view(), name='iprange_bulk_delete'),
  92. path('ip-ranges/<int:pk>/', views.IPRangeView.as_view(), name='iprange'),
  93. path('ip-ranges/<int:pk>/edit/', views.IPRangeEditView.as_view(), name='iprange_edit'),
  94. path('ip-ranges/<int:pk>/delete/', views.IPRangeDeleteView.as_view(), name='iprange_delete'),
  95. path('ip-ranges/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='iprange_changelog', kwargs={'model': IPRange}),
  96. path('ip-ranges/<int:pk>/journal/', ObjectJournalView.as_view(), name='iprange_journal', kwargs={'model': IPRange}),
  97. path('ip-ranges/<int:pk>/ip-addresses/', views.IPRangeIPAddressesView.as_view(), name='iprange_ipaddresses'),
  98. # IP addresses
  99. path('ip-addresses/', views.IPAddressListView.as_view(), name='ipaddress_list'),
  100. path('ip-addresses/add/', views.IPAddressEditView.as_view(), name='ipaddress_add'),
  101. path('ip-addresses/bulk-add/', views.IPAddressBulkCreateView.as_view(), name='ipaddress_bulk_add'),
  102. path('ip-addresses/import/', views.IPAddressBulkImportView.as_view(), name='ipaddress_import'),
  103. path('ip-addresses/edit/', views.IPAddressBulkEditView.as_view(), name='ipaddress_bulk_edit'),
  104. path('ip-addresses/delete/', views.IPAddressBulkDeleteView.as_view(), name='ipaddress_bulk_delete'),
  105. path('ip-addresses/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='ipaddress_changelog', kwargs={'model': IPAddress}),
  106. path('ip-addresses/<int:pk>/journal/', ObjectJournalView.as_view(), name='ipaddress_journal', kwargs={'model': IPAddress}),
  107. path('ip-addresses/assign/', views.IPAddressAssignView.as_view(), name='ipaddress_assign'),
  108. path('ip-addresses/<int:pk>/', views.IPAddressView.as_view(), name='ipaddress'),
  109. path('ip-addresses/<int:pk>/edit/', views.IPAddressEditView.as_view(), name='ipaddress_edit'),
  110. path('ip-addresses/<int:pk>/delete/', views.IPAddressDeleteView.as_view(), name='ipaddress_delete'),
  111. # FHRP groups
  112. path('fhrp-groups/', views.FHRPGroupListView.as_view(), name='fhrpgroup_list'),
  113. path('fhrp-groups/add/', views.FHRPGroupEditView.as_view(), name='fhrpgroup_add'),
  114. path('fhrp-groups/import/', views.FHRPGroupBulkImportView.as_view(), name='fhrpgroup_import'),
  115. path('fhrp-groups/edit/', views.FHRPGroupBulkEditView.as_view(), name='fhrpgroup_bulk_edit'),
  116. path('fhrp-groups/delete/', views.FHRPGroupBulkDeleteView.as_view(), name='fhrpgroup_bulk_delete'),
  117. path('fhrp-groups/<int:pk>/', views.FHRPGroupView.as_view(), name='fhrpgroup'),
  118. path('fhrp-groups/<int:pk>/edit/', views.FHRPGroupEditView.as_view(), name='fhrpgroup_edit'),
  119. path('fhrp-groups/<int:pk>/delete/', views.FHRPGroupDeleteView.as_view(), name='fhrpgroup_delete'),
  120. path('fhrp-groups/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='fhrpgroup_changelog', kwargs={'model': FHRPGroup}),
  121. path('fhrp-groups/<int:pk>/journal/', ObjectJournalView.as_view(), name='fhrpgroup_journal', kwargs={'model': FHRPGroup}),
  122. # FHRP group assignments
  123. path('fhrp-group-assignments/add/', views.FHRPGroupAssignmentEditView.as_view(), name='fhrpgroupassignment_add'),
  124. path('fhrp-group-assignments/<int:pk>/edit/', views.FHRPGroupAssignmentEditView.as_view(), name='fhrpgroupassignment_edit'),
  125. path('fhrp-group-assignments/<int:pk>/delete/', views.FHRPGroupAssignmentDeleteView.as_view(), name='fhrpgroupassignment_delete'),
  126. # VLAN groups
  127. path('vlan-groups/', views.VLANGroupListView.as_view(), name='vlangroup_list'),
  128. path('vlan-groups/add/', views.VLANGroupEditView.as_view(), name='vlangroup_add'),
  129. path('vlan-groups/import/', views.VLANGroupBulkImportView.as_view(), name='vlangroup_import'),
  130. path('vlan-groups/edit/', views.VLANGroupBulkEditView.as_view(), name='vlangroup_bulk_edit'),
  131. path('vlan-groups/delete/', views.VLANGroupBulkDeleteView.as_view(), name='vlangroup_bulk_delete'),
  132. path('vlan-groups/<int:pk>/', views.VLANGroupView.as_view(), name='vlangroup'),
  133. path('vlan-groups/<int:pk>/edit/', views.VLANGroupEditView.as_view(), name='vlangroup_edit'),
  134. path('vlan-groups/<int:pk>/delete/', views.VLANGroupDeleteView.as_view(), name='vlangroup_delete'),
  135. path('vlan-groups/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='vlangroup_changelog', kwargs={'model': VLANGroup}),
  136. # VLANs
  137. path('vlans/', views.VLANListView.as_view(), name='vlan_list'),
  138. path('vlans/add/', views.VLANEditView.as_view(), name='vlan_add'),
  139. path('vlans/import/', views.VLANBulkImportView.as_view(), name='vlan_import'),
  140. path('vlans/edit/', views.VLANBulkEditView.as_view(), name='vlan_bulk_edit'),
  141. path('vlans/delete/', views.VLANBulkDeleteView.as_view(), name='vlan_bulk_delete'),
  142. path('vlans/<int:pk>/', views.VLANView.as_view(), name='vlan'),
  143. path('vlans/<int:pk>/interfaces/', views.VLANInterfacesView.as_view(), name='vlan_interfaces'),
  144. path('vlans/<int:pk>/vm-interfaces/', views.VLANVMInterfacesView.as_view(), name='vlan_vminterfaces'),
  145. path('vlans/<int:pk>/edit/', views.VLANEditView.as_view(), name='vlan_edit'),
  146. path('vlans/<int:pk>/delete/', views.VLANDeleteView.as_view(), name='vlan_delete'),
  147. path('vlans/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='vlan_changelog', kwargs={'model': VLAN}),
  148. path('vlans/<int:pk>/journal/', ObjectJournalView.as_view(), name='vlan_journal', kwargs={'model': VLAN}),
  149. # Service templates
  150. path('service-templates/', views.ServiceTemplateListView.as_view(), name='servicetemplate_list'),
  151. path('service-templates/add/', views.ServiceTemplateEditView.as_view(), name='servicetemplate_add'),
  152. path('service-templates/import/', views.ServiceTemplateBulkImportView.as_view(), name='servicetemplate_import'),
  153. path('service-templates/edit/', views.ServiceTemplateBulkEditView.as_view(), name='servicetemplate_bulk_edit'),
  154. path('service-templates/delete/', views.ServiceTemplateBulkDeleteView.as_view(), name='servicetemplate_bulk_delete'),
  155. path('service-templates/<int:pk>/', views.ServiceTemplateView.as_view(), name='servicetemplate'),
  156. path('service-templates/<int:pk>/edit/', views.ServiceTemplateEditView.as_view(), name='servicetemplate_edit'),
  157. path('service-templates/<int:pk>/delete/', views.ServiceTemplateDeleteView.as_view(), name='servicetemplate_delete'),
  158. path('service-templates/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='servicetemplate_changelog', kwargs={'model': ServiceTemplate}),
  159. path('service-templates/<int:pk>/journal/', ObjectJournalView.as_view(), name='servicetemplate_journal', kwargs={'model': ServiceTemplate}),
  160. # Services
  161. path('services/', views.ServiceListView.as_view(), name='service_list'),
  162. path('services/add/', views.ServiceCreateView.as_view(), name='service_add'),
  163. path('services/import/', views.ServiceBulkImportView.as_view(), name='service_import'),
  164. path('services/edit/', views.ServiceBulkEditView.as_view(), name='service_bulk_edit'),
  165. path('services/delete/', views.ServiceBulkDeleteView.as_view(), name='service_bulk_delete'),
  166. path('services/<int:pk>/', views.ServiceView.as_view(), name='service'),
  167. path('services/<int:pk>/edit/', views.ServiceEditView.as_view(), name='service_edit'),
  168. path('services/<int:pk>/delete/', views.ServiceDeleteView.as_view(), name='service_delete'),
  169. path('services/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='service_changelog', kwargs={'model': Service}),
  170. path('services/<int:pk>/journal/', ObjectJournalView.as_view(), name='service_journal', kwargs={'model': Service}),
  171. # L2VPN
  172. path('l2vpns/', views.L2VPNListView.as_view(), name='l2vpn_list'),
  173. path('l2vpns/add/', views.L2VPNEditView.as_view(), name='l2vpn_add'),
  174. path('l2vpns/import/', views.L2VPNBulkImportView.as_view(), name='l2vpn_import'),
  175. path('l2vpns/edit/', views.L2VPNBulkEditView.as_view(), name='l2vpn_bulk_edit'),
  176. path('l2vpns/delete/', views.L2VPNBulkDeleteView.as_view(), name='l2vpn_bulk_delete'),
  177. path('l2vpns/<int:pk>/', views.L2VPNView.as_view(), name='l2vpn'),
  178. path('l2vpns/<int:pk>/edit/', views.L2VPNEditView.as_view(), name='l2vpn_edit'),
  179. path('l2vpns/<int:pk>/delete/', views.L2VPNDeleteView.as_view(), name='l2vpn_delete'),
  180. path('l2vpns/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='l2vpn_changelog', kwargs={'model': L2VPN}),
  181. path('l2vpns/<int:pk>/journal/', ObjectJournalView.as_view(), name='l2vpn_journal', kwargs={'model': L2VPN}),
  182. path('l2vpn-terminations/', views.L2VPNTerminationListView.as_view(), name='l2vpntermination_list'),
  183. path('l2vpn-terminations/add/', views.L2VPNTerminationEditView.as_view(), name='l2vpntermination_add'),
  184. path('l2vpn-terminations/import/', views.L2VPNTerminationBulkImportView.as_view(), name='l2vpntermination_import'),
  185. path('l2vpn-terminations/edit/', views.L2VPNTerminationBulkEditView.as_view(), name='l2vpntermination_bulk_edit'),
  186. path('l2vpn-terminations/delete/', views.L2VPNTerminationBulkDeleteView.as_view(), name='l2vpntermination_bulk_delete'),
  187. path('l2vpn-terminations/<int:pk>/', views.L2VPNTerminationView.as_view(), name='l2vpntermination'),
  188. path('l2vpn-terminations/<int:pk>/edit/', views.L2VPNTerminationEditView.as_view(), name='l2vpntermination_edit'),
  189. path('l2vpn-terminations/<int:pk>/delete/', views.L2VPNTerminationDeleteView.as_view(), name='l2vpntermination_delete'),
  190. path('l2vpn-terminations/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='l2vpntermination_changelog', kwargs={'model': L2VPNTermination}),
  191. path('l2vpn-terminations/<int:pk>/journal/', ObjectJournalView.as_view(), name='l2vpntermination_journal', kwargs={'model': L2VPNTermination}),
  192. ]