From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 7303F1FF15C for ; Fri, 14 Nov 2025 12:18:04 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 64756F481; Fri, 14 Nov 2025 12:18:41 +0100 (CET) From: Daniel Kral To: pve-devel@lists.proxmox.com Date: Fri, 14 Nov 2025 12:17:07 +0100 Message-ID: <20251114111828.160294-10-d.kral@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251114111828.160294-1-d.kral@proxmox.com> References: <20251114111828.160294-1-d.kral@proxmox.com> MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1763119087126 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.017 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH ha-manager v4 09/21] rules: node affinity: decouple get_node_affinity helper from Usage class X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" VGhpcyBpcyBkb25lIGluIHByZXBhcmF0aW9uIG9mIHRoZSBuZXh0IHBhdGNoLCB3aGljaCBtb3Zl cyBzb21lIG9mIHRoZQpsb2dpYyBvZiBnZXRfbm9kZV9hZmZpbml0eSguLi4pIGluIHRoZSBIQSBy dWxlIHRyYW5zbGF0b24gc3RhZ2UuCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgS3JhbCA8ZC5rcmFs QHByb3htb3guY29tPgpSZXZpZXdlZC1ieTogTWljaGFlbCBLw7ZwcGwgPG0ua29lcHBsQHByb3ht b3guY29tPgpUZXN0ZWQtYnk6IE1pY2hhZWwgS8O2cHBsIDxtLmtvZXBwbEBwcm94bW94LmNvbT4K LS0tCiBzcmMvUFZFL0hBL01hbmFnZXIucG0gICAgICAgICAgICB8ICA0ICsrLS0KIHNyYy9QVkUv SEEvUnVsZXMvTm9kZUFmZmluaXR5LnBtIHwgMTIgKysrKysrLS0tLS0tCiAyIGZpbGVzIGNoYW5n ZWQsIDggaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvUFZF L0hBL01hbmFnZXIucG0gYi9zcmMvUFZFL0hBL01hbmFnZXIucG0KaW5kZXggZjQyMzczZGQuLmEy NmJkZTc2IDEwMDY0NAotLS0gYS9zcmMvUFZFL0hBL01hbmFnZXIucG0KKysrIGIvc3JjL1BWRS9I QS9NYW5hZ2VyLnBtCkBAIC0xNTcsMTEgKzE1NywxMSBAQCBzdWIgc2VsZWN0X3NlcnZpY2Vfbm9k ZSB7CiAgICAgbXkgKCRjdXJyZW50X25vZGUsICR0cmllZF9ub2RlcywgJG1haW50ZW5hbmNlX2Zh bGxiYWNrKSA9CiAgICAgICAgICRzZC0+QHtxdyhub2RlIGZhaWxlZF9ub2RlcyBtYWludGVuYW5j ZV9ub2RlKX07CiAKLSAgICBteSAoJGFsbG93ZWRfbm9kZXMsICRwcmlfbm9kZXMpID0gZ2V0X25v ZGVfYWZmaW5pdHkoJHJ1bGVzLCAkc2lkLCAkb25saW5lX25vZGVfdXNhZ2UpOworICAgIG15ICRv bmxpbmVfbm9kZXMgPSB7IG1hcCB7ICRfID0+IDEgfSAkb25saW5lX25vZGVfdXNhZ2UtPmxpc3Rf bm9kZXMoKSB9OworICAgIG15ICgkYWxsb3dlZF9ub2RlcywgJHByaV9ub2RlcykgPSBnZXRfbm9k ZV9hZmZpbml0eSgkcnVsZXMsICRzaWQsICRvbmxpbmVfbm9kZXMpOwogCiAgICAgcmV0dXJuIHVu ZGVmIGlmICElJHByaV9ub2RlczsKIAotICAgIG15ICRvbmxpbmVfbm9kZXMgPSB7IG1hcCB7ICRf ID0+IDEgfSAkb25saW5lX25vZGVfdXNhZ2UtPmxpc3Rfbm9kZXMoKSB9OwogICAgIG15ICgkdG9n ZXRoZXIsICRzZXBhcmF0ZSkgPSBnZXRfcmVzb3VyY2VfYWZmaW5pdHkoJHJ1bGVzLCAkc2lkLCAk c3MsICRvbmxpbmVfbm9kZXMpOwogCiAgICAgIyBzdGF5IG9uIGN1cnJlbnQgbm9kZSBpZiBwb3Nz aWJsZSAoYXZvaWRzIHJhbmRvbSBtaWdyYXRpb25zKQpkaWZmIC0tZ2l0IGEvc3JjL1BWRS9IQS9S dWxlcy9Ob2RlQWZmaW5pdHkucG0gYi9zcmMvUFZFL0hBL1J1bGVzL05vZGVBZmZpbml0eS5wbQpp bmRleCA1Mzk0ODMyZS4uMTExZmY2ZmUgMTAwNjQ0Ci0tLSBhL3NyYy9QVkUvSEEvUnVsZXMvTm9k ZUFmZmluaXR5LnBtCisrKyBiL3NyYy9QVkUvSEEvUnVsZXMvTm9kZUFmZmluaXR5LnBtCkBAIC0y MzcsMTEgKzIzNywxMSBAQCBteSAkZ2V0X3Jlc291cmNlX25vZGVfYWZmaW5pdHlfcnVsZSA9IHN1 YiB7CiAgICAgcmV0dXJuICRub2RlX2FmZmluaXR5X3J1bGU7CiB9OwogCi09aGVhZDMgZ2V0X25v ZGVfYWZmaW5pdHkoJHJ1bGVzLCAkc2lkLCAkb25saW5lX25vZGVfdXNhZ2UpCis9aGVhZDMgZ2V0 X25vZGVfYWZmaW5pdHkoJHJ1bGVzLCAkc2lkLCAkb25saW5lX25vZGVzKQogCiBSZXR1cm5zIGEg bGlzdCBvZiB0d28gaGFzaGVzIHJlcHJlc2VudGluZyB0aGUgbm9kZSBhZmZpbml0eSBvZiBDPCRz aWQ+CiBhY2NvcmRpbmcgdG8gdGhlIG5vZGUgYWZmaW5pdHkgcnVsZXMgaW4gQzwkcnVsZXM+IGFu ZCB0aGUgYXZhaWxhYmxlIG5vZGVzIGluCi1DPCRvbmxpbmVfbm9kZV91c2FnZT4uCit0aGUgQzwk b25saW5lX25vZGVzPiBoYXNoLgogCiBUaGUgZmlyc3QgaGFzaCBpcyBhIGhhc2ggc2V0IG9mIGF2 YWlsYWJsZSBub2RlcywgaS5lLiBub2RlcyB3aGVyZSB0aGUKIHJlc291cmNlIEM8JHNpZD4gaXMg YWxsb3dlZCB0byBiZSBhc3NpZ25lZCB0bywgYW5kIHRoZSBzZWNvbmQgaGFzaCBpcyBhIGhhc2gg c2V0CkBAIC0yNTIsMjAgKzI1MiwyMCBAQCBJZiB0aGVyZSBhcmUgbm8gYXZhaWxhYmxlIG5vZGVz IGF0IGFsbCwgcmV0dXJucyBDPHVuZGVmPi4KID1jdXQKIAogc3ViIGdldF9ub2RlX2FmZmluaXR5 IDogcHJvdG90eXBlKCQkJCkgewotICAgIG15ICgkcnVsZXMsICRzaWQsICRvbmxpbmVfbm9kZV91 c2FnZSkgPSBAXzsKKyAgICBteSAoJHJ1bGVzLCAkc2lkLCAkb25saW5lX25vZGVzKSA9IEBfOwog CiAgICAgbXkgJG5vZGVfYWZmaW5pdHlfcnVsZSA9ICRnZXRfcmVzb3VyY2Vfbm9kZV9hZmZpbml0 eV9ydWxlLT4oJHJ1bGVzLCAkc2lkKTsKIAogICAgICMgZGVmYXVsdCB0byBhIG5vZGUgYWZmaW5p dHkgcnVsZSB3aXRoIGFsbCBhdmFpbGFibGUgbm9kZXMKICAgICBpZiAoISRub2RlX2FmZmluaXR5 X3J1bGUpIHsKLSAgICAgICAgZm9yIG15ICRub2RlICgkb25saW5lX25vZGVfdXNhZ2UtPmxpc3Rf bm9kZXMoKSkgeworICAgICAgICBmb3IgbXkgJG5vZGUgKGtleXMgJSRvbmxpbmVfbm9kZXMpIHsK ICAgICAgICAgICAgICRub2RlX2FmZmluaXR5X3J1bGUtPntub2Rlc30tPnskbm9kZX0gPSB7IHBy aW9yaXR5ID0+IDAgfTsKICAgICAgICAgfQogICAgIH0KIAogICAgICMgYWRkIHJlbWFpbmluZyBu b2RlcyB3aXRoIGxvdyBwcmlvcml0eSBmb3Igbm9uLXN0cmljdCBub2RlIGFmZmluaXR5IHJ1bGVz CiAgICAgaWYgKCEkbm9kZV9hZmZpbml0eV9ydWxlLT57c3RyaWN0fSkgewotICAgICAgICBmb3Ig bXkgJG5vZGUgKCRvbmxpbmVfbm9kZV91c2FnZS0+bGlzdF9ub2RlcygpKSB7CisgICAgICAgIGZv ciBteSAkbm9kZSAoa2V5cyAlJG9ubGluZV9ub2RlcykgewogICAgICAgICAgICAgbmV4dCBpZiBk ZWZpbmVkKCRub2RlX2FmZmluaXR5X3J1bGUtPntub2Rlc30tPnskbm9kZX0pOwogCiAgICAgICAg ICAgICAkbm9kZV9hZmZpbml0eV9ydWxlLT57bm9kZXN9LT57JG5vZGV9ID0geyBwcmlvcml0eSA9 PiAtMSB9OwpAQCAtMjc2LDcgKzI3Niw3IEBAIHN1YiBnZXRfbm9kZV9hZmZpbml0eSA6IHByb3Rv dHlwZSgkJCQpIHsKICAgICBteSAkcHJpb3JpdGl6ZWRfbm9kZXMgPSB7fTsKIAogICAgIHdoaWxl IChteSAoJG5vZGUsICRwcm9wcykgPSBlYWNoICV7ICRub2RlX2FmZmluaXR5X3J1bGUtPntub2Rl c30gfSkgewotICAgICAgICBuZXh0IGlmICEkb25saW5lX25vZGVfdXNhZ2UtPmNvbnRhaW5zX25v ZGUoJG5vZGUpOyAjIG5vZGUgaXMgb2ZmbGluZQorICAgICAgICBuZXh0IGlmICFkZWZpbmVkKCRv bmxpbmVfbm9kZXMtPnskbm9kZX0pOyAjIG5vZGUgaXMgb2ZmbGluZQogCiAgICAgICAgICRhbGxv d2VkX25vZGVzLT57JG5vZGV9ID0gMTsKICAgICAgICAgJHByaW9yaXRpemVkX25vZGVzLT57ICRw cm9wcy0+e3ByaW9yaXR5fSB9LT57JG5vZGV9ID0gMTsKLS0gCjIuNDcuMwoKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwdmUtZGV2ZWwgbWFpbGluZyBs aXN0CnB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29t L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwK