From 988efcf3a7b89a599bd59fdbd2409ffa1418b215 Mon Sep 17 00:00:00 2001 From: Louis Date: Wed, 29 Jul 2026 14:02:00 +0200 Subject: [PATCH] feat: confirm tenant-aware prefix creation Propagate tenants to IPv4 and IPv6 prefixes, detect VMware prefix lengths, require confirmation before creating missing subnets, and provide canonical subnet-size selection for new prefixes. --- README.md | 2 + app.py | 190 +++++++++++++++++++++++++++++++++++++- dist/NetBox VM Import.exe | Bin 16062912 -> 16065820 bytes 3 files changed, 191 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5bab27f..b8ea7e6 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ Windows-Desktopanwendung zum Importieren und Synchronisieren virtueller Maschine - QEMU/KVM-VMs und optional LXC-Container aus Proxmox VE - Mit Windows DPAPI verschlüsselte Passwörter, API-Token und Token-Secrets - Automatische Übernahme des Cluster-Mandanten mit verbindlicher Bestätigung vor dem Sync +- Mandantenzuweisung für IPv4-/IPv6-Adressen und erkannte NetBox-Präfixe +- Bestätigungsdialog mit Subnetzgrößen-Auswahl vor jeder Präfix-Erstellung - Optionale Unterstützung selbstsignierter TLS-Zertifikate - Synchronisierung von VMs, Hardwaredaten, Interfaces und IP-Adressen - Übernahme primärer IPv4- und IPv6-Adressen diff --git a/app.py b/app.py index 0db2f46..f48d585 100644 --- a/app.py +++ b/app.py @@ -175,6 +175,91 @@ class TenantConfirmationDialog(tk.Toplevel): self.destroy() +class PrefixCreationDialog(tk.Toplevel): + """Ask explicitly before creating a missing IPv4 or IPv6 prefix.""" + + def __init__(self, parent, address, detected_prefix=True): + super().__init__(parent) + self.title("Subnetz anlegen?") + self.geometry("520x320") + self.resizable(False, False) + self.transient(parent) + self.grab_set() + self.result = None + + interface = ipaddress.ip_interface(address) + self.host_address = interface.ip + if interface.version == 4: + self.choices = [f"/{length}" for length in range(8, 25)] + default_length = max(8, min(interface.network.prefixlen, 24)) + else: + common = [32, 40, 48, 52, 56, 60, 64, 80, 96, 112, 120, 124, 126, 127, 128] + if interface.network.prefixlen not in common: + common.append(interface.network.prefixlen) + self.choices = [f"/{length}" for length in sorted(set(common))] + default_length = interface.network.prefixlen + self.prefix_length = tk.StringVar(value=f"/{default_length}") + self.preview_text = tk.StringVar() + + body = ttk.Frame(self, padding=22) + body.pack(fill="both", expand=True) + ttk.Label(body, text="Fehlendes Präfix", font=("Segoe UI Semibold", 14)).pack(anchor="w") + source_text = "vom Hypervisor erkannt" if detected_prefix else "aus der IP-Adresse geschätzt" + ttk.Label( + body, + text=( + f"IP-Adresse: {self.host_address}\n" + f"Präfixlänge: {source_text}\n\n" + "NetBox enthält noch kein exakt passendes Präfix. Bitte die gewünschte Subnetzgröße auswählen." + ), + wraplength=470, + justify="left", + ).pack(anchor="w", pady=(8, 14)) + + row = ttk.Frame(body) + row.pack(fill="x") + ttk.Label(row, text="Subnetzgröße").pack(side="left") + combo = ttk.Combobox(row, textvariable=self.prefix_length, values=self.choices, state="readonly", width=10) + combo.pack(side="left", padx=(12, 0)) + combo.bind("<>", self.update_preview) + ttk.Label(body, textvariable=self.preview_text, foreground="#334e68", font=("Segoe UI Semibold", 10)).pack( + anchor="w", pady=(14, 0) + ) + if interface.version == 4: + ttk.Label( + body, + text="IPv4-Präfixe werden als kanonische Netzadresse mit .0 am Ende angelegt.", + foreground="#52606d", + ).pack(anchor="w", pady=(6, 0)) + + buttons = ttk.Frame(body) + buttons.pack(anchor="e", pady=(22, 0)) + ttk.Button(buttons, text="Nicht anlegen", command=self.destroy).pack(side="left", padx=4) + ttk.Button(buttons, text="Präfix anlegen", command=self.accept, style="Primary.TButton").pack(side="left", padx=4) + self.update_preview() + self.protocol("WM_DELETE_WINDOW", self.destroy) + self.wait_window(self) + + def selected_network(self): + length = int(self.prefix_length.get().lstrip("/")) + return ipaddress.ip_network(f"{self.host_address}/{length}", strict=False) + + def update_preview(self, _event=None): + self.preview_text.set(f"Wird angelegt: {self.selected_network()}") + + def accept(self): + network = self.selected_network() + if network.version == 4 and str(network.network_address).split(".")[-1] != "0": + messagebox.showerror( + "Ungültige Netzadresse", + "Das IPv4-Präfix muss mit einer .0-Netzadresse beginnen.", + parent=self, + ) + return + self.result = str(network) + self.destroy() + + class NetBoxVMImporter: def __init__(self, root): self.root = root @@ -621,7 +706,7 @@ class NetBoxVMImporter: mac = getattr(net, "macAddress", None) if not mac: continue - ips = [ip for ip in (getattr(net, "ipAddress", None) or []) if self.valid_guest_ip(ip)] + ips = self.vmware_guest_ips(net) interfaces.append({"name": getattr(net, "device", None) or f"NIC-{index}", "mac": mac, "ips": ips}) return { "name": properties["name"], @@ -636,6 +721,29 @@ class NetBoxVMImporter: "interfaces": interfaces, } + def vmware_guest_ips(self, net): + """Prefer VMware-reported prefix lengths and retain legacy IP fallback.""" + ips = [] + ip_config = getattr(net, "ipConfig", None) + for entry in (getattr(ip_config, "ipAddress", None) or []): + value = getattr(entry, "ipAddress", None) + prefix = getattr(entry, "prefixLength", None) + if value and self.valid_guest_ip(value): + ips.append(f"{value}/{prefix}" if prefix is not None else value) + + known_addresses = { + str(ipaddress.ip_interface(value).ip if "/" in value else ipaddress.ip_address(value)) + for value in ips + } + for value in (getattr(net, "ipAddress", None) or []): + if not self.valid_guest_ip(value): + continue + normalized = str(ipaddress.ip_address(value)) + if normalized not in known_addresses: + ips.append(value) + known_addresses.add(normalized) + return ips + def proxmox_session(self, source): session = requests.Session() session.verify = not source.get("ignore_ssl") @@ -845,6 +953,8 @@ class NetBoxVMImporter: tenant_id = self.tenant_map[tenant_name] self.tenant_combo.set(tenant_name) self.log(f"Mandant bestätigt: {tenant_name}") + self.synced_prefixes = set() + self.prefix_decisions = {} failures = [] for item_id in selected: vm_data = self.vms[int(item_id)] @@ -911,6 +1021,12 @@ class NetBoxVMImporter: ip_object = self.nb.ipam.ip_addresses.create(ip_payload) except Exception as error: raise RuntimeError(f"IP-Adresse {address}: {error}") from error + self.sync_prefix_tenant( + address, + tenant_id, + prefix_is_detected="/" in ip_value, + ip_object=ip_object, + ) version = ipaddress.ip_interface(address).version if version == 4 and not primary_ipv4: primary_ipv4 = ip_object.id @@ -925,6 +1041,78 @@ class NetBoxVMImporter: if primary: netbox_vm.update(primary) + def sync_prefix_tenant(self, address, tenant_id, prefix_is_detected, ip_object=None): + """Assign a tenant and ask explicitly before creating a missing prefix.""" + if not hasattr(self, "synced_prefixes"): + self.synced_prefixes = set() + if not hasattr(self, "prefix_decisions"): + self.prefix_decisions = {} + parsed_interface = ipaddress.ip_interface(address) + host_address = parsed_interface.ip + network = str(parsed_interface.network) + ip_vrf = getattr(ip_object, "vrf", None) if ip_object else None + vrf_id = getattr(ip_vrf, "id", None) if ip_vrf else None + + for cached_network, cached_vrf in self.synced_prefixes: + if cached_vrf == vrf_id and host_address in ipaddress.ip_network(cached_network): + return + + cache_key = (network, vrf_id) + candidates = list(self.nb.ipam.prefixes.filter(prefix=network)) + if vrf_id is not None: + candidates = [ + prefix for prefix in candidates + if getattr(getattr(prefix, "vrf", None), "id", None) == vrf_id + ] + + if len(candidates) > 1: + self.log( + f"Präfix {network} nicht geändert: mehrere passende VRFs gefunden" + ) + return + + try: + if candidates: + candidates[0].update({"tenant": tenant_id}) + self.log(f"Mandant am Präfix aktualisiert: {network}") + else: + if cache_key not in self.prefix_decisions: + dialog = PrefixCreationDialog( + self.root, + address, + detected_prefix=prefix_is_detected, + ) + self.prefix_decisions[cache_key] = dialog.result + selected_network = self.prefix_decisions[cache_key] + if selected_network is None: + self.log(f"Präfix für {host_address} nicht angelegt (Benutzerauswahl)") + return + + network = selected_network + cache_key = (network, vrf_id) + selected_candidates = list(self.nb.ipam.prefixes.filter(prefix=network)) + if vrf_id is not None: + selected_candidates = [ + prefix for prefix in selected_candidates + if getattr(getattr(prefix, "vrf", None), "id", None) == vrf_id + ] + if len(selected_candidates) > 1: + self.log(f"Präfix {network} nicht geändert: mehrere passende VRFs gefunden") + return + if selected_candidates: + selected_candidates[0].update({"tenant": tenant_id}) + self.log(f"Mandant am Präfix aktualisiert: {network}") + else: + prefix_payload = {"prefix": network, "status": "active", "tenant": tenant_id} + if vrf_id is not None: + prefix_payload["vrf"] = vrf_id + self.nb.ipam.prefixes.create(prefix_payload) + self.log(f"Präfix nach Bestätigung erstellt: {network}") + except Exception as error: + raise RuntimeError(f"Präfix {network}: {error}") from error + + self.synced_prefixes.add(cache_key) + if __name__ == "__main__": root = tk.Tk() diff --git a/dist/NetBox VM Import.exe b/dist/NetBox VM Import.exe index c7e6c29a935867e157dda602d447ff88c81487bf..4b45201d3e4bf8485429ed9b1b40f1b4fed6701b 100644 GIT binary patch delta 455808 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