]> git.proxmox.com Git - pve-manager.git/commitdiff
ui: ceph pool edit: disable size and crush rule for erasure pools
authorAaron Lauterer <a.lauterer@proxmox.com>
Mon, 2 May 2022 08:09:27 +0000 (10:09 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Mon, 2 May 2022 13:43:15 +0000 (15:43 +0200)
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>
www/manager6/ceph/Pool.js

index 41df216e1f39412aaef100c9f73f2da229b75e0f..16b903ceeabc17c6feee6f604109013d57004b3f 100644 (file)
@@ -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: {