[pve-devel] [PATCH manager] fix #2185: add option to change nfs version on gui

Oguz Bektas o.bektas at proxmox.com
Wed May 15 15:21:56 CEST 2019


this enables us to specify an nfs version while editing/creating an nfs
mount. it used to default to vers=3 without the ability to change it in
gui. now it supports: 3, 4, 4.1 and 4.2

it should also be possible to add further options in the future (rsize,
wsize, timeo, etc.) on this screen.

Co-Authored-by: Dominik Csapak <d.csapak at proxmox.com>
Signed-off-by: Oguz Bektas <o.bektas at proxmox.com>
---

this patch depends on the patches from dominik[0] and thomas[1] in
pve-common and pve-storage and shouldn't be applied without them.

[0]: https://git.proxmox.com/?p=pve-common.git;a=commit;h=d0ba18e17e96e9a2db54d050c4bd86b6d2d2dd03
[1]: https://git.proxmox.com/?p=pve-storage.git;a=commit;h=4273e3ace94a22c39d98385d9dfb72249eac09aa


 www/manager6/storage/NFSEdit.js | 56 ++++++++++++++++++++++++++++++++++++++---
 1 file changed, 52 insertions(+), 4 deletions(-)

diff --git a/www/manager6/storage/NFSEdit.js b/www/manager6/storage/NFSEdit.js
index 9eaa8bc5..bc512e3b 100644
--- a/www/manager6/storage/NFSEdit.js
+++ b/www/manager6/storage/NFSEdit.js
@@ -62,18 +62,49 @@ Ext.define('PVE.storage.NFSInputPanel', {
 
     onlineHelp: 'storage_nfs',
 
+    options : [],
+
     onGetValues: function(values) {
 	var me = this;
 
-	if (me.isCreate) {
-	    // hack: for now we always create nvf v3
-	    // fixme: make this configurable
-	    values.options = 'vers=3';
+	var i;
+	var res = [];
+	for (i = 0; i < me.options.length; i++) {
+	    var item = me.options[i];
+	    if (!item.match(/^vers=(.*)$/)) {
+		res.push(item);
+	    }
+	}
+	if (values.nfsversion && values.nfsversion !== '__default__') {
+	    res.push('vers=' + values.nfsversion);
+	}
+	delete values.nfsversion;
+	values.options = res.join(',');
+	if (values.options === '') {
+	    delete values.options;
+	    if (!me.isCreate) {
+		values["delete"] = "options";
+	    }
 	}
 
 	return me.callParent([values]);
     },
 
+    setValues: function(values) {
+	var me = this;
+	if (values.options) {
+	    var res = values.options;
+	    me.options = values.options.split(',');
+	    me.options.forEach(function(item) {
+		var match;
+		if (match = item.match(/^vers=(.*)$/)) {
+		    values.nfsversion = match[1];
+		}
+	    });
+	}
+	return me.callParent([values]);
+    },
+
     initComponent : function() {
 	var me = this;
 
@@ -126,6 +157,23 @@ Ext.define('PVE.storage.NFSInputPanel', {
 	    }
 	];
 
+	me.advancedColumn1 = [
+	    {
+		xtype: 'proxmoxKVComboBox',
+		fieldLabel: gettext('NFS Version'),
+		name: 'nfsversion',
+		value: '__default__',
+		deleteEmpty: false,
+		comboItems: [
+			['__default__', Proxmox.Utils.defaultText],
+			['3', '3'],
+			['4', '4'],
+			['4.1', '4.1'],
+			['4.2', '4.2']
+		],
+	    }
+	];
+
 	me.callParent();
     }
 });
-- 
2.11.0





More information about the pve-devel mailing list