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) server-digest SHA256) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id A3942B6B7 for ; Fri, 29 Apr 2022 16:16:57 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 9653BBC82 for ; Fri, 29 Apr 2022 16:16:57 +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 id 83955BC6B for ; Fri, 29 Apr 2022 16:16:56 +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 5B69643077 for ; Fri, 29 Apr 2022 16:16:56 +0200 (CEST) From: Aaron Lauterer To: pve-devel@lists.proxmox.com Date: Fri, 29 Apr 2022 16:16:54 +0200 Message-Id: <20220429141655.2884387-3-a.lauterer@proxmox.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220429141655.2884387-1-a.lauterer@proxmox.com> References: <20220429141655.2884387-1-a.lauterer@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.004 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 Subject: [pve-devel] [PATCH manager 3/4] ui: ceph pool edit: disable size and crush rule for erasure pools 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, 29 Apr 2022 14:16:57 -0000 They cannot be changed after pool creation for erasure coded pools Signed-off-by: Aaron Lauterer --- www/manager6/ceph/Pool.js | 44 ++++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/www/manager6/ceph/Pool.js b/www/manager6/ceph/Pool.js index 41df216e..16b903ce 100644 --- a/www/manager6/ceph/Pool.js +++ b/www/manager6/ceph/Pool.js @@ -19,21 +19,28 @@ Ext.define('PVE.CephPoolInputPanel', { allowBlank: false, }, { - xtype: 'proxmoxintegerfield', + xtype: 'pmxDisplayEditField', + cbind: { + editable: '{!isErasure}', + }, fieldLabel: gettext('Size'), name: 'size', - value: 3, - minValue: 2, - maxValue: 7, - allowBlank: false, - listeners: { - change: function(field, val) { - let size = Math.round(val / 2); - if (size > 1) { - field.up('inputpanel').down('field[name=min_size]').setValue(size); - } + editConfig: { + xtype: 'proxmoxintegerfield', + value: 3, + minValue: 2, + maxValue: 7, + allowBlank: false, + listeners: { + change: function(field, val) { + let size = Math.round(val / 2); + if (size > 1) { + field.up('inputpanel').down('field[name=min_size]').setValue(size); + } + }, }, }, + }, ], column2: [ @@ -101,14 +108,18 @@ Ext.define('PVE.CephPoolInputPanel', { hidden: true, }, { - xtype: 'pveCephRuleSelector', - fieldLabel: 'Crush Rule', // do not localize - name: 'crush_rule', + xtype: 'pmxDisplayEditField', cbind: { + editable: '{!isErasure}', nodename: '{nodename}', isCreate: '{isCreate}', }, - allowBlank: false, + fieldLabel: 'Crush Rule', // do not localize + name: 'crush_rule', + editConfig: { + xtype: 'pveCephRuleSelector', + allowBlank: false, + }, }, { xtype: 'proxmoxintegerfield', @@ -203,6 +214,7 @@ Ext.define('PVE.Ceph.PoolEdit', { cbind: { nodename: '{nodename}', pool_name: '{pool_name}', + isErasure: '{isErasure}', isCreate: '{isCreate}', }, }], @@ -354,6 +366,7 @@ Ext.define('PVE.node.Ceph.PoolList', { title: gettext('Edit') + ': Ceph Pool', nodename: nodename, pool_name: rec.data.pool_name, + isErasure: rec.data.type === 'erasure', autoShow: true, listeners: { destroy: () => rstore.load(), @@ -371,6 +384,7 @@ Ext.define('PVE.node.Ceph.PoolList', { Ext.create('PVE.Ceph.PoolEdit', { title: gettext('Create') + ': Ceph Pool', isCreate: true, + isErasure: false, nodename: nodename, autoShow: true, listeners: { -- 2.30.2