From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 9C3E91FF15C for ; Fri, 14 Nov 2025 12:18:35 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 0C447F63D; Fri, 14 Nov 2025 12:18:46 +0100 (CET) From: Daniel Kral To: pve-devel@lists.proxmox.com Date: Fri, 14 Nov 2025 12:17:16 +0100 Message-ID: <20251114111828.160294-19-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: 1763119088005 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 v4 18/21] factor out counting of active services into 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" TWFrZSB0aGUgY291bnRpbmcgaXRzIG93biBoZWxwZXIgdG8gYmUgdXNlZCB0aHJvdWdob3V0IHRo ZSBjb2RlIGJhc2UgdG8KaGF2ZSBhIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggb2Ygd2hhdCBjb25z dGl0dXRlcyBhIGFjdGl2ZSBzZXJ2aWNlcy4KClNpZ25lZC1vZmYtYnk6IERhbmllbCBLcmFsIDxk LmtyYWxAcHJveG1veC5jb20+ClJldmlld2VkLWJ5OiBNaWNoYWVsIEvDtnBwbCA8bS5rb2VwcGxA cHJveG1veC5jb20+ClRlc3RlZC1ieTogTWljaGFlbCBLw7ZwcGwgPG0ua29lcHBsQHByb3htb3gu Y29tPgotLS0KIHNyYy9QVkUvQVBJMi9IQS9TdGF0dXMucG0gfCAxNyArKy0tLS0tLS0tLS0tLS0t LQogc3JjL1BWRS9IQS9MUk0ucG0gICAgICAgICB8IDIwICstLS0tLS0tLS0tLS0tLS0tLS0tCiBz cmMvUFZFL0hBL01hbmFnZXIucG0gICAgIHwgMTQgKy0tLS0tLS0tLS0tLS0KIHNyYy9QVkUvSEEv VG9vbHMucG0gICAgICAgfCAyNSArKysrKysrKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNo YW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9QVkUvQVBJMi9IQS9TdGF0dXMucG0gYi9zcmMvUFZFL0FQSTIvSEEvU3RhdHVzLnBtCmluZGV4 IDM5NjZhNGIzLi4yODI1NzdjYyAxMDA2NDQKLS0tIGEvc3JjL1BWRS9BUEkyL0hBL1N0YXR1cy5w bQorKysgYi9zcmMvUFZFL0FQSTIvSEEvU3RhdHVzLnBtCkBAIC0xOTQsMjEgKzE5NCw4IEBAIF9f UEFDS0FHRV9fLT5yZWdpc3Rlcl9tZXRob2QoewogICAgICAgICB9CiAKICAgICAgICAgZm9yZWFj aCBteSAkbm9kZSAoc29ydCBrZXlzICV7ICRzdGF0dXMtPntub2RlX3N0YXR1c30gfSkgewotICAg ICAgICAgICAgbXkgJGFjdGl2ZV9jb3VudCA9IDA7Ci0gICAgICAgICAgICBmb3IgbXkgJHNpZCAo a2V5cyAkc3RhdHVzLT57c2VydmljZV9zdGF0dXN9LT4lKikgewotICAgICAgICAgICAgICAgIG15 ICRzZCA9ICRzdGF0dXMtPntzZXJ2aWNlX3N0YXR1c30tPnskc2lkfTsKLSAgICAgICAgICAgICAg ICBteSAkdGFyZ2V0ID0gJHNkLT57dGFyZ2V0fTsKLSAgICAgICAgICAgICAgICBuZXh0Ci0gICAg ICAgICAgICAgICAgICAgIGlmICghJHNkLT57bm9kZX0gfHwgJHNkLT57bm9kZX0gbmUgJG5vZGVu YW1lKQotICAgICAgICAgICAgICAgICAgICAmJiAoISR0YXJnZXQgfHwgJHRhcmdldCBuZSAkbm9k ZW5hbWUpOwotICAgICAgICAgICAgICAgIG15ICRyZXFfc3RhdGUgPSAkc2QtPntzdGF0ZX07Ci0g ICAgICAgICAgICAgICAgbmV4dCBpZiAhZGVmaW5lZCgkcmVxX3N0YXRlKTsKLSAgICAgICAgICAg ICAgICBuZXh0IGlmICRyZXFfc3RhdGUgZXEgJ3N0b3BwZWQnOwotICAgICAgICAgICAgICAgIG5l eHQgaWYgJHJlcV9zdGF0ZSBlcSAnZnJlZXplJzsKLSAgICAgICAgICAgICAgICBuZXh0IGlmICRy ZXFfc3RhdGUgZXEgJ2Vycm9yJzsKLSAgICAgICAgICAgICAgICBuZXh0IGlmICRyZXFfc3RhdGUg ZXEgJ3JlcXVlc3Rfc3RhcnQnOwotICAgICAgICAgICAgICAgICRhY3RpdmVfY291bnQrKzsKLSAg ICAgICAgICAgIH0KKyAgICAgICAgICAgIG15ICRhY3RpdmVfY291bnQgPQorICAgICAgICAgICAg ICAgIFBWRTo6SEE6OlRvb2xzOjpjb3VudF9hY3RpdmVfc2VydmljZXMoJHN0YXR1cy0+e3NlcnZp Y2Vfc3RhdHVzfSwgJG5vZGUpOwogICAgICAgICAgICAgbXkgJGxybV9zdGF0dXMgPSBQVkU6OkhB OjpDb25maWc6OnJlYWRfbHJtX3N0YXR1cygkbm9kZSk7CiAgICAgICAgICAgICBteSAkaWQgPSAi bHJtOiRub2RlIjsKICAgICAgICAgICAgIGlmICghJGxybV9zdGF0dXMtPnt0aW1lc3RhbXB9KSB7 CmRpZmYgLS1naXQgYS9zcmMvUFZFL0hBL0xSTS5wbSBiL3NyYy9QVkUvSEEvTFJNLnBtCmluZGV4 IGI2NDVlNWIwLi4xMzQyYzhlYiAxMDA2NDQKLS0tIGEvc3JjL1BWRS9IQS9MUk0ucG0KKysrIGIv c3JjL1BWRS9IQS9MUk0ucG0KQEAgLTI5NywyNSArMjk3LDcgQEAgc3ViIGFjdGl2ZV9zZXJ2aWNl X2NvdW50IHsKIAogICAgIG15ICRzcyA9ICRzZWxmLT57c2VydmljZV9zdGF0dXN9OwogCi0gICAg bXkgJGNvdW50ID0gMDsKLSAgICBmb3JlYWNoIG15ICRzaWQgKGtleXMgJSRzcykgewotICAgICAg ICBteSAkc2QgPSAkc3MtPnskc2lkfTsKLSAgICAgICAgbXkgJHRhcmdldCA9ICRzZC0+e3Rhcmdl dH07ICMgY291bnQgYXMgYWN0aXZlIGlmIHdlIGFyZSB0aGUgdGFyZ2V0LgotICAgICAgICBuZXh0 IGlmICghJHNkLT57bm9kZX0gfHwgJHNkLT57bm9kZX0gbmUgJG5vZGVuYW1lKSAmJiAoISR0YXJn ZXQgfHwgJHRhcmdldCBuZSAkbm9kZW5hbWUpOwotICAgICAgICBteSAkcmVxX3N0YXRlID0gJHNk LT57c3RhdGV9OwotICAgICAgICBuZXh0IGlmICFkZWZpbmVkKCRyZXFfc3RhdGUpOwotICAgICAg ICBuZXh0IGlmICRyZXFfc3RhdGUgZXEgJ3N0b3BwZWQnOwotICAgICAgICAjIE5PVEU6ICdpZ25v cmVkJyBvbmVzIGFyZSBhbHJlYWR5IGRyb3BwZWQgYnkgdGhlIG1hbmFnZXIgZnJvbSBzZXJ2aWNl X3N0YXR1cwotICAgICAgICBuZXh0IGlmICRyZXFfc3RhdGUgZXEgJ2ZyZWV6ZSc7Ci0gICAgICAg ICMgZXJyb25lb3VzIHNlcnZpY2VzIGFyZSBub3QgbWFuYWdlZCBieSBIQSwgZG9uJ3QgY291bnQg dGhlbSBhcyBhY3RpdmUKLSAgICAgICAgbmV4dCBpZiAkcmVxX3N0YXRlIGVxICdlcnJvcic7Ci0g ICAgICAgICMgcmVxdWVzdF9zdGFydCBpcyBmb3IgKG9wdGlvbmFsKSBiZXR0ZXIgbm9kZSBzZWxl Y3Rpb24gZm9yIHN0b3AgLT4gc3RhcnRlZCB0cmFuc2l0aW9uCi0gICAgICAgIG5leHQgaWYgJHJl cV9zdGF0ZSBlcSAncmVxdWVzdF9zdGFydCc7Ci0KLSAgICAgICAgJGNvdW50Kys7Ci0gICAgfQot Ci0gICAgcmV0dXJuICRjb3VudDsKKyAgICByZXR1cm4gUFZFOjpIQTo6VG9vbHM6OmNvdW50X2Fj dGl2ZV9zZXJ2aWNlcygkc3MsICRub2RlbmFtZSk7CiB9CiAKIG15ICR3cm90ZV9scm1fc3RhdHVz X2F0X3N0YXJ0dXAgPSAwOwpkaWZmIC0tZ2l0IGEvc3JjL1BWRS9IQS9NYW5hZ2VyLnBtIGIvc3Jj L1BWRS9IQS9NYW5hZ2VyLnBtCmluZGV4IDE2ODJlMmE0Li5mNTg0M2RkNCAxMDA2NDQKLS0tIGEv c3JjL1BWRS9IQS9NYW5hZ2VyLnBtCisrKyBiL3NyYy9QVkUvSEEvTWFuYWdlci5wbQpAQCAtNTEy LDE5ICs1MTIsNyBAQCBteSAkaGF2ZV9ncm91cHNfYmVlbl9taWdyYXRlZCA9IHN1YiB7CiBteSAk aXNfbHJtX2FjdGl2ZV9vcl9pZGxlID0gc3ViIHsKICAgICBteSAoJHNzLCAkbm9kZSwgJGxybV9z dGF0ZSkgPSBAXzsKIAotICAgIG15ICRhY3RpdmVfY291bnQgPSAwOwotICAgIGZvciBteSAkc2lk IChrZXlzICUkc3MpIHsKLSAgICAgICAgbXkgJHNkID0gJHNzLT57JHNpZH07Ci0gICAgICAgIG15 ICR0YXJnZXQgPSAkc2QtPnt0YXJnZXR9OyAjIGNvdW50IGFzIGFjdGl2ZSBpZiB3ZSBhcmUgdGhl IHRhcmdldC4KLSAgICAgICAgbmV4dCBpZiAoISRzZC0+e25vZGV9IHx8ICRzZC0+e25vZGV9IG5l ICRub2RlKSAmJiAoISR0YXJnZXQgfHwgJHRhcmdldCBuZSAkbm9kZSk7Ci0gICAgICAgIG15ICRy ZXFfc3RhdGUgPSAkc2QtPntzdGF0ZX07Ci0gICAgICAgIG5leHQgaWYgIWRlZmluZWQoJHJlcV9z dGF0ZSk7Ci0gICAgICAgIG5leHQgaWYgJHJlcV9zdGF0ZSBlcSAnc3RvcHBlZCc7Ci0gICAgICAg IG5leHQgaWYgJHJlcV9zdGF0ZSBlcSAnZnJlZXplJzsKLSAgICAgICAgbmV4dCBpZiAkcmVxX3N0 YXRlIGVxICdlcnJvcic7Ci0gICAgICAgIG5leHQgaWYgJHJlcV9zdGF0ZSBlcSAncmVxdWVzdF9z dGFydCc7Ci0gICAgICAgICRhY3RpdmVfY291bnQrKzsKLSAgICB9CisgICAgbXkgJGFjdGl2ZV9j b3VudCA9IFBWRTo6SEE6OlRvb2xzOjpjb3VudF9hY3RpdmVfc2VydmljZXMoJHNzLCAkbm9kZSk7 CiAKICAgICByZXR1cm4gMSBpZiAkbHJtX3N0YXRlIGVxICdhY3RpdmUnOwogICAgIHJldHVybiAx IGlmICRscm1fc3RhdGUgZXEgJ3dhaXRfZm9yX2FnZW50X2xvY2snICYmICEkYWN0aXZlX2NvdW50 OwpkaWZmIC0tZ2l0IGEvc3JjL1BWRS9IQS9Ub29scy5wbSBiL3NyYy9QVkUvSEEvVG9vbHMucG0K aW5kZXggNDdiNGFhMDMuLjFmYTUzZGY4IDEwMDY0NAotLS0gYS9zcmMvUFZFL0hBL1Rvb2xzLnBt CisrKyBiL3NyYy9QVkUvSEEvVG9vbHMucG0KQEAgLTE4OCw2ICsxODgsMzEgQEAgc3ViIGNvdW50 X2ZlbmNlZF9zZXJ2aWNlcyB7CiAgICAgcmV0dXJuICRjb3VudDsKIH0KIAorc3ViIGNvdW50X2Fj dGl2ZV9zZXJ2aWNlcyB7CisgICAgbXkgKCRzcywgJG5vZGUpID0gQF87CisKKyAgICBteSAkYWN0 aXZlX2NvdW50ID0gMDsKKworICAgIGZvciBteSAkc2lkIChrZXlzICUkc3MpIHsKKyAgICAgICAg bXkgJHNkID0gJHNzLT57JHNpZH07CisgICAgICAgIG15ICR0YXJnZXQgPSAkc2QtPnt0YXJnZXR9 OyAjIGNvdW50IGFzIGFjdGl2ZSBpZiB3ZSBhcmUgdGhlIHRhcmdldC4KKyAgICAgICAgbmV4dCBp ZiAoISRzZC0+e25vZGV9IHx8ICRzZC0+e25vZGV9IG5lICRub2RlKSAmJiAoISR0YXJnZXQgfHwg JHRhcmdldCBuZSAkbm9kZSk7CisgICAgICAgIG15ICRyZXFfc3RhdGUgPSAkc2QtPntzdGF0ZX07 CisgICAgICAgIG5leHQgaWYgIWRlZmluZWQoJHJlcV9zdGF0ZSk7CisgICAgICAgIG5leHQgaWYg JHJlcV9zdGF0ZSBlcSAnc3RvcHBlZCc7CisgICAgICAgICMgTk9URTogJ2lnbm9yZWQnIG9uZXMg YXJlIGFscmVhZHkgZHJvcHBlZCBieSB0aGUgbWFuYWdlciBmcm9tIHNlcnZpY2Vfc3RhdHVzCisg ICAgICAgIG5leHQgaWYgJHJlcV9zdGF0ZSBlcSAnZnJlZXplJzsKKyAgICAgICAgIyBlcnJvbmVv dXMgc2VydmljZXMgYXJlIG5vdCBtYW5hZ2VkIGJ5IEhBLCBkb24ndCBjb3VudCB0aGVtIGFzIGFj dGl2ZQorICAgICAgICBuZXh0IGlmICRyZXFfc3RhdGUgZXEgJ2Vycm9yJzsKKyAgICAgICAgIyBy ZXF1ZXN0X3N0YXJ0IGlzIGZvciAob3B0aW9uYWwpIGJldHRlciBub2RlIHNlbGVjdGlvbiBmb3Ig c3RvcCAtPiBzdGFydGVkIHRyYW5zaXRpb24KKyAgICAgICAgbmV4dCBpZiAkcmVxX3N0YXRlIGVx ICdyZXF1ZXN0X3N0YXJ0JzsKKworICAgICAgICAkYWN0aXZlX2NvdW50Kys7CisgICAgfQorCisg ICAgcmV0dXJuICRhY3RpdmVfY291bnQ7Cit9CisKIHN1YiBnZXRfdmVyYm9zZV9zZXJ2aWNlX3N0 YXRlIHsKICAgICBteSAoJHNlcnZpY2Vfc3RhdGUsICRzZXJ2aWNlX2NvbmYpID0gQF87CiAKLS0g CjIuNDcuMwoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpwdmUtZGV2ZWwgbWFpbGluZyBsaXN0CnB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRw czovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwK