The conditional assignment caused falsy values to be converted to undef when comparing them. This led to the behavior that configuration values that are interpreted by perl as falsy would get wrongly compared and always show up as pending changes.
As an example the 'bgp-multipath-as-path-relax' or 'ebgp' keys of the bgp controller configuration are booleans and get stored as 0 in the controller configuration when they're turned off. They always showed up as a pending change, because of the behavior described above. Signed-off-by: Stefan Hanreich <s.hanre...@proxmox.com> --- src/PVE/Network/SDN.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/PVE/Network/SDN.pm b/src/PVE/Network/SDN.pm index c7dccfa..4ac9720 100644 --- a/src/PVE/Network/SDN.pm +++ b/src/PVE/Network/SDN.pm @@ -115,8 +115,8 @@ sub pending_config { my $config_object = $config_objects->{$id}; foreach my $key (sort keys %{$config_object}) { - my $config_value = PVE::Network::SDN::encode_value(undef, $key, $config_object->{$key}) if $config_object->{$key}; - my $running_value = PVE::Network::SDN::encode_value(undef, $key, $running_object->{$key}) if $running_object->{$key}; + my $config_value = PVE::Network::SDN::encode_value(undef, $key, $config_object->{$key}); + my $running_value = PVE::Network::SDN::encode_value(undef, $key, $running_object->{$key}); if($key eq 'type' || $key eq 'vnet') { $pending->{$id}->{$key} = $config_value; } else { -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel