mirror of
https://github.com/GNS3/gns3-web-ui.git
synced 2025-03-22 11:35:15 +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);
|
||||
}
|
||||
|
||||
exports.getRunningServers = () => {
|
||||
return Object.keys(runningServers);
|
||||
}
|
||||
|
||||
function getServerArguments(server, overrides) {
|
||||
let serverArguments = [];
|
||||
return serverArguments;
|
||||
@ -81,18 +85,26 @@ async function stop(serverName) {
|
||||
const stopped = new Promise((resolve, reject) => {
|
||||
if(pid === undefined) {
|
||||
resolve(`Server '${serverName} is already stopped`);
|
||||
delete runningServers[serverName];
|
||||
return;
|
||||
}
|
||||
|
||||
kill(pid, (error) => {
|
||||
if(error) {
|
||||
console.error(`Error occured during stopping '${serverName}' with PID='${pid}'`);
|
||||
reject(error);
|
||||
}
|
||||
else {
|
||||
console.log(`Stopped '${serverName}' with PID='${pid}'`);
|
||||
resolve(`Stopped '${serverName}' with PID='${pid}'`);
|
||||
}
|
||||
if(error) {
|
||||
console.error(`Error occured during stopping '${serverName}' with PID='${pid}'`);
|
||||
reject(error);
|
||||
}
|
||||
else {
|
||||
delete runningServers[serverName];
|
||||
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) => {
|
||||
notifyStatus({
|
||||
serverName: server.name,
|
||||
status: 'errored',
|
||||
message: `Server '${server.name}' has exited with status='${code}'`
|
||||
});
|
||||
if(code > 0) {
|
||||
notifyStatus({
|
||||
serverName: server.name,
|
||||
status: 'errored',
|
||||
message: `Server '${server.name}' has exited with status='${code}'`
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
serverProcess.on('error', (err) => {
|
||||
|
@ -30,7 +30,15 @@ export class ServersComponent implements OnInit, OnDestroy {
|
||||
) {}
|
||||
|
||||
ngOnInit() {
|
||||
const runningServersNames = this.serverManagement.getRunningServers();
|
||||
|
||||
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);
|
||||
});
|
||||
|
||||
|
@ -36,6 +36,10 @@ export class ServerManagementService implements OnDestroy {
|
||||
await this.electronService.remote.require('./local-server.js').stopLocalServer(server);
|
||||
}
|
||||
|
||||
getRunningServers() {
|
||||
return this.electronService.remote.require('./local-server.js').getRunningServers();
|
||||
}
|
||||
|
||||
ngOnDestroy() {
|
||||
if(this.electronService.isElectronApp) {
|
||||
this.electronService.ipcRenderer.removeAllListeners(this.statusChannel);
|
||||
|
Loading…
x
Reference in New Issue
Block a user