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 E9A3AF49C for ; Fri, 29 Sep 2023 10:52:36 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id BA6951E20F for ; Fri, 29 Sep 2023 10:52:06 +0200 (CEST) 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 for ; Fri, 29 Sep 2023 10:52:06 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 03BC34455E for ; Fri, 29 Sep 2023 10:52:06 +0200 (CEST) From: Dominik Csapak To: pbs-devel@lists.proxmox.com Date: Fri, 29 Sep 2023 10:52:05 +0200 Message-Id: <20230929085205.1485197-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.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: [pbs-devel] [PATCH proxmox-backup] ui: tape: mark incomplete media-sets as such X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Sep 2023 08:52:37 -0000 by counting the returned tapes and compare it to the sequence number. If the tape count is lower than the highest sequence number plus one, there must be a tape missing. Mark it in the text and add the proxmox-warning-row class. Signed-off-by: Dominik Csapak --- i opted to not deduplicated the checking logic because it's only three lines and we don't have a good place to put it besides Utils. If wanted i can ofc do that and send a v2 www/tape/BackupOverview.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/www/tape/BackupOverview.js b/www/tape/BackupOverview.js index 229d8d9d..f8e9dfd7 100644 --- a/www/tape/BackupOverview.js +++ b/www/tape/BackupOverview.js @@ -55,17 +55,24 @@ Ext.define('PBS.TapeManagement.BackupOverview', { data[pool] = {}; } + let seq_nr = entry['seq-nr']; + if (data[pool][media_set] === undefined) { data[pool][media_set] = entry; data[pool][media_set].text = media_set; data[pool][media_set].restore = true; data[pool][media_set].tapes = 1; data[pool][media_set]['seq-nr'] = undefined; + data[pool][media_set]['max-seq-nr'] = seq_nr; data[pool][media_set].is_media_set = true; data[pool][media_set].typeText = 'media-set'; } else { data[pool][media_set].tapes++; } + + if (data[pool][media_set]['max-seq-nr'] < seq_nr) { + data[pool][media_set]['max-seq-nr'] = seq_nr; + } } let list = []; @@ -309,11 +316,33 @@ Ext.define('PBS.TapeManagement.BackupOverview', { }, ], + viewConfig: { + getRowClass: function(rec) { + let tapeCount = (rec.get('max-seq-nr') ?? 0) + 1; + let actualTapeCount = rec.get('tapes') ?? 1; + + if (tapeCount !== actualTapeCount) { + return 'proxmox-warning-row'; + } + + return ''; + }, + }, + columns: [ { xtype: 'treecolumn', text: gettext('Pool/Media-Set/Snapshot'), dataIndex: 'text', + renderer: function(value, mD, rec) { + let tapeCount = (rec.get('max-seq-nr') ?? 0) + 1; + let actualTapeCount = rec.get('tapes') ?? 1; + + if (tapeCount !== actualTapeCount) { + return `${value} (${gettext('Incomplete')})`; + } + return value; + }, sortable: false, flex: 3, }, -- 2.30.2