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 3DB231FF0B7 for ; Fri, 02 Oct 2026 09:10:51 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 1D38A216DB; Fri, 02 Oct 2026 09:10:44 +0200 (CEST) From: Erik Fastermann To: pbs-devel@lists.proxmox.com, pdm-devel@lists.proxmox.com Subject: [PATCH proxmox-datacenter-manager v2 2/2] fix #7746: cli: admin: show installed instead of candidate version Date: Fri, 2 Oct 2026 09:10:00 +0200 Message-ID: <20261002071000.131772-3-e.fastermann@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20261002071000.131772-1-e.fastermann@proxmox.com> References: <20261002071000.131772-1-e.fastermann@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1790925040806 X-SPAM-LEVEL: Spam detection results: 0 AWL 1.838 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) RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: 3JBY4HGAZEDMOBLIHKV2JZHSCXWQ55FY X-Message-ID-Hash: 3JBY4HGAZEDMOBLIHKV2JZHSCXWQ55FY X-MailFrom: e.fastermann@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 CC: Erik Fastermann X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox Backup Server development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: The 'versions' command printed 'Version' from the API result, which carries the version apt would upgrade to, not the one that is installed. Whenever the apt cache knows a newer version, the command therefore reported a version that is not installed at all, and the output changed after a plain 'apt update'. This also affects the 'report' command, which runs 'versions --verbose'. The installed version is available as 'OldVersion', which is what the GUI reads as well. The name is unfortunate for a listing of installed packages, but as far as I can tell every other consumer uses it correctly. The only exceptions were this command and its equivalent in Proxmox Backup Server, which is fixed in a separate patch. Use a renderer for the column, as 'OldVersion' is not set for packages that are not installed, where the table would otherwise show an empty cell instead of 'unknown', matching the previous behavior. The header is not shown while 'noborder' is set, as the table formatter then suppresses headers as well. Still label it 'Version' rather than 'Old Version', as from the user's point of view it is the current version, and the label stays correct should the borders ever be enabled. The naming is inherited from PVE, where the same record is used for both the available updates and the installed package listing. Giving the versions endpoint its own type would avoid the trap for future callers, but that is a more complex API change and can be done in a future commit. Reviewed-by: Christian Ebner Tested-by: Christian Ebner Signed-off-by: Erik Fastermann --- cli/admin/src/main.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cli/admin/src/main.rs b/cli/admin/src/main.rs index a2c5c623..9c0bc9ba 100644 --- a/cli/admin/src/main.rs +++ b/cli/admin/src/main.rs @@ -112,7 +112,11 @@ async fn get_versions(verbose: bool, param: Value) -> Result