From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id A77EF1FF0ED for ; Fri, 31 Jul 2026 12:30:52 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 723EF214E2; Fri, 31 Jul 2026 12:30:52 +0200 (CEST) From: Dietmar Maurer To: pve-devel@lists.proxmox.com Subject: [RFC pve-manager 26/27] pvenode: add iscsi commands Date: Fri, 31 Jul 2026 12:21:55 +0200 Message-ID: <20260731102156.3947857-27-dietmar@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260731102156.3947857-1-dietmar@proxmox.com> References: <20260731102156.3947857-1-dietmar@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 2 AWL -0.138 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) KAM_LAZY_DOMAIN_SECURITY 1 Sending domain does not have any anti-forgery methods RDNS_NONE 1.274 Delivered to internal network by a host with no rDNS SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_NONE 0.001 SPF: sender does not publish an SPF Record Message-ID-Hash: NEZ6LSBBURNNXLHQ3OG6NBXUM6GKK3XT X-Message-ID-Hash: NEZ6LSBBURNNXLHQ3OG6NBXUM6GKK3XT X-MailFrom: dietmar@zilli.proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Expose the iSCSI initiator API on the command line, so target and session state, negotiated parameters, rescan, logout and node record removal are reachable without the web interface or raw pvesh calls. Signed-off-by: Dietmar Maurer --- PVE/CLI/pvenode.pm | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/PVE/CLI/pvenode.pm b/PVE/CLI/pvenode.pm index 7f717642..f40190ac 100644 --- a/PVE/CLI/pvenode.pm +++ b/PVE/CLI/pvenode.pm @@ -7,6 +7,7 @@ use PVE::API2::ACME; use PVE::API2::ACMEAccount; use PVE::API2::ACMEPlugin; use PVE::API2::Certificates; +use PVE::API2::ISCSI; use PVE::API2::NodeConfig; use PVE::API2::Nodes; use PVE::API2::Tasks; @@ -370,6 +371,47 @@ our $cmddef = { }, ], + iscsi => { + status => [ + 'PVE::API2::ISCSI', + 'status', + [], + { node => $nodename }, + sub { + my ($data, $schema, $options) = @_; + PVE::CLIFormatter::print_api_result($data, $schema, undef, $options); + }, + $PVE::RESTHandler::standard_output_options, + ], + targets => [ + 'PVE::API2::ISCSI', + 'targets', + [], + { node => $nodename }, + sub { + my ($data, $schema, $options) = @_; + PVE::CLIFormatter::print_api_result($data, $schema, undef, $options); + }, + $PVE::RESTHandler::standard_output_options, + ], + 'target-delete' => + ['PVE::API2::ISCSI', 'target_delete', ['target'], { node => $nodename }], + 'session-params' => [ + 'PVE::API2::ISCSI', + 'session_params', + ['session-id'], + { node => $nodename }, + sub { + my ($data, $schema, $options) = @_; + PVE::CLIFormatter::print_api_result($data, $schema, undef, $options); + }, + $PVE::RESTHandler::standard_output_options, + ], + 'session-logout' => + ['PVE::API2::ISCSI', 'session_logout', ['session-id'], { node => $nodename }], + rescan => ['PVE::API2::ISCSI', 'rescan', ['session-id'], { node => $nodename }], + }, + }; 1; -- 2.47.3