fix: IP-Bereiche mit korrekten Adresstypen erstellen

- Start- und Endadressen als netaddr-Objekte übergeben
- Fehler einzelner IP-Adressen beim Abgleich protokollieren
- IP-Netzübersicht direkt im IPAM-Menü registrieren
- Plugin-Version auf 1.2.1 erhöhen
This commit is contained in:
2026-07-23 12:17:14 +02:00
parent 8be6978d81
commit d904d335a9
7 changed files with 47 additions and 20 deletions
@@ -11,12 +11,17 @@ class Command(BaseCommand):
parser.add_argument("--dry-run", action="store_true")
def handle(self, *args, **options):
created = skipped = 0
created = skipped = failed = 0
for address in IPAddress.objects.select_related("tenant", "assigned_object_type").iterator():
ip_range, was_created = ensure_range_for_ip(address)
if options["dry_run"] and was_created:
ip_range.delete()
created += int(was_created)
skipped += int(ip_range is None)
try:
ip_range, was_created = ensure_range_for_ip(address)
if options["dry_run"] and was_created:
ip_range.delete()
created += int(was_created)
skipped += int(ip_range is None)
except Exception as exc:
failed += 1
self.stderr.write(f"Fehler bei {address}: {exc}")
verb = "würden erstellt" if options["dry_run"] else "erstellt"
self.stdout.write(self.style.SUCCESS(f"{created} IP-Bereiche {verb}; {skipped} Hostmasken ignoriert."))
message = f"{created} IP-Bereiche {verb}; {skipped} Hostmasken ignoriert; {failed} Fehler."
self.stdout.write(self.style.SUCCESS(message) if not failed else self.style.WARNING(message))