diff --git a/src/app/components/project-map/project-map.component.ts b/src/app/components/project-map/project-map.component.ts
index 8dffbcf4..075d0150 100644
--- a/src/app/components/project-map/project-map.component.ts
+++ b/src/app/components/project-map/project-map.component.ts
@@ -158,7 +158,7 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
this.subscriptions.push(
this.nodesDataSource.changes.subscribe((nodes: Node[]) => {
nodes.forEach((node: Node) => {
- node.symbol_url = `http://${this.server.ip}:${this.server.port}/v2/symbols/${node.symbol}/raw`;
+ node.symbol_url = `http://${this.server.host}:${this.server.port}/v2/symbols/${node.symbol}/raw`;
});
this.nodes = nodes;
diff --git a/src/app/components/projects/add-blank-project-dialog/add-blank-project-dialog.component.spec.ts b/src/app/components/projects/add-blank-project-dialog/add-blank-project-dialog.component.spec.ts
index 22ee843e..3ed7d6fd 100644
--- a/src/app/components/projects/add-blank-project-dialog/add-blank-project-dialog.component.spec.ts
+++ b/src/app/components/projects/add-blank-project-dialog/add-blank-project-dialog.component.spec.ts
@@ -87,7 +87,7 @@ describe('AddBlankProjectDialogComponent', () => {
}).compileComponents();
server = new Server();
- server.ip = 'localhost';
+ server.host = 'localhost';
server.port = 80;
}));
diff --git a/src/app/components/projects/import-project-dialog/import-project-dialog.component.spec.ts b/src/app/components/projects/import-project-dialog/import-project-dialog.component.spec.ts
index 528c0549..bef5f1b9 100644
--- a/src/app/components/projects/import-project-dialog/import-project-dialog.component.spec.ts
+++ b/src/app/components/projects/import-project-dialog/import-project-dialog.component.spec.ts
@@ -80,7 +80,7 @@ describe('ImportProjectDialogComponent', () => {
}).compileComponents();
server = new Server();
- server.ip = 'localhost';
+ server.host = 'localhost';
server.port = 80;
}));
diff --git a/src/app/components/projects/import-project-dialog/import-project-dialog.component.ts b/src/app/components/projects/import-project-dialog/import-project-dialog.component.ts
index f8165314..59ad09ee 100644
--- a/src/app/components/projects/import-project-dialog/import-project-dialog.component.ts
+++ b/src/app/components/projects/import-project-dialog/import-project-dialog.component.ts
@@ -138,6 +138,6 @@ export class ImportProjectDialogComponent implements OnInit {
prepareUploadPath(): string {
const projectName = this.projectNameForm.controls['projectName'].value;
- return `http://${this.server.ip}:${this.server.port}/v2/projects/${uuid()}/import?name=${projectName}`;
+ return `http://${this.server.host}:${this.server.port}/v2/projects/${uuid()}/import?name=${projectName}`;
}
}
diff --git a/src/app/components/servers/add-server-dialog.html b/src/app/components/servers/add-server-dialog.html
index e4ee5378..a4999abb 100644
--- a/src/app/components/servers/add-server-dialog.html
+++ b/src/app/components/servers/add-server-dialog.html
@@ -1,7 +1,14 @@
Add server
-
+
+
+
+ {{ location.name }}
+
+
+
+
diff --git a/src/app/components/servers/server-discovery/server-discovery.component.html b/src/app/components/servers/server-discovery/server-discovery.component.html
index 95343b8f..22a35723 100644
--- a/src/app/components/servers/server-discovery/server-discovery.component.html
+++ b/src/app/components/servers/server-discovery/server-discovery.component.html
@@ -1,6 +1,6 @@
- We've discovered GNS3 server on {{ discoveredServer.ip }}:{{ discoveredServer.port }}{{ discoveredServer.host }}:{{ discoveredServer.port }}, would you like to add to the list?
diff --git a/src/app/components/servers/server-discovery/server-discovery.component.spec.ts b/src/app/components/servers/server-discovery/server-discovery.component.spec.ts
index cf4c253b..0564bcfc 100644
--- a/src/app/components/servers/server-discovery/server-discovery.component.spec.ts
+++ b/src/app/components/servers/server-discovery/server-discovery.component.spec.ts
@@ -55,12 +55,12 @@ describe('ServerDiscoveryComponent', () => {
const getVersionSpy = spyOn(mockedVersionService, 'get').and.returnValue(Observable.of(version));
component.isServerAvailable('127.0.0.1', 3080).subscribe(s => {
- expect(s.ip).toEqual('127.0.0.1');
+ expect(s.host).toEqual('127.0.0.1');
expect(s.port).toEqual(3080);
});
const server = new Server();
- server.ip = '127.0.0.1';
+ server.host = '127.0.0.1';
server.port = 3080;
expect(getVersionSpy).toHaveBeenCalledWith(server);
@@ -68,7 +68,7 @@ describe('ServerDiscoveryComponent', () => {
it('should throw error once server is not available', () => {
const server = new Server();
- server.ip = '127.0.0.1';
+ server.host = '127.0.0.1';
server.port = 3080;
const getVersionSpy = spyOn(mockedVersionService, 'get').and.returnValue(
@@ -96,13 +96,13 @@ describe('ServerDiscoveryComponent', () => {
spyOn(component, 'isServerAvailable').and.callFake((ip, port) => {
const server = new Server();
- server.ip = ip;
+ server.host = ip;
server.port = port;
return Observable.of(server);
});
component.discovery().subscribe(discovered => {
- expect(discovered[0].ip).toEqual('127.0.0.1');
+ expect(discovered[0].host).toEqual('127.0.0.1');
expect(discovered[0].port).toEqual(3080);
expect(discovered.length).toEqual(1);
@@ -117,7 +117,7 @@ describe('ServerDiscoveryComponent', () => {
beforeEach(function() {
server = new Server();
- (server.ip = '199.111.111.1'), (server.port = 3333);
+ (server.host = '199.111.111.1'), (server.port = 3333);
spyOn(component, 'discovery').and.callFake(() => {
return Observable.of([server]);
@@ -128,7 +128,7 @@ describe('ServerDiscoveryComponent', () => {
expect(component.discoveredServer).toBeUndefined();
component.discoverFirstAvailableServer();
tick();
- expect(component.discoveredServer.ip).toEqual('199.111.111.1');
+ expect(component.discoveredServer.host).toEqual('199.111.111.1');
expect(component.discoveredServer.port).toEqual(3333);
}));
@@ -146,7 +146,7 @@ describe('ServerDiscoveryComponent', () => {
let server: Server;
beforeEach(() => {
server = new Server();
- (server.ip = '199.111.111.1'), (server.port = 3333);
+ (server.host = '199.111.111.1'), (server.port = 3333);
component.discoveredServer = server;
});
@@ -155,7 +155,7 @@ describe('ServerDiscoveryComponent', () => {
component.accept(server);
tick();
expect(component.discoveredServer).toBeNull();
- expect(mockedServerService.servers[0].ip).toEqual('199.111.111.1');
+ expect(mockedServerService.servers[0].host).toEqual('199.111.111.1');
expect(mockedServerService.servers[0].name).toEqual('199.111.111.1');
expect(mockedServerService.servers[0].location).toEqual('remote');
}));
diff --git a/src/app/components/servers/server-discovery/server-discovery.component.ts b/src/app/components/servers/server-discovery/server-discovery.component.ts
index 6b1cf10d..da682fca 100644
--- a/src/app/components/servers/server-discovery/server-discovery.component.ts
+++ b/src/app/components/servers/server-discovery/server-discovery.component.ts
@@ -18,7 +18,7 @@ import { ServerDatabase } from '../../../services/server.database';
export class ServerDiscoveryComponent implements OnInit {
private defaultServers = [
{
- ip: '127.0.0.1',
+ host: '127.0.0.1',
port: 3080
}
];
@@ -42,7 +42,7 @@ export class ServerDiscoveryComponent implements OnInit {
).subscribe(([local, discovered]) => {
local.forEach(added => {
discovered = discovered.filter(server => {
- return !(server.ip == added.ip && server.port == added.port);
+ return !(server.host == added.host && server.port == added.port);
});
});
if (discovered.length > 0) {
@@ -56,7 +56,7 @@ export class ServerDiscoveryComponent implements OnInit {
this.defaultServers.forEach(testServer => {
queries.push(
- this.isServerAvailable(testServer.ip, testServer.port).catch(err => {
+ this.isServerAvailable(testServer.host, testServer.port).catch(err => {
return Observable.of(null);
})
);
@@ -72,7 +72,7 @@ export class ServerDiscoveryComponent implements OnInit {
isServerAvailable(ip: string, port: number): Observable {
const server = new Server();
- server.ip = ip;
+ server.host = ip;
server.port = port;
return this.versionService.get(server).flatMap((version: Version) => Observable.of(server));
}
@@ -83,7 +83,7 @@ export class ServerDiscoveryComponent implements OnInit {
accept(server: Server) {
if (server.name == null) {
- server.name = server.ip;
+ server.name = server.host;
}
server.location = 'remote';
diff --git a/src/app/components/servers/servers.component.html b/src/app/components/servers/servers.component.html
index 2a6d868e..806475a5 100644
--- a/src/app/components/servers/servers.component.html
+++ b/src/app/components/servers/servers.component.html
@@ -17,9 +17,14 @@
>
+
+ Location
+ {{ row.location }}
+
+
- IP
- {{ row.ip }}
+ Host
+ {{ row.host }}
diff --git a/src/app/components/servers/servers.component.ts b/src/app/components/servers/servers.component.ts
index 3bce6ae0..681ded09 100644
--- a/src/app/components/servers/servers.component.ts
+++ b/src/app/components/servers/servers.component.ts
@@ -8,6 +8,7 @@ import { map } from 'rxjs/operators';
import { Server } from '../../models/server';
import { ServerService } from '../../services/server.service';
import { ServerDatabase } from '../../services/server.database';
+import { ElectronService } from 'ngx-electron';
@Component({
selector: 'app-server-list',
@@ -16,7 +17,7 @@ import { ServerDatabase } from '../../services/server.database';
})
export class ServersComponent implements OnInit {
dataSource: ServerDataSource;
- displayedColumns = ['id', 'name', 'ip', 'port', 'actions'];
+ displayedColumns = ['id', 'name', 'location', 'ip', 'port', 'actions'];
constructor(
private dialog: MatDialog,
@@ -61,11 +62,34 @@ export class AddServerDialogComponent implements OnInit {
server: Server = new Server();
authorizations = [{ key: 'none', name: 'No authorization' }, { key: 'basic', name: 'Basic authorization' }];
+ locations = [];
- constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) {}
+ constructor(
+ public dialogRef: MatDialogRef,
+ private electronService: ElectronService,
+ @Inject(MAT_DIALOG_DATA) public data: any,
+ ) {}
+
+ getLocations() {
+ let locations = [];
+ if(this.electronService.isElectronApp) {
+ locations.push({ key: 'local', name: 'Local' });
+ }
+ locations.push({ key: 'remote', name: 'Remote' });
+ return locations
+ }
+
+ getDefaultLocation() {
+ if(this.electronService.isElectronApp) {
+ return 'local';
+ }
+ return 'remote';
+ }
ngOnInit() {
+ this.locations = this.getLocations();
this.server.authorization = 'none';
+ this.server.location = this.getDefaultLocation();
}
onAddClick(): void {
diff --git a/src/app/models/server.ts b/src/app/models/server.ts
index d3ef061b..93894147 100644
--- a/src/app/models/server.ts
+++ b/src/app/models/server.ts
@@ -1,10 +1,13 @@
export type ServerAuthorization = 'basic' | 'none';
+export type ServerLocation = 'local' | 'remote';
export class Server {
id: number;
name: string;
- ip: string;
+ location: ServerLocation;
+ host: string;
port: number;
+ path: string;
authorization: ServerAuthorization;
login: string;
password: string;
diff --git a/src/app/services/http-server.service.spec.ts b/src/app/services/http-server.service.spec.ts
index 9eaccc3f..52f8d0b4 100644
--- a/src/app/services/http-server.service.spec.ts
+++ b/src/app/services/http-server.service.spec.ts
@@ -218,7 +218,7 @@ describe('HttpServer', () => {
});
it('should make local call when ip and port is not defined', () => {
- server.ip = null;
+ server.host = null;
server.port = null;
service
diff --git a/src/app/services/http-server.service.ts b/src/app/services/http-server.service.ts
index 9a04024b..a32df1e8 100644
--- a/src/app/services/http-server.service.ts
+++ b/src/app/services/http-server.service.ts
@@ -164,8 +164,8 @@ export class HttpServer {
}
private getOptionsForServer(server: Server, url: string, options: T) {
- if (server.ip && server.port) {
- url = `http://${server.ip}:${server.port}/v2${url}`;
+ if (server.host && server.port) {
+ url = `http://${server.host}:${server.port}/v2${url}`;
} else {
url = `/v2${url}`;
}
diff --git a/src/app/services/project.service.ts b/src/app/services/project.service.ts
index 0724b726..4ca87f98 100644
--- a/src/app/services/project.service.ts
+++ b/src/app/services/project.service.ts
@@ -50,7 +50,7 @@ export class ProjectService {
}
notificationsPath(server: Server, project_id: string): string {
- return `ws://${server.ip}:${server.port}/v2/projects/${project_id}/notifications/ws`;
+ return `ws://${server.host}:${server.port}/v2/projects/${project_id}/notifications/ws`;
}
isReadOnly(project: Project) {
diff --git a/src/app/services/server.service.spec.ts b/src/app/services/server.service.spec.ts
index 28e4bd56..2b19f976 100644
--- a/src/app/services/server.service.spec.ts
+++ b/src/app/services/server.service.spec.ts
@@ -149,7 +149,7 @@ describe('ServerService', () => {
const expectedServer = new Server();
expectedServer.name = 'local';
- expectedServer.ip = 'hostname';
+ expectedServer.host = 'hostname';
expectedServer.port = 9999;
expectedServer.is_local = true;
@@ -162,7 +162,7 @@ describe('ServerService', () => {
it('should update local server when found', done => {
const server = new Server();
server.name = 'local';
- server.ip = 'hostname';
+ server.host = 'hostname';
server.port = 9999;
server.is_local = true;
@@ -170,7 +170,7 @@ describe('ServerService', () => {
spyOn(service, 'update').and.returnValue(Promise.resolve(new Server()));
service.getLocalServer('hostname-2', 11111).then(() => {
- server.ip = 'hostname-2';
+ server.host = 'hostname-2';
server.port = 11111;
expect(service.update).toHaveBeenCalledWith(server);
diff --git a/src/app/services/server.service.ts b/src/app/services/server.service.ts
index e1ac7e2e..2aed4eeb 100644
--- a/src/app/services/server.service.ts
+++ b/src/app/services/server.service.ts
@@ -55,12 +55,12 @@ export class ServerService {
return this.onReady(() => this.indexedDbService.get().delete(this.tablename, server.id));
}
- public getLocalServer(ip: string, port: number) {
+ public getLocalServer(host: string, port: number) {
const promise = new Promise((resolve, reject) => {
this.findAll().then((servers: Server[]) => {
const local = servers.find(server => server.is_local);
if (local) {
- local.ip = ip;
+ local.host = host;
local.port = port;
this.update(local).then(updated => {
resolve(updated);
@@ -68,7 +68,7 @@ export class ServerService {
} else {
const server = new Server();
server.name = 'local';
- server.ip = ip;
+ server.host = host;
server.port = port;
server.is_local = true;
this.create(server).then(created => {
diff --git a/src/app/services/template.service.spec.ts b/src/app/services/template.service.spec.ts
index ac767d33..af1357ff 100644
--- a/src/app/services/template.service.spec.ts
+++ b/src/app/services/template.service.spec.ts
@@ -29,7 +29,7 @@ describe('TemplateService', () => {
it('should ask for the list from server', () => {
const server = new Server();
- server.ip = '127.0.0.1';
+ server.host = '127.0.0.1';
server.port = 3080;
server.authorization = 'none';
diff --git a/src/app/services/testing.ts b/src/app/services/testing.ts
index 14b4e03f..8fb0792c 100644
--- a/src/app/services/testing.ts
+++ b/src/app/services/testing.ts
@@ -2,7 +2,7 @@ import { Server } from '../models/server';
export function getTestServer(): Server {
const server = new Server();
- server.ip = '127.0.0.1';
+ server.host = '127.0.0.1';
server.port = 3080;
server.authorization = 'none';
return server;