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 2E2731FF16B for ; Tue, 9 Sep 2025 10:36:20 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 618562743; Tue, 9 Sep 2025 10:35:50 +0200 (CEST) From: Daniel Kral To: pve-devel@lists.proxmox.com Date: Tue, 9 Sep 2025 10:33:40 +0200 Message-ID: <20250909083539.39675-4-d.kral@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20250909083539.39675-1-d.kral@proxmox.com> References: <20250909083539.39675-1-d.kral@proxmox.com> MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1757406920230 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.016 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 v2 03/18] rules: factor out disjoint rules' resource set helper 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" VGhpcyBpcyBkb25lIGluIHByZXBhcmF0aW9uIHRvIHRoZSBuZXh0IHBhdGNoZXMsIHdoZXJlIHRo ZSBoZWxwZXIgd2lsbApiZSB1c2VkIGluIGRpZmZlcmVudCBwYWNrYWdlcy4KCkFzIHRoZSBoZWxw ZXIgaXMgbm90IGRlcGVuZGVudCBvbiByZXNvdXJjZSBhZmZpbml0eSBydWxlcyBhdCBhbGwsIHJl bmFtZQppdCB0byBmaW5kX2Rpc2pvaW50X3J1bGVzX3Jlc291cmNlX3NldHMoLi4uKSBhbmQgYWRh cHQgdGhlIGRvY3VtZW50YXRpb24KYWNjb3JkaW5nbHkuCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwg S3JhbCA8ZC5rcmFsQHByb3htb3guY29tPgpSZXZpZXdlZC1ieTogTWljaGFlbCBLw7ZwcGwgPG0u a29lcHBsQHByb3htb3guY29tPgpUZXN0ZWQtYnk6IE1pY2hhZWwgS8O2cHBsIDxtLmtvZXBwbEBw cm94bW94LmNvbT4KLS0tCmNoYW5nZXMgc2luY2UgdjE6CiAgLSByZW1vdmUgc29ydF9ieV9sb3dl c3RfcmVzb3VyY2VfaWQgYW5kCiAgICBmaW5kX2Rpc2pvaW50X3J1bGVzX3Jlc291cmNlX3NldHMg aGVyZSBhbHJlYWR5IGZyb20KICAgIFBWRTo6SEE6OlJ1bGVzOjpSZXNvdXJjZUFmZmluaXR5IGlu c3RlYWQgb2YgdGhlIG5leHQgcGF0Y2ggKHdhcyBhCiAgICBzcXVhc2hpbmcgZXJyb3Igd2hpbGUg cmViYXNpbmcgdGhlIHYxKQoKIGRlYmlhbi9wdmUtaGEtbWFuYWdlci5pbnN0YWxsICAgICAgICB8 ICAxICsKIHNyYy9QVkUvSEEvUnVsZXMvSGVscGVycy5wbSAgICAgICAgICB8IDYxICsrKysrKysr KysrKysrKysrKysrKysrKysrKysKIHNyYy9QVkUvSEEvUnVsZXMvTWFrZWZpbGUgICAgICAgICAg ICB8ICAyICstCiBzcmMvUFZFL0hBL1J1bGVzL1Jlc291cmNlQWZmaW5pdHkucG0gfCA1OCArKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA2NyBpbnNlcnRpb25zKCsp LCA1NSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvUFZFL0hBL1J1bGVzL0hl bHBlcnMucG0KCmRpZmYgLS1naXQgYS9kZWJpYW4vcHZlLWhhLW1hbmFnZXIuaW5zdGFsbCBiL2Rl Ymlhbi9wdmUtaGEtbWFuYWdlci5pbnN0YWxsCmluZGV4IDJlNmI3ZDU1Li4zOGQ1ZDYwYiAxMDA2 NDQKLS0tIGEvZGViaWFuL3B2ZS1oYS1tYW5hZ2VyLmluc3RhbGwKKysrIGIvZGViaWFuL3B2ZS1o YS1tYW5hZ2VyLmluc3RhbGwKQEAgLTM1LDYgKzM1LDcgQEAKIC91c3Ivc2hhcmUvcGVybDUvUFZF L0hBL1Jlc291cmNlcy9QVkVDVC5wbQogL3Vzci9zaGFyZS9wZXJsNS9QVkUvSEEvUmVzb3VyY2Vz L1BWRVZNLnBtCiAvdXNyL3NoYXJlL3Blcmw1L1BWRS9IQS9SdWxlcy5wbQorL3Vzci9zaGFyZS9w ZXJsNS9QVkUvSEEvUnVsZXMvSGVscGVycy5wbQogL3Vzci9zaGFyZS9wZXJsNS9QVkUvSEEvUnVs ZXMvTm9kZUFmZmluaXR5LnBtCiAvdXNyL3NoYXJlL3Blcmw1L1BWRS9IQS9SdWxlcy9SZXNvdXJj ZUFmZmluaXR5LnBtCiAvdXNyL3NoYXJlL3Blcmw1L1BWRS9IQS9Ub29scy5wbQpkaWZmIC0tZ2l0 IGEvc3JjL1BWRS9IQS9SdWxlcy9IZWxwZXJzLnBtIGIvc3JjL1BWRS9IQS9SdWxlcy9IZWxwZXJz LnBtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi4yZTZlYTNmOAotLS0gL2Rl di9udWxsCisrKyBiL3NyYy9QVkUvSEEvUnVsZXMvSGVscGVycy5wbQpAQCAtMCwwICsxLDYxIEBA CitwYWNrYWdlIFBWRTo6SEE6OlJ1bGVzOjpIZWxwZXJzOworCit1c2Ugc3RyaWN0OwordXNlIHdh cm5pbmdzOworCit1c2UgUFZFOjpIQTo6SGFzaFRvb2xzIHF3KHNldHNfYXJlX2Rpc2pvaW50KTsK KworbXkgJHNvcnRfYnlfbG93ZXN0X3Jlc291cmNlX2lkID0gc3ViIHsKKyAgICBteSAoJHJ1bGVz KSA9IEBfOworCisgICAgbXkgJGxvd2VzdF9ydWxlX3Jlc291cmNlX2lkID0ge307CisgICAgZm9y IG15ICRydWxlaWQgKGtleXMgJSRydWxlcykgeworICAgICAgICBteSBAcnVsZV9yZXNvdXJjZXMg PSBzb3J0IGtleXMgJHJ1bGVzLT57JHJ1bGVpZH0tPntyZXNvdXJjZXN9LT4lKjsKKyAgICAgICAg JGxvd2VzdF9ydWxlX3Jlc291cmNlX2lkLT57JHJ1bGVpZH0gPSAkcnVsZV9yZXNvdXJjZXNbMF07 CisgICAgfQorCisgICAgIyBzb3J0IHJ1bGVzIHN1Y2ggdGhhdCBydWxlcyB3aXRoIHRoZSBsb3dl c3QgbnVtYmVyZWQgcmVzb3VyY2UgY29tZSBmaXJzdAorICAgIG15IEBzb3J0ZWRfcnVsZWlkcyA9 IHNvcnQgeworICAgICAgICAkbG93ZXN0X3J1bGVfcmVzb3VyY2VfaWQtPnskYX0gY21wICRsb3dl c3RfcnVsZV9yZXNvdXJjZV9pZC0+eyRifQorICAgIH0gc29ydCBrZXlzICUkcnVsZXM7CisKKyAg ICByZXR1cm4gQHNvcnRlZF9ydWxlaWRzOworfTsKKworIyByZXR1cm5zIGEgbGlzdCBvZiBoYXNo ZXMsIHdoZXJlIGVhY2ggaGFzaCBpdGVtIGNvbnRhaW5zIGEgcmVzb3VyY2Ugc2V0CisjIGRpc2pv aW50IGZyb20gdGhlIG90aGVyIGl0ZW1zIGFuZCB0aGUgcnVsZWlkcyB0aGF0IHdlcmUgdXNlZCB0 byBmb3JtIHRoYXQKKyMgcmVzb3VyY2Ugc2V0Lgorc3ViIGZpbmRfZGlzam9pbnRfcnVsZXNfcmVz b3VyY2Vfc2V0cyB7CisgICAgbXkgKCRydWxlcykgPSBAXzsKKworICAgIG15IEBkaXNqb2ludF9y dWxlcyA9ICgpOworCisgICAgIyBvcmRlciBuZWVkZWQgc28gdGhhdCBpdCBpcyBlYXNpZXIgdG8g Y2hlY2sgd2hldGhlciB0aGVyZSBpcyBhbiBvdmVybGFwCisgICAgbXkgQHNvcnRlZF9ydWxlaWRz ID0gJHNvcnRfYnlfbG93ZXN0X3Jlc291cmNlX2lkLT4oJHJ1bGVzKTsKKworICAgIGZvciBteSAk cnVsZWlkIChAc29ydGVkX3J1bGVpZHMpIHsKKyAgICAgICAgbXkgJHJ1bGUgPSAkcnVsZXMtPnsk cnVsZWlkfTsKKworICAgICAgICBteSAkZm91bmQgPSAwOworICAgICAgICBmb3IgbXkgJGVudHJ5 IChAZGlzam9pbnRfcnVsZXMpIHsKKyAgICAgICAgICAgIG5leHQgaWYgc2V0c19hcmVfZGlzam9p bnQoJHJ1bGUtPntyZXNvdXJjZXN9LCAkZW50cnktPntyZXNvdXJjZXN9KTsKKworICAgICAgICAg ICAgJGZvdW5kID0gMTsKKyAgICAgICAgICAgIHB1c2ggQHsgJGVudHJ5LT57cnVsZWlkc30gfSwg JHJ1bGVpZDsKKyAgICAgICAgICAgICRlbnRyeS0+e3Jlc291cmNlc30tPnskX30gPSAxIGZvciBr ZXlzICRydWxlLT57cmVzb3VyY2VzfS0+JSo7CisKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAg IH0KKyAgICAgICAgaWYgKCEkZm91bmQpIHsKKyAgICAgICAgICAgIHB1c2ggQGRpc2pvaW50X3J1 bGVzLAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcnVsZWlkcyA9PiBb JHJ1bGVpZF0sCisgICAgICAgICAgICAgICAgICAgIHJlc291cmNlcyA9PiB7ICRydWxlLT57cmVz b3VyY2VzfS0+JSogfSwKKyAgICAgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgfQorCisg ICAgcmV0dXJuIEBkaXNqb2ludF9ydWxlczsKK30KKworMTsKZGlmZiAtLWdpdCBhL3NyYy9QVkUv SEEvUnVsZXMvTWFrZWZpbGUgYi9zcmMvUFZFL0hBL1J1bGVzL01ha2VmaWxlCmluZGV4IDY0MTE5 MjU3Li5jZTAzMGQxZiAxMDA2NDQKLS0tIGEvc3JjL1BWRS9IQS9SdWxlcy9NYWtlZmlsZQorKysg Yi9zcmMvUFZFL0hBL1J1bGVzL01ha2VmaWxlCkBAIC0xLDQgKzEsNCBAQAotU09VUkNFUz1Ob2Rl QWZmaW5pdHkucG0gUmVzb3VyY2VBZmZpbml0eS5wbQorU09VUkNFUz1IZWxwZXJzLnBtIE5vZGVB ZmZpbml0eS5wbSBSZXNvdXJjZUFmZmluaXR5LnBtCiAKIC5QSE9OWTogaW5zdGFsbAogaW5zdGFs bDoKZGlmZiAtLWdpdCBhL3NyYy9QVkUvSEEvUnVsZXMvUmVzb3VyY2VBZmZpbml0eS5wbSBiL3Ny Yy9QVkUvSEEvUnVsZXMvUmVzb3VyY2VBZmZpbml0eS5wbQppbmRleCA5YmMwMzliYS4uOGEyYmVl NWQgMTAwNjQ0Ci0tLSBhL3NyYy9QVkUvSEEvUnVsZXMvUmVzb3VyY2VBZmZpbml0eS5wbQorKysg Yi9zcmMvUFZFL0hBL1J1bGVzL1Jlc291cmNlQWZmaW5pdHkucG0KQEAgLTMsOCArMyw5IEBAIHBh Y2thZ2UgUFZFOjpIQTo6UnVsZXM6OlJlc291cmNlQWZmaW5pdHk7CiB1c2Ugc3RyaWN0OwogdXNl IHdhcm5pbmdzOwogCi11c2UgUFZFOjpIQTo6SGFzaFRvb2xzIHF3KHNldF9pbnRlcnNlY3Qgc2V0 c19hcmVfZGlzam9pbnQpOwordXNlIFBWRTo6SEE6Okhhc2hUb29scyBxdyhzZXRfaW50ZXJzZWN0 KTsKIHVzZSBQVkU6OkhBOjpSdWxlczsKK3VzZSBQVkU6OkhBOjpSdWxlczo6SGVscGVyczsKIAog dXNlIGJhc2UgcXcoRXhwb3J0ZXIpOwogdXNlIGJhc2UgcXcoUFZFOjpIQTo6UnVsZXMpOwpAQCAt MjQ3LDU4ICsyNDgsNiBAQCBfX1BBQ0tBR0VfXy0+cmVnaXN0ZXJfY2hlY2soCiAKID1jdXQKIAot bXkgJHNvcnRfYnlfbG93ZXN0X3Jlc291cmNlX2lkID0gc3ViIHsKLSAgICBteSAoJHJ1bGVzKSA9 IEBfOwotCi0gICAgbXkgJGxvd2VzdF9ydWxlX3Jlc291cmNlX2lkID0ge307Ci0gICAgZm9yIG15 ICRydWxlaWQgKGtleXMgJSRydWxlcykgewotICAgICAgICBteSBAcnVsZV9yZXNvdXJjZXMgPSBz b3J0IGtleXMgJHJ1bGVzLT57JHJ1bGVpZH0tPntyZXNvdXJjZXN9LT4lKjsKLSAgICAgICAgJGxv d2VzdF9ydWxlX3Jlc291cmNlX2lkLT57JHJ1bGVpZH0gPSAkcnVsZV9yZXNvdXJjZXNbMF07Ci0g ICAgfQotCi0gICAgIyBzb3J0IHJ1bGVzIHN1Y2ggdGhhdCBydWxlcyB3aXRoIHRoZSBsb3dlc3Qg bnVtYmVyZWQgcmVzb3VyY2UgY29tZSBmaXJzdAotICAgIG15IEBzb3J0ZWRfcnVsZWlkcyA9IHNv cnQgewotICAgICAgICAkbG93ZXN0X3J1bGVfcmVzb3VyY2VfaWQtPnskYX0gY21wICRsb3dlc3Rf cnVsZV9yZXNvdXJjZV9pZC0+eyRifQotICAgIH0gc29ydCBrZXlzICUkcnVsZXM7Ci0KLSAgICBy ZXR1cm4gQHNvcnRlZF9ydWxlaWRzOwotfTsKLQotIyByZXR1cm5zIGEgbGlzdCBvZiBoYXNoZXMs IHdoaWNoIGNvbnRhaW4gZGlzam9pbnQgcmVzb3VyY2UgYWZmaW5pdHkgcnVsZXMsIGkuZS4sCi0j IHB1dCByZXNvdXJjZSBhZmZpbml0eSBjb25zdHJhaW50cyBvbiBkaXNqb2ludCBzZXRzIG9mIHJl c291cmNlcwotbXkgJGZpbmRfZGlzam9pbnRfcmVzb3VyY2VfYWZmaW5pdHlfcnVsZXMgPSBzdWIg ewotICAgIG15ICgkcnVsZXMpID0gQF87Ci0KLSAgICBteSBAZGlzam9pbnRfcnVsZXMgPSAoKTsK LQotICAgICMgb3JkZXIgbmVlZGVkIHNvIHRoYXQgaXQgaXMgZWFzaWVyIHRvIGNoZWNrIHdoZXRo ZXIgdGhlcmUgaXMgYW4gb3ZlcmxhcAotICAgIG15IEBzb3J0ZWRfcnVsZWlkcyA9ICRzb3J0X2J5 X2xvd2VzdF9yZXNvdXJjZV9pZC0+KCRydWxlcyk7Ci0KLSAgICBmb3IgbXkgJHJ1bGVpZCAoQHNv cnRlZF9ydWxlaWRzKSB7Ci0gICAgICAgIG15ICRydWxlID0gJHJ1bGVzLT57JHJ1bGVpZH07Ci0K LSAgICAgICAgbXkgJGZvdW5kID0gMDsKLSAgICAgICAgZm9yIG15ICRlbnRyeSAoQGRpc2pvaW50 X3J1bGVzKSB7Ci0gICAgICAgICAgICBuZXh0IGlmIHNldHNfYXJlX2Rpc2pvaW50KCRydWxlLT57 cmVzb3VyY2VzfSwgJGVudHJ5LT57cmVzb3VyY2VzfSk7Ci0KLSAgICAgICAgICAgICRmb3VuZCA9 IDE7Ci0gICAgICAgICAgICBwdXNoIEB7ICRlbnRyeS0+e3J1bGVpZHN9IH0sICRydWxlaWQ7Ci0g ICAgICAgICAgICAkZW50cnktPntyZXNvdXJjZXN9LT57JF99ID0gMSBmb3Iga2V5cyAkcnVsZS0+ e3Jlc291cmNlc30tPiUqOwotCi0gICAgICAgICAgICBsYXN0OwotICAgICAgICB9Ci0gICAgICAg IGlmICghJGZvdW5kKSB7Ci0gICAgICAgICAgICBwdXNoIEBkaXNqb2ludF9ydWxlcywKLSAgICAg ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHJ1bGVpZHMgPT4gWyRydWxlaWRdLAot ICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXMgPT4geyAkcnVsZS0+e3Jlc291cmNlc30tPiUq IH0sCi0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBA ZGlzam9pbnRfcnVsZXM7Ci19OwotCiA9aGVhZDMgbWVyZ2VfY29ubmVjdGVkX3Bvc2l0aXZlX3Jl c291cmNlX2FmZmluaXR5X3J1bGVzKCRydWxlcywgJHBvc2l0aXZlX3J1bGVzKQogCiBNb2RpZmll cyBDPCRydWxlcz4gdG8gY29udGFpbiBvbmx5IGRpc2pvaW50IHBvc2l0aXZlIHJlc291cmNlIGFm ZmluaXR5IHJ1bGVzCkBAIC0zMTksNyArMjY4LDggQEAgYSByZXNvdXJjZSwgaW4gQzwkcnVsZXM+ IGF0IGEgbGF0ZXIgcG9pbnQgaW4gdGltZS4KIHN1YiBtZXJnZV9jb25uZWN0ZWRfcG9zaXRpdmVf cmVzb3VyY2VfYWZmaW5pdHlfcnVsZXMgewogICAgIG15ICgkcnVsZXMsICRwb3NpdGl2ZV9ydWxl cykgPSBAXzsKIAotICAgIG15IEBkaXNqb2ludF9wb3NpdGl2ZV9ydWxlcyA9ICRmaW5kX2Rpc2pv aW50X3Jlc291cmNlX2FmZmluaXR5X3J1bGVzLT4oJHBvc2l0aXZlX3J1bGVzKTsKKyAgICBteSBA ZGlzam9pbnRfcG9zaXRpdmVfcnVsZXMgPQorICAgICAgICBQVkU6OkhBOjpSdWxlczo6SGVscGVy czo6ZmluZF9kaXNqb2ludF9ydWxlc19yZXNvdXJjZV9zZXRzKCRwb3NpdGl2ZV9ydWxlcyk7CiAK ICAgICBmb3IgbXkgJGVudHJ5IChAZGlzam9pbnRfcG9zaXRpdmVfcnVsZXMpIHsKICAgICAgICAg bmV4dCBpZiBAeyAkZW50cnktPntydWxlaWRzfSB9IDwgMjsKLS0gCjIuNDcuMwoKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwdmUtZGV2ZWwgbWFpbGlu ZyBsaXN0CnB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3gu Y29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwK