[pve-devel] [PATCH manager 3/4] added new parameter to pass a command to the newly opened terminal

Tim Marx t.marx at proxmox.com
Thu Jan 10 13:54:32 CET 2019


Signed-off-by: Tim Marx <t.marx at proxmox.com>
---
 www/manager6/Utils.js                | 21 +++++++++++++--------
 www/manager6/button/ConsoleButton.js | 12 +++++++-----
 2 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js
index a190a7ab..39f9a402 100644
--- a/www/manager6/Utils.js
+++ b/www/manager6/Utils.js
@@ -817,12 +817,12 @@ Ext.define('PVE.Utils', { utilities: {
             function(m, addr, offset, original) { return addr; });
     },
 
-    openDefaultConsoleWindow: function(consoles, vmtype, vmid, nodename, vmname) {
+    openDefaultConsoleWindow: function(consoles, vmtype, vmid, nodename, vmname, cmd) {
 	var dv = PVE.Utils.defaultViewer(consoles);
-	PVE.Utils.openConsoleWindow(dv, vmtype, vmid, nodename, vmname);
+	PVE.Utils.openConsoleWindow(dv, vmtype, vmid, nodename, vmname, cmd);
     },
 
-    openConsoleWindow: function(viewer, vmtype, vmid, nodename, vmname) {
+    openConsoleWindow: function(viewer, vmtype, vmid, nodename, vmname, cmd) {
 	// kvm, lxc, shell, upgrade
 
 	if (vmid == undefined && (vmtype === 'kvm' || vmtype === 'lxc')) {
@@ -834,9 +834,9 @@ Ext.define('PVE.Utils', { utilities: {
 	}
 
 	if (viewer === 'html5') {
-	    PVE.Utils.openVNCViewer(vmtype, vmid, nodename, vmname);
+	    PVE.Utils.openVNCViewer(vmtype, vmid, nodename, vmname, cmd);
 	} else if (viewer === 'xtermjs') {
-	    Proxmox.Utils.openXtermJsViewer(vmtype, vmid, nodename, vmname);
+	    Proxmox.Utils.openXtermJsViewer(vmtype, vmid, nodename, vmname, cmd);
 	} else if (viewer === 'vv') {
 	    var url;
 	    var params = { proxy: PVE.Utils.windowHostname() };
@@ -853,6 +853,10 @@ Ext.define('PVE.Utils', { utilities: {
 		url = '/nodes/' + nodename + '/spiceshell';
 		params.upgrade = 1;
 		PVE.Utils.openSpiceViewer(url, params);
+	    } else if (vmtype === 'cmd') {
+		url = '/nodes/' + nodename + '/spiceshell';
+		params.cmd = cmd;
+		PVE.Utils.openSpiceViewer(url, params);
 	    }
 	} else {
 	    throw "unknown viewer type";
@@ -879,14 +883,15 @@ Ext.define('PVE.Utils', { utilities: {
 	return dv;
     },
 
-    openVNCViewer: function(vmtype, vmid, nodename, vmname) {
-	var url = Ext.urlEncode({
+    openVNCViewer: function(vmtype, vmid, nodename, vmname, cmd) {
+	var url = Ext.Object.toQueryString({
 	    console: vmtype, // kvm, lxc, upgrade or shell
 	    novnc: 1,
 	    vmid: vmid,
 	    vmname: vmname,
 	    node: nodename,
-	    resize: 'off'
+	    resize: 'off',
+	    cmd: cmd
 	});
 	var nw = window.open("?" + url, '_blank', "innerWidth=745,innerheight=427");
 	nw.focus();
diff --git a/www/manager6/button/ConsoleButton.js b/www/manager6/button/ConsoleButton.js
index d825e1fb..0451bf59 100644
--- a/www/manager6/button/ConsoleButton.js
+++ b/www/manager6/button/ConsoleButton.js
@@ -2,7 +2,9 @@ Ext.define('PVE.button.ConsoleButton', {
     extend: 'Ext.button.Split',
     alias: 'widget.pveConsoleButton',
 
-    consoleType: 'shell', // one of 'shell', 'kvm', 'lxc', 'upgrade'
+    consoleType: 'shell', // one of 'shell', 'kvm', 'lxc', 'upgrade', 'cmd'
+
+    cmd: undefined,
 
     consoleName: undefined,
 
@@ -38,7 +40,7 @@ Ext.define('PVE.button.ConsoleButton', {
 	    xtermjs: me.enableXtermjs
 	};
 	PVE.Utils.openDefaultConsoleWindow(consoles, me.consoleType, me.vmid,
-					   me.nodename, me.consoleName);
+					   me.nodename, me.consoleName, me.cmd);
     },
 
     menu: [
@@ -49,7 +51,7 @@ Ext.define('PVE.button.ConsoleButton', {
 	    type: 'html5',
 	    handler: function(button) {
 		var me = this.up('button');
-		PVE.Utils.openConsoleWindow(button.type, me.consoleType, me.vmid, me.nodename, me.consoleName);
+		PVE.Utils.openConsoleWindow(button.type, me.consoleType, me.vmid, me.nodename, me.consoleName, me.cmd);
 	    }
 	},
 	{
@@ -60,7 +62,7 @@ Ext.define('PVE.button.ConsoleButton', {
 	    iconCls: 'pve-itype-icon-virt-viewer',
 	    handler: function(button) {
 		var me = this.up('button');
-		PVE.Utils.openConsoleWindow(button.type, me.consoleType, me.vmid, me.nodename, me.consoleName);
+		PVE.Utils.openConsoleWindow(button.type, me.consoleType, me.vmid, me.nodename, me.consoleName, me.cmd);
 	    }
 	},
 	{
@@ -70,7 +72,7 @@ Ext.define('PVE.button.ConsoleButton', {
 	    type: 'xtermjs',
 	    handler: function(button) {
 		var me = this.up('button');
-		PVE.Utils.openConsoleWindow(button.type, me.consoleType, me.vmid, me.nodename, me.consoleName);
+		PVE.Utils.openConsoleWindow(button.type, me.consoleType, me.vmid, me.nodename, me.consoleName, me.cmd);
 	    }
 	}
     ],
-- 
2.11.0




More information about the pve-devel mailing list