X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=www%2Fmanager6%2Fqemu%2FCloudInit.js;h=bb0a7a45844a5461c1cbc496f58ea7aef715efe9;hb=d1c7fa02096ad025ea179ca7e749edb46e79bb36;hp=1f7631f79ad0bc23e581dae24eed39333eaa9acb;hpb=044b08f2552cdbbffdd20cd9e63c79b9e5eb3e48;p=pve-manager.git diff --git a/www/manager6/qemu/CloudInit.js b/www/manager6/qemu/CloudInit.js index 1f7631f7..bb0a7a45 100644 --- a/www/manager6/qemu/CloudInit.js +++ b/www/manager6/qemu/CloudInit.js @@ -10,20 +10,20 @@ Ext.define('PVE.qemu.CloudInit', { disabled: true, dangerous: true, confirmMsg: function(rec) { - var me = this.up('grid'); + let view = this.up('grid'); var warn = gettext('Are you sure you want to remove entry {0}'); var entry = rec.data.key; var msg = Ext.String.format(warn, "'" - + me.renderKey(entry, {}, rec) + "'"); + + view.renderKey(entry, {}, rec) + "'"); return msg; }, enableFn: function(record) { - var me = this.up('grid'); + let view = this.up('grid'); var caps = Ext.state.Manager.get('GuiCap'); - if (me.rows[record.data.key].never_delete || - !caps.vms['VM.Config.Network']) { + let caps_ci = caps.vms['VM.Config.Network'] || caps.vms['VM.Config.Cloudinit']; + if (view.rows[record.data.key].never_delete || !caps_ci) { return false; } @@ -33,9 +33,9 @@ Ext.define('PVE.qemu.CloudInit', { return true; }, handler: function() { - var me = this.up('grid'); - var records = me.getSelection(); - if (!records || !records.length) { + let view = this.up('grid'); + let records = view.getSelection(); + if (!records || !records.length) { return; } @@ -46,34 +46,34 @@ Ext.define('PVE.qemu.CloudInit', { } var params = {}; - params['delete'] = id; + params.delete = id; Proxmox.Utils.API2Request({ - url: me.baseurl + '/config', - waitMsgTarget: me, + url: view.baseurl + '/config', + waitMsgTarget: view, method: 'PUT', params: params, failure: function(response, opts) { Ext.Msg.alert('Error', response.htmlStatus); }, callback: function() { - me.reload(); - } + view.reload(); + }, }); }, - text: gettext('Remove') + text: gettext('Remove'), }, { xtype: 'proxmoxButton', disabled: true, enableFn: function(rec) { - let me = this.up('pveCiPanel'); - return !!me.rows[rec.data.key].editor; + let view = this.up('pveCiPanel'); + return !!view.rows[rec.data.key].editor; }, handler: function() { - var me = this.up('grid'); - me.run_editor(); + let view = this.up('grid'); + view.run_editor(); }, - text: gettext('Edit') + text: gettext('Edit'), }, '-', { @@ -81,43 +81,43 @@ Ext.define('PVE.qemu.CloudInit', { itemId: 'savebtn', text: gettext('Regenerate Image'), handler: function() { - var me = this.up('grid'); + let view = this.up('grid'); var eject_params = {}; var insert_params = {}; - var disk = PVE.Parser.parseQemuDrive(me.ciDriveId, me.ciDrive); + let disk = PVE.Parser.parseQemuDrive(view.ciDriveId, view.ciDrive); var storage = ''; - var stormatch = disk.file.match(/^([^\:]+)\:/); + var stormatch = disk.file.match(/^([^:]+):/); if (stormatch) { storage = stormatch[1]; } - eject_params[me.ciDriveId] = 'none,media=cdrom'; - insert_params[me.ciDriveId] = storage + ':cloudinit'; + eject_params[view.ciDriveId] = 'none,media=cdrom'; + insert_params[view.ciDriveId] = storage + ':cloudinit'; var failure = function(response, opts) { Ext.Msg.alert('Error', response.htmlStatus); }; Proxmox.Utils.API2Request({ - url: me.baseurl + '/config', - waitMsgTarget: me, + url: view.baseurl + '/config', + waitMsgTarget: view, method: 'PUT', params: eject_params, failure: failure, callback: function() { Proxmox.Utils.API2Request({ - url: me.baseurl + '/config', - waitMsgTarget: me, + url: view.baseurl + '/config', + waitMsgTarget: view, method: 'PUT', params: insert_params, failure: failure, callback: function() { - me.reload(); - } + view.reload(); + }, }); - } + }, }); - } - } + }, + }, ], border: false, @@ -164,14 +164,14 @@ Ext.define('PVE.qemu.CloudInit', { }, listeners: { - activate: function () { + activate: function() { var me = this; me.rstore.startUpdate(); }, itemdblclick: function() { var me = this; me.run_editor(); - } + }, }, initComponent: function() { @@ -188,12 +188,11 @@ 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 + '/pending'; me.editorConfig.url = me.baseurl + '/config'; me.editorConfig.pveSelNode = me.pveSelNode; - let caps_ci = caps.vms['VM.Config.Cloudinit']; - || caps.vms['VM.Config.Network']; + let caps_ci = caps.vms['VM.Config.Cloudinit'] || caps.vms['VM.Config.Network']; /* editor is string and object */ me.rows = { ciuser: { @@ -210,13 +209,13 @@ Ext.define('PVE.qemu.CloudInit', { deleteEmpty: true, emptyText: Proxmox.Utils.defaultText, fieldLabel: gettext('User'), - name: 'ciuser' - } - ] + name: 'ciuser', + }, + ], } : undefined, renderer: function(value) { return value || Proxmox.Utils.defaultText; - } + }, }, cipassword: { header: gettext('Password'), @@ -232,27 +231,27 @@ Ext.define('PVE.qemu.CloudInit', { deleteEmpty: true, emptyText: Proxmox.Utils.noneText, fieldLabel: gettext('Password'), - name: 'cipassword' - } - ] + name: 'cipassword', + }, + ], } : undefined, renderer: function(value) { return value || Proxmox.Utils.noneText; - } + }, }, searchdomain: { header: gettext('DNS domain'), iconCls: 'fa fa-globe', - editor: caps.vms['VM.Config.Network'] ? 'PVE.lxc.DNSEdit' : undefined, + editor: caps_ci ? 'PVE.lxc.DNSEdit' : undefined, never_delete: true, - defaultValue: gettext('use host settings') + defaultValue: gettext('use host settings'), }, nameserver: { header: gettext('DNS servers'), iconCls: 'fa fa-globe', - editor: caps.vms['VM.Config.Network'] ? 'PVE.lxc.DNSEdit' : undefined, + editor: caps_ci ? 'PVE.lxc.DNSEdit' : undefined, never_delete: true, - defaultValue: gettext('use host settings') + defaultValue: gettext('use host settings'), }, sshkeys: { header: gettext('SSH public key'), @@ -265,13 +264,10 @@ Ext.define('PVE.qemu.CloudInit', { var text = []; keys.forEach(function(key) { if (key.length) { - // First erase all quoted strings (eg. command="foo" - var v = key.replace(/"(?:\\.|[^"\\])*"/g, ''); - // Now try to detect the comment: - var res = v.match(/^\s*(\S+\s+)?(?:ssh-(?:dss|rsa|ed25519)|ecdsa-sha2-nistp\d+)\s+\S+\s+(.*?)\s*$/, ''); + let res = PVE.Parser.parseSSHKey(key); if (res) { - key = Ext.String.htmlEncode(res[2]); - if (res[1]) { + key = Ext.String.htmlEncode(res.comment); + if (res.options) { key += ' (' + gettext('with options') + ')'; } text.push(key); @@ -288,8 +284,8 @@ Ext.define('PVE.qemu.CloudInit', { return Proxmox.Utils.noneText; } }, - defaultValue: '' - } + defaultValue: '', + }, }; var i; var ipconfig_renderer = function(value, md, record, ri, ci, store, pending) { @@ -307,21 +303,21 @@ Ext.define('PVE.qemu.CloudInit', { me.rows['net' + i.toString()] = { multiKey: ['ipconfig' + i.toString(), 'net' + i.toString()], header: gettext('IP Config') + ' (net' + i.toString() +')', - editor: caps.vms['VM.Config.Network'] ? 'PVE.qemu.IPConfigEdit' : undefined, + editor: caps_ci ? 'PVE.qemu.IPConfigEdit' : undefined, iconCls: 'fa fa-exchange', - renderer: ipconfig_renderer + renderer: ipconfig_renderer, }; me.rows['ipconfig' + i.toString()] = { - visible: false + visible: false, }; } PVE.Utils.forEachBus(['ide', 'scsi', 'sata'], function(type, id) { me.rows[type+id] = { - visible: false + visible: false, }; }); me.callParent(); me.mon(me.rstore, 'load', me.set_button_status, me); - } + }, });