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 65D1F7E439 for ; Wed, 10 Nov 2021 13:15:58 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 623011B689 for ; Wed, 10 Nov 2021 13:15:58 +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 B73371B67E for ; Wed, 10 Nov 2021 13:15:57 +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 90F5640DAB for ; Wed, 10 Nov 2021 13:15:57 +0100 (CET) From: Dominik Csapak To: pve-devel@lists.proxmox.com Date: Wed, 10 Nov 2021 13:15:56 +0100 Message-Id: <20211110121556.500448-3-d.csapak@proxmox.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211110121556.500448-1-d.csapak@proxmox.com> References: <20211110121556.500448-1-d.csapak@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.228 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 2/2] ui: ceph: fix version handling 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: Wed, 10 Nov 2021 12:15:58 -0000 it seems we did not prepare the gui enough for the api changes. we have to use the node specific versions, not the global 'versions' object. also use PVE.Utils.compare_ceph_versions everywhere, since some versions are strings and others are the parts of the version (e.g. ["16", "2, "6"]) Signed-off-by: Dominik Csapak --- www/manager6/ceph/OSD.js | 6 +++--- www/manager6/ceph/Services.js | 8 ++++---- www/manager6/ceph/StatusDetail.js | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/www/manager6/ceph/OSD.js b/www/manager6/ceph/OSD.js index aea38d6c..b297d3ae 100644 --- a/www/manager6/ceph/OSD.js +++ b/www/manager6/ceph/OSD.js @@ -334,7 +334,7 @@ Ext.define('PVE.node.CephOsdTree', { return; } - if (node.version !== maxversion && maxversion !== "0") { + if (PVE.Utils.compare_ceph_versions(node.version, maxversion) !== 0 && maxversion !== "0") { mixedversions = true; } @@ -503,8 +503,8 @@ Ext.define('PVE.node.CephOsdTree', { let icon = ""; let version = value || ""; let maxversion = vm.get('maxversion'); - if (value && value !== maxversion) { - if (rec.data.type === 'host' || versions[rec.data.host] !== 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) { 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 6cd75618..4fc9d0af 100644 --- a/www/manager6/ceph/Services.js +++ b/www/manager6/ceph/Services.js @@ -50,9 +50,9 @@ Ext.define('PVE.ceph.Services', { // order guarantee since es2020, but browsers did so before. Note, integers would break it. const healthmap = Object.keys(healthstates); let maxversion = "00.0.00"; - Object.values(metadata.version || {}).forEach(function(version) { - if (PVE.Utils.compare_ceph_versions(version, maxversion) > 0) { - maxversion = version; + Object.values(metadata.node || {}).forEach(function(node) { + if (PVE.Utils.compare_ceph_versions(node?.version?.parts, maxversion) > 0) { + maxversion = node?.version?.parts; } }); var quorummap = status && status.quorum_names ? status.quorum_names : []; @@ -183,7 +183,7 @@ Ext.define('PVE.ceph.Services', { if (result.version) { result.statuses.push(gettext('Version') + ": " + result.version); - if (result.version !== maxversion) { + if (PVE.Utils.compare_ceph_versions(result.version, maxversion) !== 0) { if (metadata.version[host] === maxversion) { if (result.health > healthstates.HEALTH_OLD) { result.health = healthstates.HEALTH_OLD; diff --git a/www/manager6/ceph/StatusDetail.js b/www/manager6/ceph/StatusDetail.js index 1ca185f6..dbc55afe 100644 --- a/www/manager6/ceph/StatusDetail.js +++ b/www/manager6/ceph/StatusDetail.js @@ -192,9 +192,9 @@ Ext.define('PVE.ceph.StatusDetail', { me.suspendLayout = true; let maxversion = "0"; - Object.values(metadata.version || {}).forEach(function(version) { - if (PVE.Utils.compare_ceph_versions(version, maxversion) > 0) { - maxversion = version; + Object.values(metadata.node || {}).forEach(function(node) { + if (PVE.Utils.compare_ceph_versions(node?.version?.parts, maxversion) > 0) { + maxversion = node?.version?.parts; } }); @@ -203,7 +203,7 @@ Ext.define('PVE.ceph.StatusDetail', { if (metadata.osd) { metadata.osd.forEach(function(osd) { let version = PVE.Utils.parse_ceph_version(osd); - if (version !== maxversion) { + if (PVE.Utils.compare_ceph_versions(version, maxversion) !== 0) { oldosds.push({ id: osd.id, version: version, -- 2.30.2