|
|
@@ -607,47 +607,47 @@ class IPAddressView(ObjectView):
|
|
|
|
|
|
ipaddress = get_object_or_404(self.queryset, pk=pk)
|
|
|
|
|
|
- # # Parent prefixes table
|
|
|
- # parent_prefixes = Prefix.objects.restrict(request.user, 'view').filter(
|
|
|
- # vrf=ipaddress.vrf, prefix__net_contains=str(ipaddress.address.ip)
|
|
|
- # ).prefetch_related(
|
|
|
- # 'site', 'role'
|
|
|
- # )
|
|
|
- # parent_prefixes_table = tables.PrefixTable(list(parent_prefixes), orderable=False)
|
|
|
- # parent_prefixes_table.exclude = ('vrf',)
|
|
|
- #
|
|
|
- # # Duplicate IPs table
|
|
|
- # duplicate_ips = IPAddress.objects.restrict(request.user, 'view').filter(
|
|
|
- # vrf=ipaddress.vrf, address=str(ipaddress.address)
|
|
|
- # ).exclude(
|
|
|
- # pk=ipaddress.pk
|
|
|
- # ).prefetch_related(
|
|
|
- # 'nat_inside'
|
|
|
- # )
|
|
|
- # # Exclude anycast IPs if this IP is anycast
|
|
|
- # if ipaddress.role == IPAddressRoleChoices.ROLE_ANYCAST:
|
|
|
- # duplicate_ips = duplicate_ips.exclude(role=IPAddressRoleChoices.ROLE_ANYCAST)
|
|
|
- # duplicate_ips_table = tables.IPAddressTable(list(duplicate_ips), orderable=False)
|
|
|
- #
|
|
|
- # # Related IP table
|
|
|
- # related_ips = IPAddress.objects.restrict(request.user, 'view').exclude(
|
|
|
- # address=str(ipaddress.address)
|
|
|
- # ).filter(
|
|
|
- # vrf=ipaddress.vrf, address__net_contained_or_equal=str(ipaddress.address)
|
|
|
- # )
|
|
|
- # related_ips_table = tables.IPAddressTable(related_ips, orderable=False)
|
|
|
- #
|
|
|
- # paginate = {
|
|
|
- # 'paginator_class': EnhancedPaginator,
|
|
|
- # 'per_page': request.GET.get('per_page', settings.PAGINATE_COUNT)
|
|
|
- # }
|
|
|
- # RequestConfig(request, paginate).configure(related_ips_table)
|
|
|
+ # Parent prefixes table
|
|
|
+ parent_prefixes = Prefix.objects.restrict(request.user, 'view').filter(
|
|
|
+ vrf=ipaddress.vrf, prefix__net_contains=str(ipaddress.address.ip)
|
|
|
+ ).prefetch_related(
|
|
|
+ 'site', 'role'
|
|
|
+ )
|
|
|
+ parent_prefixes_table = tables.PrefixTable(list(parent_prefixes), orderable=False)
|
|
|
+ parent_prefixes_table.exclude = ('vrf',)
|
|
|
+
|
|
|
+ # Duplicate IPs table
|
|
|
+ duplicate_ips = IPAddress.objects.restrict(request.user, 'view').filter(
|
|
|
+ vrf=ipaddress.vrf, address=str(ipaddress.address)
|
|
|
+ ).exclude(
|
|
|
+ pk=ipaddress.pk
|
|
|
+ ).prefetch_related(
|
|
|
+ 'nat_inside'
|
|
|
+ )
|
|
|
+ # Exclude anycast IPs if this IP is anycast
|
|
|
+ if ipaddress.role == IPAddressRoleChoices.ROLE_ANYCAST:
|
|
|
+ duplicate_ips = duplicate_ips.exclude(role=IPAddressRoleChoices.ROLE_ANYCAST)
|
|
|
+ duplicate_ips_table = tables.IPAddressTable(list(duplicate_ips), orderable=False)
|
|
|
+
|
|
|
+ # Related IP table
|
|
|
+ related_ips = IPAddress.objects.restrict(request.user, 'view').exclude(
|
|
|
+ address=str(ipaddress.address)
|
|
|
+ ).filter(
|
|
|
+ vrf=ipaddress.vrf, address__net_contained_or_equal=str(ipaddress.address)
|
|
|
+ )
|
|
|
+ related_ips_table = tables.IPAddressTable(related_ips, orderable=False)
|
|
|
+
|
|
|
+ paginate = {
|
|
|
+ 'paginator_class': EnhancedPaginator,
|
|
|
+ 'per_page': request.GET.get('per_page', settings.PAGINATE_COUNT)
|
|
|
+ }
|
|
|
+ RequestConfig(request, paginate).configure(related_ips_table)
|
|
|
|
|
|
return render(request, 'ipam/ipaddress.html', {
|
|
|
'ipaddress': ipaddress,
|
|
|
- # 'parent_prefixes_table': parent_prefixes_table,
|
|
|
- # 'duplicate_ips_table': duplicate_ips_table,
|
|
|
- # 'related_ips_table': related_ips_table,
|
|
|
+ 'parent_prefixes_table': parent_prefixes_table,
|
|
|
+ 'duplicate_ips_table': duplicate_ips_table,
|
|
|
+ 'related_ips_table': related_ips_table,
|
|
|
})
|
|
|
|
|
|
|