From c9e4b2479aea056314b7d016441c44f735f1eceb Mon Sep 17 00:00:00 2001 From: Kris Moore Date: Tue, 2 Feb 2016 11:06:45 -0500 Subject: [PATCH] Add a new API call to "systeminfo" class, which returns information about all processes on the system. The below example was greatly truncated ;) REST Request: ------------------------------- PUT /sysadm/systeminfo { "action" : "procinfo" } REST Response: ------------------------------- { "args": { "procinfo": { "228": { "command": "adjkerntz", "cpu": "3", "nice": "0", "pri": "52", "res": "1968K", "size": "8276K", "state": "pause", "thr": "1", "time": "0:00", "username": "root", "wcpu": "0.00%" } } } } WebSocket Request: ------------------------------- { "id" : "fooid", "namespace" : "sysadm", "name" : "systeminfo", "args" : { "action" : "procinfo" } } WebSocket Response: ------------------------------- { "args": { "procinfo": { "228": { "command": "adjkerntz", "cpu": "3", "nice": "0", "pri": "52", "res": "1968K", "size": "8276K", "state": "pause", "thr": "1", "time": "0:00", "username": "root", "wcpu": "0.00%" } }, "id": "fooid", "name": "response", "namespace": "sysadm" } --- src/server/WebBackend.cpp | 4 +++ src/server/library/sysadm-systeminfo.cpp | 38 ++++++++++++++++++++++++ src/server/library/sysadm-systeminfo.h | 1 + 3 files changed, 43 insertions(+) diff --git a/src/server/WebBackend.cpp b/src/server/WebBackend.cpp index cb8c529..b45ed29 100644 --- a/src/server/WebBackend.cpp +++ b/src/server/WebBackend.cpp @@ -319,6 +319,10 @@ RestOutputStruct::ExitCode WebSocket::EvaluateSysadmSystemInfoRequest(const QJso ok = true; out->insert("memorystats", sysadm::SysInfo::memoryStats()); } + if(act=="procinfo"){ + ok = true; + out->insert("procinfo", sysadm::SysInfo::procInfo()); + } if(act=="systeminfo"){ ok = true; out->insert("systeminfo", sysadm::SysInfo::systemInfo()); diff --git a/src/server/library/sysadm-systeminfo.cpp b/src/server/library/sysadm-systeminfo.cpp index 235da49..9015ec9 100644 --- a/src/server/library/sysadm-systeminfo.cpp +++ b/src/server/library/sysadm-systeminfo.cpp @@ -210,6 +210,44 @@ QJsonObject SysInfo::memoryStats() { return retObject; } +// Return a json list of process information +QJsonObject SysInfo::procInfo() { + QJsonObject retObject; + QStringList output; + output = General::RunCommand("top -t -n all").split("\n"); + bool inSection = false; + for(int i=0; i