fix: IP-Bereiche statt Prefixe automatisch verwalten

- nutzbare Hostbereiche aus der CIDR-Maske erzeugen
- Netzwerk- und Broadcastadressen bei IPv4 ausschließen
- Abgleich-Aktion in die IP-Bereichsliste verschieben
- Gerät oder VM in der IP-Adressansicht anzeigen
- Bestandsabgleich für IP-Bereiche ergänzen
- Plugin-Version auf 1.2.0 erhöhen
This commit is contained in:
2026-07-23 12:08:59 +02:00
parent acb4e449bc
commit 8be6978d81
14 changed files with 88 additions and 107 deletions
+6 -6
View File
@@ -12,7 +12,7 @@ from ipam.models import IPAddress, Prefix
import netaddr
from .forms import NetworkOverviewFilterForm
from .services import ensure_prefix_for_ip
from .services import ensure_range_for_ip
def _descendant_ids(obj):
@@ -95,17 +95,17 @@ class NetworkOverviewView(PermissionRequiredMixin, TemplateView):
@require_POST
@permission_required(("ipam.view_ipaddress", "ipam.add_prefix"), raise_exception=True)
def reconcile_missing_prefixes(request):
@permission_required(("ipam.view_ipaddress", "ipam.add_iprange"), raise_exception=True)
def reconcile_missing_ranges(request):
created = skipped = failed = 0
addresses = IPAddress.objects.restrict(request.user, "view").select_related(
"tenant", "assigned_object_type"
)
for address in addresses.iterator():
try:
prefix, was_created = ensure_prefix_for_ip(address)
ip_range, was_created = ensure_range_for_ip(address)
created += int(was_created)
skipped += int(prefix is None)
skipped += int(ip_range is None)
except Exception:
failed += 1
@@ -119,4 +119,4 @@ def reconcile_missing_prefixes(request):
request,
f"{created} fehlende Bereiche wurden angelegt. {skipped} Host-Adressen wurden ignoriert.",
)
return redirect("ipam:prefix_list")
return redirect("ipam:iprange_list")