From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 5F2EE7F6AF for ; Fri, 12 Nov 2021 17:01:06 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 5501F1C8E8 for ; Fri, 12 Nov 2021 17:01:06 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id C184E1C8DE for ; Fri, 12 Nov 2021 17:01:05 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 8DF3943679 for ; Fri, 12 Nov 2021 17:01:05 +0100 (CET) From: Dominik Csapak To: pve-devel@lists.proxmox.com Date: Fri, 12 Nov 2021 17:01:04 +0100 Message-Id: <20211112160104.506805-1-d.csapak@proxmox.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.219 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% 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 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [result.health, data.host] Subject: [pve-devel] [PATCH manager] ui: ceph: add more compatibilty code for versions 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: , X-List-Received-Date: Fri, 12 Nov 2021 16:01:06 -0000 we now have to handle the version of 'old' nodes, as well as the new nodes, which are missing the 'version' field in the metadata/osd call so set the 'versions' object to a default empty object for osds and get the host version directly from the treenode (the parent node of the osd node) also compare the host version in the dashboard by getting first the new version field, and the old one as fallback. Signed-off-by: Dominik Csapak --- www/manager6/ceph/OSD.js | 5 +++-- www/manager6/ceph/Services.js | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/www/manager6/ceph/OSD.js b/www/manager6/ceph/OSD.js index b2120956..9e737852 100644 --- a/www/manager6/ceph/OSD.js +++ b/www/manager6/ceph/OSD.js @@ -316,7 +316,7 @@ Ext.define('PVE.node.CephOsdTree', { if (selected.length) { name = selected[0].data.name; } - vm.set('versions', data.versions); + vm.set('versions', data.versions || {}); // extract max version let maxversion = "0"; let mixedversions = false; @@ -507,7 +507,8 @@ Ext.define('PVE.node.CephOsdTree', { let version = value || ""; let maxversion = vm.get('maxversion'); if (value && PVE.Utils.compare_ceph_versions(value, maxversion) !== 0) { - if (rec.data.type === 'host' || PVE.Utils.compare_ceph_versions(versions[rec.data.host] || "", maxversion) !== 0) { + let host_version = rec.parentNode?.data?.version || versions[rec.data.host] || ""; + if (rec.data.type === 'host' || PVE.Utils.compare_ceph_versions(host_version, maxversion) !== 0) { icon = PVE.Utils.get_ceph_icon_html('HEALTH_UPGRADE'); } else { icon = PVE.Utils.get_ceph_icon_html('HEALTH_OLD'); diff --git a/www/manager6/ceph/Services.js b/www/manager6/ceph/Services.js index 4fc9d0af..77ade27b 100644 --- a/www/manager6/ceph/Services.js +++ b/www/manager6/ceph/Services.js @@ -184,7 +184,8 @@ Ext.define('PVE.ceph.Services', { result.statuses.push(gettext('Version') + ": " + result.version); if (PVE.Utils.compare_ceph_versions(result.version, maxversion) !== 0) { - if (metadata.version[host] === maxversion) { + let host_version = metadata.node[host]?.version?.parts || metadata.version?[host] || ""; + if (PVE.Utils.compare_ceph_versions(host_version, maxversion) === 0) { if (result.health > healthstates.HEALTH_OLD) { result.health = healthstates.HEALTH_OLD; } -- 2.30.2