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,21 +19,28 @@ 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',
value: 3, editConfig: {
minValue: 2, xtype: 'proxmoxintegerfield',
maxValue: 7, value: 3,
allowBlank: false, minValue: 2,
listeners: { maxValue: 7,
change: function(field, val) { allowBlank: false,
let size = Math.round(val / 2); listeners: {
if (size > 1) { change: function(field, val) {
field.up('inputpanel').down('field[name=min_size]').setValue(size); let size = Math.round(val / 2);
} if (size > 1) {
field.up('inputpanel').down('field[name=min_size]').setValue(size);
}
},
}, },
}, },
}, },
], ],
column2: [ column2: [
@ -101,14 +108,18 @@ 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}',
}, },
allowBlank: false, fieldLabel: 'Crush Rule', // do not localize
name: 'crush_rule',
editConfig: {
xtype: 'pveCephRuleSelector',
allowBlank: false,
},
}, },
{ {
xtype: 'proxmoxintegerfield', xtype: 'proxmoxintegerfield',
@ -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: {