minor changes

This commit is contained in:
subhra74 2019-07-17 07:11:49 +02:00
parent 83145930cb
commit d12d94cf22
3 changed files with 52 additions and 5 deletions

View File

@ -82,6 +82,17 @@ public class SystemHealthMonitor {
return stats; return stats;
} }
private String formatCmd(String args) {
StringBuilder sb = new StringBuilder();
for (char ch : args.toCharArray()) {
if (ch == 0) {
sb.append(" ");
}
sb.append(ch);
}
return sb.toString();
}
public synchronized List<ProcessInfo> getProcessList() { public synchronized List<ProcessInfo> getProcessList() {
OSProcess[] procs = os.getProcesses(0, null, false); OSProcess[] procs = os.getProcesses(0, null, false);
List<ProcessInfo> list = new ArrayList<>(); List<ProcessInfo> list = new ArrayList<>();

View File

@ -1,5 +1,10 @@
<div <div
style="height: calc(100vh - 55px); width: 100vw; display: flex; flex-direction: column; position: fixed; top: 55px; left: 0px; background: white; z-index: 10;"> style="height: calc(100vh - 55px); width: 100vw; display: flex; flex-direction: column; position: fixed; top: 55px; left: 0px; background: white; z-index: 10;">
<div *ngIf="message" (click)="message=null" style="cursor: pointer;;padding: 10px; position: absolute; z-index: 255; top: 20px; right: 20px; opacity: 0.78; width: 250px; border-radius: 10px; box-shadow: 2px 2px 15px 5px black ;" [style.background]="error?'darkred':'green'">
<span style="color: white;">
{{message}}
</span>
</div>
<div style="display: flex; justify-content: space-around; flex-wrap: wrap; padding: 20px;"> <div style="display: flex; justify-content: space-around; flex-wrap: wrap; padding: 20px;">
<div> <div>
<div style="text-align: center; padding: 10px; font-size: 20px;"> <div style="text-align: center; padding: 10px; font-size: 20px;">
@ -135,3 +140,9 @@
</table> </table>
</div> </div>
</div> </div>
<div *ngIf="loading" style="height: calc(100vh - 55px); width: 100vw; display: flex; flex-direction: column; position: fixed; top: 55px; left: 0px; background: rgba(0,0,0,0.1); z-index: 101; justify-content: center; align-items: center;">
<div class="spinner-border text-primary" style="width: 5rem; height: 5rem; font-size: 30px;" role="status">
<span class="sr-only">Loading...</span>
</div>
</div>

View File

@ -1,4 +1,4 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit, OnDestroy } from '@angular/core';
import { ChartType, ChartOptions } from 'chart.js'; import { ChartType, ChartOptions } from 'chart.js';
import { MultiDataSet, Label, Colors, Color } from 'ng2-charts'; import { MultiDataSet, Label, Colors, Color } from 'ng2-charts';
import { DataService } from 'src/app/data.service'; import { DataService } from 'src/app/data.service';
@ -12,7 +12,7 @@ import { utility } from '../../utility/utils';
'(window:resize)': 'onResize($event)' '(window:resize)': 'onResize($event)'
} }
}) })
export class MonitoringComponent implements OnInit { export class MonitoringComponent implements OnInit, OnDestroy {
public doughnutChartLabels: Label[] = ['Used', 'Free']; public doughnutChartLabels: Label[] = ['Used', 'Free'];
public colors: Color[] = [ public colors: Color[] = [
@ -54,6 +54,9 @@ export class MonitoringComponent implements OnInit {
searchText: string; searchText: string;
sortingField: number = -1; sortingField: number = -1;
sortAsc: boolean; sortAsc: boolean;
loading: boolean;
message: string;
error: boolean;
constructor(private service: DataService) { } constructor(private service: DataService) { }
@ -65,13 +68,25 @@ export class MonitoringComponent implements OnInit {
}, 5000); }, 5000);
} }
ngOnDestroy() {
if (this.timer) {
clearInterval(this.timer);
}
}
public getProcStats() { public getProcStats() {
this.loading = true;
this.service.getProcessList().subscribe((resp: any[]) => { this.service.getProcessList().subscribe((resp: any[]) => {
this.processList = resp; this.processList = resp;
for (let proc of this.processList) { for (let proc of this.processList) {
proc.selected = false; proc.selected = false;
} }
this.filterProcesses(); this.filterProcesses();
this.loading = false;
}, err => {
this.loading = false;
this.message = "Unable to get process details";
this.error = true;
}); });
} }
@ -87,12 +102,22 @@ export class MonitoringComponent implements OnInit {
return; return;
} }
this.loading = true;
this.service.killProcesses(pids).subscribe((resp: any) => { this.service.killProcesses(pids).subscribe((resp: any) => {
if (!resp.success) { if (!resp.success) {
alert("Failed to kill"); //alert("Failed to kill");
this.message = "Failed to kill one or more selected processes";
this.error = true;
this.loading = false;
} else { } else {
this.message = "Selected processes are killed successfully";
this.error = false;
this.getProcStats(); this.getProcStats();
} }
}, err => {
this.message = "Failed to kill one or more selected processes";
this.error = true;
this.loading = false;
}) })
} }