]> git.proxmox.com Git - qemu-server.git/commitdiff
vm_destroy: delete ip from ipam
authorAlexandre Derumier <aderumier@odiso.com>
Fri, 17 Nov 2023 11:40:02 +0000 (12:40 +0100)
committerWolfgang Bumiller <w.bumiller@proxmox.com>
Tue, 21 Nov 2023 12:24:46 +0000 (13:24 +0100)
Co-Authored-By: Stefan Hanreich <s.hanreich@proxmox.com>
Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
PVE/QemuServer.pm

index e499860d6e3b897fa48c25f2004eae24701030c6..2d72513f97337f84c895df683bea277247b8323a 100644 (file)
@@ -2363,6 +2363,9 @@ sub destroy_vm {
        });
     }
 
+    eval { delete_ifaces_ipams_ips($conf, $vmid)};
+    warn $@ if $@;
+
     if (defined $replacement_conf) {
        PVE::QemuConfig->write_config($vmid, $replacement_conf);
     } else {
@@ -8673,4 +8676,18 @@ sub create_ifaces_ipams_ips {
     }
 }
 
+sub delete_ifaces_ipams_ips {
+    my ($conf, $vmid) = @_;
+
+    return if !$have_sdn;
+
+    foreach my $opt (keys %$conf) {
+       if ($opt =~ m/^net(\d+)$/) {
+           my $net = PVE::QemuServer::parse_net($conf->{$opt});
+           eval { PVE::Network::SDN::Vnets::del_ips_from_mac($net->{bridge}, $net->{macaddr}, $conf->{name}) };
+           warn $@ if $@;
+       }
+    }
+}
+
 1;