* [pve-devel] [PATCH pve-network 1/1] sdn: fix comparison of pending configuration values
@ 2025-02-07 13:40 Stefan Hanreich
2025-02-11 20:27 ` [pve-devel] applied: " Thomas Lamprecht
0 siblings, 1 reply; 2+ messages in thread
From: Stefan Hanreich @ 2025-02-07 13:40 UTC (permalink / raw)
To: pve-devel
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.hanreich@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
^ permalink raw reply [flat|nested] 2+ messages in thread
* [pve-devel] applied: [PATCH pve-network 1/1] sdn: fix comparison of pending configuration values
2025-02-07 13:40 [pve-devel] [PATCH pve-network 1/1] sdn: fix comparison of pending configuration values Stefan Hanreich
@ 2025-02-11 20:27 ` Thomas Lamprecht
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Lamprecht @ 2025-02-11 20:27 UTC (permalink / raw)
To: Proxmox VE development discussion, Stefan Hanreich
Am 07.02.25 um 14:40 schrieb Stefan Hanreich:
> 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.hanreich@proxmox.com>
> ---
> src/PVE/Network/SDN.pm | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
>
applied, thanks!
btw., doing a declaration behind post-if this is way worse, as with that
the variable will retain the value from the last time the post-if evaluated
to true, it's undef only until then.
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-02-11 20:27 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-02-07 13:40 [pve-devel] [PATCH pve-network 1/1] sdn: fix comparison of pending configuration values Stefan Hanreich
2025-02-11 20:27 ` [pve-devel] applied: " Thomas Lamprecht
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal