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:
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user