ui: ceph pool edit: disable size and crush rule for erasure pools

They cannot be changed after pool creation for erasure coded pools

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
Tested-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
Aaron Lauterer 2022-05-02 10:09:27 +02:00 committed by Thomas Lamprecht
parent fca1900c76
commit 1a04202598

View File

@ -19,9 +19,14 @@ Ext.define('PVE.CephPoolInputPanel', {
allowBlank: false, allowBlank: false,
}, },
{ {
xtype: 'proxmoxintegerfield', xtype: 'pmxDisplayEditField',
cbind: {
editable: '{!isErasure}',
},
fieldLabel: gettext('Size'), fieldLabel: gettext('Size'),
name: 'size', name: 'size',
editConfig: {
xtype: 'proxmoxintegerfield',
value: 3, value: 3,
minValue: 2, minValue: 2,
maxValue: 7, maxValue: 7,
@ -35,6 +40,8 @@ Ext.define('PVE.CephPoolInputPanel', {
}, },
}, },
}, },
},
], ],
column2: [ column2: [
{ {
@ -101,15 +108,19 @@ Ext.define('PVE.CephPoolInputPanel', {
hidden: true, hidden: true,
}, },
{ {
xtype: 'pveCephRuleSelector', xtype: 'pmxDisplayEditField',
fieldLabel: 'Crush Rule', // do not localize
name: 'crush_rule',
cbind: { cbind: {
editable: '{!isErasure}',
nodename: '{nodename}', nodename: '{nodename}',
isCreate: '{isCreate}', isCreate: '{isCreate}',
}, },
fieldLabel: 'Crush Rule', // do not localize
name: 'crush_rule',
editConfig: {
xtype: 'pveCephRuleSelector',
allowBlank: false, allowBlank: false,
}, },
},
{ {
xtype: 'proxmoxintegerfield', xtype: 'proxmoxintegerfield',
fieldLabel: '# of PGs', fieldLabel: '# of PGs',
@ -203,6 +214,7 @@ Ext.define('PVE.Ceph.PoolEdit', {
cbind: { cbind: {
nodename: '{nodename}', nodename: '{nodename}',
pool_name: '{pool_name}', pool_name: '{pool_name}',
isErasure: '{isErasure}',
isCreate: '{isCreate}', isCreate: '{isCreate}',
}, },
}], }],
@ -354,6 +366,7 @@ Ext.define('PVE.node.Ceph.PoolList', {
title: gettext('Edit') + ': Ceph Pool', title: gettext('Edit') + ': Ceph Pool',
nodename: nodename, nodename: nodename,
pool_name: rec.data.pool_name, pool_name: rec.data.pool_name,
isErasure: rec.data.type === 'erasure',
autoShow: true, autoShow: true,
listeners: { listeners: {
destroy: () => rstore.load(), destroy: () => rstore.load(),
@ -371,6 +384,7 @@ Ext.define('PVE.node.Ceph.PoolList', {
Ext.create('PVE.Ceph.PoolEdit', { Ext.create('PVE.Ceph.PoolEdit', {
title: gettext('Create') + ': Ceph Pool', title: gettext('Create') + ': Ceph Pool',
isCreate: true, isCreate: true,
isErasure: false,
nodename: nodename, nodename: nodename,
autoShow: true, autoShow: true,
listeners: { listeners: {