[pve-devel] [PATCH pve-manager 1/1] ui: cloudinit : use new cloudinit config api

Alexandre Derumier aderumier at odiso.com
Fri Mar 19 13:07:12 CET 2021


---
 www/manager6/qemu/CloudInit.js | 44 ++++++++++++++++++----------------
 1 file changed, 24 insertions(+), 20 deletions(-)

diff --git a/www/manager6/qemu/CloudInit.js b/www/manager6/qemu/CloudInit.js
index ccd1840b..423f09ef 100644
--- a/www/manager6/qemu/CloudInit.js
+++ b/www/manager6/qemu/CloudInit.js
@@ -133,13 +133,20 @@ Ext.define('PVE.qemu.CloudInit', {
 		return;
 	    }
 	    var id = record.data.key;
+	    var pending = record.data.pending;
 	    var value = record.data.value;
 	    var ciregex = new RegExp("vm-" + me.pveSelNode.data.vmid + "-cloudinit");
-		if (id.match(/^(ide|scsi|sata)\d+$/) && ciregex.test(value)) {
+	    if (id.match(/^(ide|scsi|sata)\d+$/)) {
+		if(ciregex.test(pending)) {
+		    found = id;
+		    me.ciDriveId = found;
+		    me.ciDrive = pending;
+		} else if (ciregex.test(value)) {
 		    found = id;
 		    me.ciDriveId = found;
 		    me.ciDrive = value;
 		}
+	    }
 	});
 
 	me.down('#savebtn').setDisabled(!found);
@@ -188,12 +195,13 @@ Ext.define('PVE.qemu.CloudInit', {
 	}
 	var caps = Ext.state.Manager.get('GuiCap');
 	me.baseurl = '/api2/extjs/nodes/' + nodename + '/qemu/' + vmid;
-	me.url = me.baseurl + '/pending';
+	me.url = me.baseurl + '/cloudinit';
 	me.editorConfig.url = me.baseurl + '/config';
 	me.editorConfig.pveSelNode = me.pveSelNode;
 
 	let caps_ci = caps.vms['VM.Config.Cloudinit'] || caps.vms['VM.Config.Network'];
 	/* editor is string and object */
+
 	me.rows = {
 	    ciuser: {
 		header: gettext('User'),
@@ -239,6 +247,13 @@ Ext.define('PVE.qemu.CloudInit', {
 		    return value || Proxmox.Utils.noneText;
 		},
 	    },
+	    name: {
+		header: gettext('Hostname'),
+		iconCls: 'fa fa-globe',
+		editor: undefined,
+		never_delete: true,
+		defaultValue: '',
+	    },
 	    searchdomain: {
 		header: gettext('DNS domain'),
 		iconCls: 'fa fa-globe',
@@ -291,35 +306,24 @@ Ext.define('PVE.qemu.CloudInit', {
 	    },
 	};
 	var i;
-	var ipconfig_renderer = function(value, md, record, ri, ci, store, pending) {
-	    var id = record.data.key;
-	    var match = id.match(/^net(\d+)$/);
-	    var val = '';
-	    if (match) {
-		val = me.getObjectValue('ipconfig'+match[1], '', pending);
-	    }
-	    return val;
-	};
+
 	for (i = 0; i < 32; i++) {
-	    // we want to show an entry for every network device
-	    // even if it is empty
-	    me.rows['net' + i.toString()] = {
-		multiKey: ['ipconfig' + i.toString(), 'net' + i.toString()],
+	    me.rows['ipconfig' + i.toString()] = {
 		header: gettext('IP Config') + ' (net' + i.toString() +')',
 		editor: caps.vms['VM.Config.Network'] ? 'PVE.qemu.IPConfigEdit' : undefined,
 		iconCls: 'fa fa-exchange',
-		renderer: ipconfig_renderer,
-	    };
-	    me.rows['ipconfig' + i.toString()] = {
-		visible: false,
+		visible: true,
 	    };
 	}
 
 	PVE.Utils.forEachBus(['ide', 'scsi', 'sata'], function(type, id) {
 	    me.rows[type+id] = {
-		visible: false,
+		title: 'Cloud-Init',
+		iconCls: 'fa fa-cloud',
+		never_delete: true,
 	    };
 	});
+
 	me.callParent();
 	me.mon(me.rstore, 'load', me.set_button_status, me);
     },
-- 
2.20.1





More information about the pve-devel mailing list