mirror of
https://github.com/GNS3/gns3-web-ui.git
synced 2025-06-01 15:00:49 +00:00
Update status of server when is already running
This commit is contained in:
parent
af90fe46d0
commit
6759568933
@ -47,6 +47,10 @@ exports.stopLocalServer = async (server) => {
|
|||||||
return await stop(server.name);
|
return await stop(server.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exports.getRunningServers = () => {
|
||||||
|
return Object.keys(runningServers);
|
||||||
|
}
|
||||||
|
|
||||||
function getServerArguments(server, overrides) {
|
function getServerArguments(server, overrides) {
|
||||||
let serverArguments = [];
|
let serverArguments = [];
|
||||||
return serverArguments;
|
return serverArguments;
|
||||||
@ -81,18 +85,26 @@ async function stop(serverName) {
|
|||||||
const stopped = new Promise((resolve, reject) => {
|
const stopped = new Promise((resolve, reject) => {
|
||||||
if(pid === undefined) {
|
if(pid === undefined) {
|
||||||
resolve(`Server '${serverName} is already stopped`);
|
resolve(`Server '${serverName} is already stopped`);
|
||||||
|
delete runningServers[serverName];
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
kill(pid, (error) => {
|
kill(pid, (error) => {
|
||||||
if(error) {
|
if(error) {
|
||||||
console.error(`Error occured during stopping '${serverName}' with PID='${pid}'`);
|
console.error(`Error occured during stopping '${serverName}' with PID='${pid}'`);
|
||||||
reject(error);
|
reject(error);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
console.log(`Stopped '${serverName}' with PID='${pid}'`);
|
delete runningServers[serverName];
|
||||||
resolve(`Stopped '${serverName}' with PID='${pid}'`);
|
console.log(`Stopped '${serverName}' with PID='${pid}'`);
|
||||||
}
|
resolve(`Stopped '${serverName}' with PID='${pid}'`);
|
||||||
|
|
||||||
|
notifyStatus({
|
||||||
|
serverName: serverName,
|
||||||
|
status: 'stopped',
|
||||||
|
message: `Server '${serverName}' stopped'`
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -134,11 +146,13 @@ async function run(server, options) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
serverProcess.on('exit', (code, signal) => {
|
serverProcess.on('exit', (code, signal) => {
|
||||||
notifyStatus({
|
if(code > 0) {
|
||||||
serverName: server.name,
|
notifyStatus({
|
||||||
status: 'errored',
|
serverName: server.name,
|
||||||
message: `Server '${server.name}' has exited with status='${code}'`
|
status: 'errored',
|
||||||
});
|
message: `Server '${server.name}' has exited with status='${code}'`
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
serverProcess.on('error', (err) => {
|
serverProcess.on('error', (err) => {
|
||||||
|
@ -30,7 +30,15 @@ export class ServersComponent implements OnInit, OnDestroy {
|
|||||||
) {}
|
) {}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
|
const runningServersNames = this.serverManagement.getRunningServers();
|
||||||
|
|
||||||
this.serverService.findAll().then((servers: Server[]) => {
|
this.serverService.findAll().then((servers: Server[]) => {
|
||||||
|
servers.forEach((server) => {
|
||||||
|
const serverIndex = runningServersNames.findIndex((serverName) => server.name === serverName);
|
||||||
|
if(serverIndex >= 0) {
|
||||||
|
server.status = 'running';
|
||||||
|
}
|
||||||
|
});
|
||||||
this.serverDatabase.addServers(servers);
|
this.serverDatabase.addServers(servers);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -36,6 +36,10 @@ export class ServerManagementService implements OnDestroy {
|
|||||||
await this.electronService.remote.require('./local-server.js').stopLocalServer(server);
|
await this.electronService.remote.require('./local-server.js').stopLocalServer(server);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getRunningServers() {
|
||||||
|
return this.electronService.remote.require('./local-server.js').getRunningServers();
|
||||||
|
}
|
||||||
|
|
||||||
ngOnDestroy() {
|
ngOnDestroy() {
|
||||||
if(this.electronService.isElectronApp) {
|
if(this.electronService.isElectronApp) {
|
||||||
this.electronService.ipcRenderer.removeAllListeners(this.statusChannel);
|
this.electronService.ipcRenderer.removeAllListeners(this.statusChannel);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user