From a70330d4c318a4f2d12e3b6814c7f46ee0669ea7 Mon Sep 17 00:00:00 2001 From: James Riley Date: Wed, 26 Nov 2025 06:40:56 -0700 Subject: [PATCH] Fix enforce_affinity boolean inversion During runs in which affinity checks determine balancing actions, there was a small error in a boolean calculation that caused ProxLB to always rebalance, as it exited the verification loop with a failure the first time it saw a VM that actually passed affinity checks. --- .changelogs/1.1.11/335_fix_affinity_matrix_prevalidation.yml | 2 ++ proxlb/models/calculations.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 .changelogs/1.1.11/335_fix_affinity_matrix_prevalidation.yml diff --git a/.changelogs/1.1.11/335_fix_affinity_matrix_prevalidation.yml b/.changelogs/1.1.11/335_fix_affinity_matrix_prevalidation.yml new file mode 100644 index 0000000..4bb618e --- /dev/null +++ b/.changelogs/1.1.11/335_fix_affinity_matrix_prevalidation.yml @@ -0,0 +1,2 @@ +fixed: + - Fixed affinity matrix pre-validation by inverting validations (@Thalagyrt). [#335] diff --git a/proxlb/models/calculations.py b/proxlb/models/calculations.py index 8e6e73f..3165e71 100644 --- a/proxlb/models/calculations.py +++ b/proxlb/models/calculations.py @@ -605,7 +605,7 @@ class Calculations: logger.debug(f"Affinity for guest {guest} is {'valid' if balancing_state_affinity else 'NOT valid'}") logger.debug(f"Anti-affinity for guest {guest} is {'valid' if balancing_state_anti_affinity else 'NOT valid'}") - balancing_ok = not balancing_state_affinity or not balancing_state_anti_affinity + balancing_ok = balancing_state_affinity and balancing_state_anti_affinity if balancing_ok: logger.debug(f"Rebalancing based on affinity/anti-affinity map is not required.")