From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 7BF791FF140 for ; Fri, 27 Mar 2026 11:15:04 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 4B31C336A; Fri, 27 Mar 2026 11:15:24 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SbjGZwmt6cg+0rWex7hBZwzfgqUOsOJu6RYK5dyJuF8HLE4OiVWHYCtKBqcr/ND6YOPs36l956Bdl0w27/Qi1cTW25daC1GHEYSbV8ANDoEX3dHuQ6eIJBPmOGpyfD+DihJK6XxbDp+kwQnuQ8LS0ayoh7q3ne/XzTg33QVXw139Qx9Y8/rzdM8SdIQp7laLIWWCMySj8jSfQFGhfdhr5jsmN1mRSCUACdmAk0vzfyFnNDBgKUWWNSwhuJlkIHabpA8FInhJigLxd7NJMyaEtpWelz2XH1AfwattndoKf84L0aEOoyj3aAM6yBUKaJCQ/bYpWJ1gNphblvinAC3mzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9Tc6D5JH0eBYm8UECah0Q64gCZcErYArciv+Bv0j7m4=; b=miHv6rO9O01NnOS6jFj2Nxr/tr3Qo+UT1AwDaeL/YpxCQziymeuAB3MxRIJKUEwNoRkuF4GIIW8uFUe5yw+Rlmtyb5gGX/bCDpgGMiGQiphcd/4QZbdmrAJXuX+G1frOCvhD5WYUVDzJ2/QxOZ8SkW4zroG1xUsQXsHkaF3Pcrb6eWVLiM2i6va6yllaiG1oqpNYsfnn718wG1lewchWoYOj8Ifov2AlZDfZZoeZdblMal2AXZBLC7LEHYUm+mB5KASr0G6XPph4JVtqqay3CtOJ3RZQpy73LmQtJYwjoEeij6I5YHfWE3h2+wtx7TgCSV2J6vdcOLcdUTo9WFzV1g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 13.93.42.39) smtp.rcpttodomain=lists.proxmox.com smtp.mailfrom=inett.de; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=inett.de; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inett.de; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9Tc6D5JH0eBYm8UECah0Q64gCZcErYArciv+Bv0j7m4=; b=nI2rnVhIKFCo8WsKVI7YIf/XLfpMp1yAe91Nzw7eq5dXaTljDmZVWlODcvIjW1VSZQf3+LKEj3xq5hPAUycILg5TwL5pIT6mbZYTc8H2fCLBW724eRQeufsAuMCjASYV9mZemeUkj3yVcA/CWVkLDt7kBFRB4bXo7uq2ntAyeQo= X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 13.93.42.39) smtp.mailfrom=inett.de; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=inett.de; Received-SPF: Pass (protection.outlook.com: domain of inett.de designates 13.93.42.39 as permitted sender) receiver=protection.outlook.com; client-ip=13.93.42.39; helo=westeu12-emailsignatures-cloud.codetwo.com; pr=C Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=inett.de; From: Felix Driessler To: pve-devel@lists.proxmox.com Subject: [PATCH pve-manager 1/4] ui: Add Display of WWID for ISCSI Date: Fri, 27 Mar 2026 11:14:53 +0100 Message-ID: <20260327101456.16614-2-fdriessler@inett.de> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260327101456.16614-1-fdriessler@inett.de> References: <20260327101456.16614-1-fdriessler@inett.de> Content-Transfer-Encoding: quoted-printable Content-Type: text/plain X-ClientProxiedBy: FR2P281CA0163.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:99::6) To VI1PR05MB5071.eurprd05.prod.outlook.com (2603:10a6:803:52::24) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: VI1PR05MB5071:EE_|PA4PR05MB7662:EE_|DU6PEPF0000A7E2:EE_|FR8PR05MB12534:EE_ X-MS-Office365-Filtering-Correlation-Id: 86b3a080-b6e7-4863-ef3b-08de8be9bb2a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|52116014|10070799003|376014|366016|1800799024|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info-Original: 8Iapexi+n0HZ+0dVq96+8exy/uM5a2A9RSPY2JlONGFgCzP9EsSoKEXBm7xYlGmKb6ePxJtlcvt1cGh9p4GIy34xZ+z/SA0RTOw+rkWAQNzXuyQCeIpLNDxQj9srynPia/upqbgcbT7veW9gcE5sxhyuLqDpQR844SJq23nynzBtfuD6utUo0f/6kxrfZ1iAqYRFvMmvpmWDsDfMz3n4n/eSIULZTJbZ075WgkEz8hCpngog1mXuu6DgoTD+izzB7F3xNMWor/c3ANVc+qJEpsQ7WsG1mcALDbRPpR22Vv9KVR5oiY+RfOUsEvlYdnuOEkaAYmIrpqnzBi8k7dBbjzB/3/AiGmbD9TX9I1fVWlhdsjDf38pGDaHDS3odMjQBloCNUY6XCzm88n+KsqhL4WAVi4UbpXKIwIDWvCGTziu2LJVQoLH5xJn9HrIRUffehsLQ7JI9L/cse933YsnXWXAYc988CA01Zys/zZJoCG/CdaX85PQrmpGLrc1/99znkpenAPUYmqOREuk7Yolh8tMpX27Hy2LrUW3J7Na6LrFrh7HUxr/2LQc4ejRScrCTzj6eIwGiOBp83aICWl3wiVBjsmSPhqajEevOpqWQJmL6eJPblwbJtchfwg5rd+sYLbmLGTEyxYltMCaYl44sihPge+Jz7cJIDThEpxl1ZY4nRrs7AOVymoyRLprBcOdq23lUkhdfKp20kL6CDDZ/mpfUDCy15xlCOHLBWraCi3M= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR05MB5071.eurprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(52116014)(10070799003)(376014)(366016)(1800799024)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-Exchange-RoutingPolicyChecked: nDjsEiU3D+uT5xJ4zu05oLFkxmY5qca64aJklGvk65T8KYbnW83d7VaFwlMLIJTylDtgh6xChe/OLis56D3YelHT4sBaRhFUAappg8CysYJbIEQol+UicZQKusCvKe9sB0zGUxdZAstmmLW0dly8MWtUw2wSp/4HGwc7I2tnCqRlyVdk41s2gG6YzQrnzgfg9gT87T1E3gZiJhAsKn003lVal9ClpZSrMWLxLmROmN6g1LO/RRR/kzUE/FTNixIR9agqXPStV0MQh3sGhb5c73OXTH+Th+HAfPIIG7mtl7xvc3VIrVfJQRuYkXXFUXciyBPTwwaug/hJYjuOV3QFPQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR05MB7662 X-CodeTwo-MessageID: 0000f65e-b558-40a3-bb71-3b6d6b2e2b4d.20260327101510@westeu12-emailsignatures-cloud.codetwo.com X-CodeTwoProcessed: true X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU6PEPF0000A7E2.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 64b36778-c293-48c0-3a28-08de8be9b880 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|376014|14060799003|36860700016|35042699022|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: hOsvg89iKw0y3wVffnwC/HikgsfTAcHiRmnHrEiEmDYSEdp7y9e4ZbD6G0XqZhSDvwRKYeGQD2Fyp1GnER8gjm6LrZwdCRY8Paw9CxFouaLwRxx8U7IMk4QLIU2KGvGpe2gWcy4cvxZzcEoc2jU5gWHbjODj8xEKQML777go9F0KRseVxEp3EnAJ7tpf6E8qPKk0/OgslUN+P5dj1skoEaxk97qJSmPgm7dBnZ/iqCjkX8W5lbi0cHBquLAhQaB/1W4F0QPF/qZTSe0U+G5JfCcJHAhkEGC47zvkTZ8gkrafhIqdi5OQU/SA2fUHAoI9lAgikUiD4XN1iMUKYPpAse8Oc2ncXj8Jtzf0iDlq4K9QcM5/BIvwDSZOMrjBHvwhuINDX+ogHWSFD2WS3lz4LhZ5eWKtkTabepCtqeuh3pdfKAUbDT27hFVUTggm2g2TOubgcuZwC4H8AjCmKKEvjgYCmjBCtYjybooppvNKIKmSb6ph7AS/Qvr5u4/NAYtJcPHYG7YR6iX1ggXxKRAMxRLcq6yO6gQ+z+vzqoj0U4eWgNQU/j3YbFPzs9WquyoVN6ekniVhmvCa73B+yvDHUKgC+UJfYBhhXOUGa4yolIRjQWd+UZ+SAkKpUmV2HRSpabXUVgkscyM0QOKUjNpOt8ImDcFXo+4eeJMWWjoj0dzNBNzCWNrNzwuddYjI5WQ1WZ0dJb4VQ6TNQRD2Le+EMA== X-Forefront-Antispam-Report: CIP:13.93.42.39;CTRY:NL;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:westeu12-emailsignatures-cloud.codetwo.com;PTR:westeu12-emailsignatures-cloud.codetwo.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(14060799003)(36860700016)(35042699022)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: dkpAXZdux0gmR3Xp7JtyymZh59hYX5QP0xoclkLC4SNsTIDERJ/nTs+I3So8OWQvSDIaSC28i6t7bFPKZA0TkYO4a6ORj9BpZYFSDcgQGg8E12m/hCN8uwskMXUzgIxFqTsC6zBGSpwewngMVt6QjK5g3mZhRU+mA1btsAuQe0kcoiKLDRiLwoITWDbUE/a4ubXT1Ycjj5+r3Ej9hhYMMt3a/g1DkzzQCGXfroovH7VZ34l6KlmqfXlSso6q7TAS/Cfwpvr73AnBmbd+ISU7vNt59ei2UB6vNRcdwsrL45/PJjwCaeY03EA0B6jE6gbPKwSOrICeZgS9ZEaJpab1QPFTn0BmBTM+MCvupRxg+zcpQNqhYgbFF8reLNcFl/VTqb3RiizEL8ZTbzDcOMudjqyqHc2Y/Dq4P2QL6hzMHynsXY5nuyYXw1zTrOldwH/b X-OriginatorOrg: inett.de X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 10:15:11.6565 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 86b3a080-b6e7-4863-ef3b-08de8be9bb2a X-MS-Exchange-CrossTenant-Id: fbb4c88a-8c06-44c8-b416-5376f93313e0 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fbb4c88a-8c06-44c8-b416-5376f93313e0;Ip=[13.93.42.39];Helo=[westeu12-emailsignatures-cloud.codetwo.com] X-MS-Exchange-CrossTenant-AuthSource: DU6PEPF0000A7E2.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: FR8PR05MB12534 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.002 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain DMARC_PASS -0.1 DMARC pass policy SPF_HELO_PASS -0.001 SPF: HELO matches SPF record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: 2XZKBI3Z5AYXCL6DAN32MR4D7CMX5DGN X-Message-ID-Hash: 2XZKBI3Z5AYXCL6DAN32MR4D7CMX5DGN X-MailFrom: fdriessler@inett.de 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: Signed-off-by: Felix Driessler --- www/manager6/Utils.js | 8 +++ www/manager6/form/FileSelector.js | 81 +++++++++++++++++++++-------- www/manager6/storage/ContentView.js | 24 ++++++++- 3 files changed, 89 insertions(+), 24 deletions(-) diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js index 77dae42e..aa766f85 100644 --- a/www/manager6/Utils.js +++ b/www/manager6/Utils.js @@ -1056,6 +1056,14 @@ Ext.define('PVE.Utils', { return Ext.String.htmlEncode(result); }, =20 + render_storage_wwid: function (value, metaData, record) { + let data =3D record.data; + if ('wwid' in data) { + return Ext.String.htmlEncode(data.wwid); + } else { + return undefined; + } + }, render_serverity: function (value) { return PVE.Utils.log_severity_hash[value] || value; }, diff --git a/www/manager6/form/FileSelector.js b/www/manager6/form/FileSele= ctor.js index b8f6a8c2..47c187e8 100644 --- a/www/manager6/form/FileSelector.js +++ b/www/manager6/form/FileSelector.js @@ -15,6 +15,45 @@ Ext.define('PVE.form.FileSelector', { }, }, =20 + initComponent: function () { + var me =3D this; + + me.listConfig =3D Ext.apply({ + width: 600, + columns: this.getColumns(false), + }, me.listConfig); + + me.callParent(); + }, + + getColumns: function (isIscsi) { + return [ + { + header: gettext('Name'), + dataIndex: 'text', + hideable: false, + flex: 1, + }, + ...isIscsi ? [{ + header: 'WWID', + flex: 1, + renderer: PVE.Utils.render_storage_wwid, + dataIndex: 'wwid', + }] : [], + { + header: gettext('Format'), + width: 60, + dataIndex: 'format', + }, + { + header: gettext('Size'), + width: 100, + dataIndex: 'size', + renderer: Proxmox.Utils.format_size, + }, + ]; + }, + setStorage: function (storage, nodename) { var me =3D this; =20 @@ -52,6 +91,25 @@ Ext.define('PVE.form.FileSelector', { =20 me.store.removeAll(); me.store.load(); + + let storageInfo =3D PVE.data.ResourceStore.findRecord( + 'id', + `storage/${me.nodename}/${me.storage}`, + 0, // startIndex + false, // anyMatch + true, // caseSensitive + true, // exactMatch + ); + + let res =3D storageInfo.data; + let plugin =3D res.plugintype; + let isIscsi =3D plugin =3D=3D=3D 'iscsi'; + + let grid =3D me.getPicker(); + + if (grid) { + grid.reconfigure(me.store, me.getColumns(isIscsi)); + } }, =20 setNodename: function (nodename) { @@ -69,27 +127,4 @@ Ext.define('PVE.form.FileSelector', { =20 // An optional filter function filter: undefined, - - listConfig: { - width: 600, - columns: [ - { - header: gettext('Name'), - dataIndex: 'text', - hideable: false, - flex: 1, - }, - { - header: gettext('Format'), - width: 60, - dataIndex: 'format', - }, - { - header: gettext('Size'), - width: 100, - dataIndex: 'size', - renderer: Proxmox.Utils.format_size, - }, - ], - }, }); diff --git a/www/manager6/storage/ContentView.js b/www/manager6/storage/Con= tentView.js index 75b81e69..94dd2f08 100644 --- a/www/manager6/storage/ContentView.js +++ b/www/manager6/storage/ContentView.js @@ -30,6 +30,19 @@ Ext.define( } const storage =3D me.storage; =20 + let storageInfo =3D PVE.data.ResourceStore.findRecord( + 'id', + `storage/${nodename}/${storage}`, + 0, // startIndex + false, // anyMatch + true, // caseSensitive + true, // exactMatch + ); + + let res =3D storageInfo.data; + let plugin =3D res.plugintype; + let isIscsi =3D plugin =3D=3D=3D 'iscsi'; + var content =3D me.content; if (!content) { throw 'no content type specified'; @@ -159,6 +172,12 @@ Ext.define( .localeCompare(b.data.text.toString(), undefin= ed, { numeric: true }), dataIndex: 'text', }, + wwid: { + header: 'WWID', + flex: 2, + renderer: PVE.Utils.render_storage_wwid, + dataIndex: 'wwid', + }, notes: { header: gettext('Notes'), flex: 1, @@ -192,7 +211,9 @@ Ext.define( }, }; =20 - let showColumns =3D me.showColumns || ['name', 'date', 'format= ', 'size']; + let showColumns =3D me.showColumns || isIscsi ? + ['name', 'date', 'format', 'size', 'wwid'] : + ['name', 'date', 'format', 'size']; =20 Object.keys(availableColumns).forEach(function (key) { if (!showColumns.includes(key)) { @@ -224,6 +245,7 @@ Ext.define( extend: 'Ext.data.Model', fields: [ 'volid', + 'wwid', 'content', 'format', 'size', --=20 2.52.0 =0A= Felix Driessler=0A= Junior Systems Engineer // #GernPerDU=0A= =0A= Linux - Open Source - IT Solutions=0A= =0A= T: +49-681-410993-0=0A= E: fdriessler@inett.de=0A= https://www.inett.de=0A= =0A= =0A= =0A= inett GmbH | Altenkesseler Strasse 17 / B8 | 66115 Saarbr=FCcken | Germany= =0A= =0A= Vertrieb: vertrieb@inett.de // +49-681-410993-33=0A= Support: support@inett.de // +49-681-410993-42=0A= =0A= =0A= =0A= =0A= =0A= Gesch=E4ftsf=FChrung: Marco Gabriel | Amtsgericht Saarbr=FCcken HRB 16588= =0A=