diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index e499860d..2d72513f 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -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;