From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pve-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
	by lore.proxmox.com (Postfix) with ESMTPS id 5C72D1FF164
	for <inbox@lore.proxmox.com>; Fri, 20 Jun 2025 16:32:48 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 57F33DE2D;
	Fri, 20 Jun 2025 16:32:18 +0200 (CEST)
From: Daniel Kral <d.kral@proxmox.com>
To: pve-devel@lists.proxmox.com
Date: Fri, 20 Jun 2025 16:31:36 +0200
Message-Id: <20250620143148.218469-29-d.kral@proxmox.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250620143148.218469-1-d.kral@proxmox.com>
References: <20250620143148.218469-1-d.kral@proxmox.com>
MIME-Version: 1.0
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.011 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 24/26] cli: expose ha rules api
 endpoints to ha-manager cli
X-BeenThere: pve-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

Expose the HA rules API endpoints through the CLI in its own subcommand.

The names of the subsubcommands are chosen to be consistent with the
other commands provided by the ha-manager CLI for services and groups.

The properties specified for the 'rules config' command are chosen to
reflect the columns from the WebGUI for the HA rules.

Signed-off-by: Daniel Kral <d.kral@proxmox.com>
---
changes since v1:
    - NEW!

 src/PVE/CLI/ha_manager.pm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/src/PVE/CLI/ha_manager.pm b/src/PVE/CLI/ha_manager.pm
index ca230f2..564ac96 100644
--- a/src/PVE/CLI/ha_manager.pm
+++ b/src/PVE/CLI/ha_manager.pm
@@ -17,6 +17,7 @@ use PVE::HA::Env::PVE2;
 use PVE::HA::Tools;
 use PVE::API2::HA::Resources;
 use PVE::API2::HA::Groups;
+use PVE::API2::HA::Rules;
 use PVE::API2::HA::Status;
 
 use base qw(PVE::CLIHandler);
@@ -199,6 +200,37 @@ our $cmddef = {
     groupremove => ["PVE::API2::HA::Groups", 'delete', ['group']],
     groupset => ["PVE::API2::HA::Groups", 'update', ['group']],
 
+    rules => {
+        list => [
+            'PVE::API2::HA::Rules',
+            'index',
+            [],
+            {},
+            sub {
+                my ($data, $schema, $options) = @_;
+                PVE::CLIFormatter::print_api_result($data, $schema, undef, $options);
+            },
+            $PVE::RESTHandler::standard_output_options,
+        ],
+        config => [
+            'PVE::API2::HA::Rules',
+            'index',
+            ['rule'],
+            {},
+            sub {
+                my ($data, $schema, $options) = @_;
+                my $props_to_print = [
+                    'rule', 'type', 'state', 'affinity', 'strict', 'services', 'nodes',
+                ];
+                PVE::CLIFormatter::print_api_result($data, $schema, $props_to_print, $options);
+            },
+            $PVE::RESTHandler::standard_output_options,
+        ],
+        add => ['PVE::API2::HA::Rules', 'create_rule', ['type', 'rule']],
+        remove => ['PVE::API2::HA::Rules', 'delete_rule', ['rule']],
+        set => ['PVE::API2::HA::Rules', 'update_rule', ['type', 'rule']],
+    },
+
     add => ["PVE::API2::HA::Resources", 'create', ['sid']],
     remove => ["PVE::API2::HA::Resources", 'delete', ['sid']],
     set => ["PVE::API2::HA::Resources", 'update', ['sid']],
-- 
2.39.5



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel