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:
@@ -1,11 +1,11 @@
|
||||
from django.core.management.base import BaseCommand
|
||||
from ipam.models import IPAddress
|
||||
|
||||
from netbox_better_ips.services import ensure_prefix_for_ip
|
||||
from netbox_better_ips.services import ensure_range_for_ip
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "Create missing exact prefixes for existing IP addresses"
|
||||
help = "Create missing usable-host IP ranges for existing IP addresses"
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument("--dry-run", action="store_true")
|
||||
@@ -13,11 +13,10 @@ class Command(BaseCommand):
|
||||
def handle(self, *args, **options):
|
||||
created = skipped = 0
|
||||
for address in IPAddress.objects.select_related("tenant", "assigned_object_type").iterator():
|
||||
prefix, was_created = ensure_prefix_for_ip(address)
|
||||
ip_range, was_created = ensure_range_for_ip(address)
|
||||
if options["dry_run"] and was_created:
|
||||
prefix.delete()
|
||||
ip_range.delete()
|
||||
created += int(was_created)
|
||||
skipped += int(prefix is None)
|
||||
skipped += int(ip_range is None)
|
||||
verb = "würden erstellt" if options["dry_run"] else "erstellt"
|
||||
self.stdout.write(self.style.SUCCESS(f"{created} Prefixe {verb}; {skipped} Host-Präfixe ignoriert."))
|
||||
|
||||
self.stdout.write(self.style.SUCCESS(f"{created} IP-Bereiche {verb}; {skipped} Hostmasken ignoriert."))
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
from .reconcile_ip_prefixes import Command
|
||||
Reference in New Issue
Block a user