diff --git a/src/app/cartography/models/node.ts b/src/app/cartography/models/node.ts
index 8bef9b6a..c422e428 100644
--- a/src/app/cartography/models/node.ts
+++ b/src/app/cartography/models/node.ts
@@ -14,6 +14,7 @@ export class Properties {
headless: boolean;
linked_clone: boolean;
on_close: string;
+ aux: number;
ram: number;
nvram: number;
usage: string;
diff --git a/src/app/components/project-map/context-menu/actions/console-device-action-browser/console-device-action-browser.component.html b/src/app/components/project-map/context-menu/actions/console-device-action-browser/console-device-action-browser.component.html
index 15f3f924..6faeccf9 100644
--- a/src/app/components/project-map/context-menu/actions/console-device-action-browser/console-device-action-browser.component.html
+++ b/src/app/components/project-map/context-menu/actions/console-device-action-browser/console-device-action-browser.component.html
@@ -2,3 +2,11 @@
web_asset
Console
+
diff --git a/src/app/components/project-map/context-menu/actions/console-device-action-browser/console-device-action-browser.component.ts b/src/app/components/project-map/context-menu/actions/console-device-action-browser/console-device-action-browser.component.ts
index c521be41..1f01294a 100644
--- a/src/app/components/project-map/context-menu/actions/console-device-action-browser/console-device-action-browser.component.ts
+++ b/src/app/components/project-map/context-menu/actions/console-device-action-browser/console-device-action-browser.component.ts
@@ -18,14 +18,14 @@ export class ConsoleDeviceActionBrowserComponent {
constructor(private toasterService: ToasterService, private nodeService: NodeService, private protocolHandlerService: ProtocolHandlerService) {}
- openConsole() {
+ openConsole(auxiliary: boolean = false) {
this.nodeService.getNode(this.server, this.node).subscribe((node: Node) => {
this.node = node;
- this.startConsole();
+ this.startConsole(auxiliary);
});
}
- startConsole() {
+ startConsole(auxiliary: boolean) {
if (this.node.status !== 'started') {
this.toasterService.error('This node must be started before a console can be opened');
} else {
@@ -44,7 +44,18 @@ export class ConsoleDeviceActionBrowserComponent {
host = `[${host}]`;
}
if (this.node.console_type === 'telnet') {
- uri = `gns3+telnet://${host}:${this.node.console}?name=${this.node.name}&project_id=${this.node.project_id}&node_id=${this.node.node_id}`;
+
+ var console_port;
+ if (auxiliary === true) {
+ console_port = this.node.properties.aux;
+ if (console_port === undefined) {
+ this.toasterService.error('Auxiliary console port is not set.');
+ return;
+ }
+ } else {
+ console_port = this.node.console;
+ }
+ uri = `gns3+telnet://${host}:${console_port}?name=${this.node.name}&project_id=${this.node.project_id}&node_id=${this.node.node_id}`;
} else if (this.node.console_type === 'vnc') {
uri = `gns3+vnc://${host}:${this.node.console}?name=${this.node.name}&project_id=${this.node.project_id}&node_id=${this.node.node_id}`;
} else if (this.node.console_type.startsWith('spice')) {
@@ -54,6 +65,7 @@ export class ConsoleDeviceActionBrowserComponent {
return window.open(uri); // open an http console directly in a new window/tab
} else {
this.toasterService.error('Supported console types are: telnet, vnc, spice and spice+agent.');
+ return;
}
this.protocolHandlerService.open(uri);