From 4ebced562216c6fc1f57d89114d045a459bc78bf Mon Sep 17 00:00:00 2001 From: Joe Maloney Date: Thu, 12 Jan 2017 12:00:09 -0500 Subject: [PATCH 1/2] Use supervise-daemon for sysadm --- port-files/files/sysadm-bridge.in | 2 +- port-files/files/sysadm-rest.in | 2 +- port-files/files/sysadm.in | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/port-files/files/sysadm-bridge.in b/port-files/files/sysadm-bridge.in index 35b3efb..bb607c1 100755 --- a/port-files/files/sysadm-bridge.in +++ b/port-files/files/sysadm-bridge.in @@ -12,7 +12,7 @@ depend() { start() { ebegin "Starting $name" - start-stop-daemon --start -m -b -p /var/run/sysadm-bridge.pid \ + supervise-daemon --start -p /var/run/sysadm-bridge.pid \ %%PREFIX%%/bin/sysadm-bridge eend $? } diff --git a/port-files/files/sysadm-rest.in b/port-files/files/sysadm-rest.in index 6208de3..d73f766 100755 --- a/port-files/files/sysadm-rest.in +++ b/port-files/files/sysadm-rest.in @@ -12,7 +12,7 @@ depend() { start() { ebegin "Starting $name" - start-stop-daemon --start -m -b -p /var/run/sysadm-rest.pid \ + supervise-daemon --start -p /var/run/sysadm-rest.pid \ %%PREFIX%%/bin/sysadm-binary -- -rest eend $? } diff --git a/port-files/files/sysadm.in b/port-files/files/sysadm.in index 2a5b99e..7546f65 100755 --- a/port-files/files/sysadm.in +++ b/port-files/files/sysadm.in @@ -12,7 +12,7 @@ depend() { start() { ebegin "Starting $name" - start-stop-daemon --start -m -b -p /var/run/sysadm.pid \ + supervise-daemon --start -p /var/run/sysadm.pid \ %%PREFIX%%/bin/sysadm-binary eend $? } From 311bd579f38e81c013c2d1e55cfaaca3550d43ee Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Thu, 12 Jan 2017 12:57:40 -0500 Subject: [PATCH 2/2] API CHANGE: Two new actions for the sysadm/update class: "listlogs" and "readlogs"; REST Request (example): ------------------------------- PUT /sysadm/update { "action" : "listlogs" } WebSocket Request: ------------------------------- { "namespace" : "sysadm", "name" : "update", "args" : { "action" : "listlogs" }, "id" : "fooid" } Response: ------------------------------- { "args": { "listlogs": { "pc-updatemanager.log": { "finished": "1484127618", "name": "pc-updatemanager.log", "started": "1484127618" }, "pc-updatemanager.log.prev": { "finished": "1484109171", "name": "pc-updatemanager.log.prev", "started": "1484109171" } } }, "id": "fooid", "name": "response", "namespace": "sysadm" } =================================== REST Request (example): ------------------------------- PUT /sysadm/update { "logs" : [ "pc-updatemanager.log" ], "action" : "readlogs" } WebSocket Request: ------------------------------- { "id" : "fooid", "namespace" : "sysadm", "name" : "update", "args" : { "logs" : [ "pc-updatemanager.log" ], "action" : "readlogs" } } Response: ------------------------------- { "args": { "readlogs": { "pc-updatemanager.log": "pc-updatemanager: Tue Jan 10 23:32:51 EST 2017\nChecking for updates to ports-mgmt/pkg..\nUpdating the package repo database...\nCleaning old pkg upgrade cache...\n\nDetermine new BE name...\nCleanup mounts..." } }, "id": "fooid", "name": "response", "namespace": "sysadm" } --- src/server/WebBackend.cpp | 8 +++++++ src/server/library/sysadm-update.cpp | 35 ++++++++++++++++++++++++++++ src/server/library/sysadm-update.h | 6 +++-- 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/src/server/WebBackend.cpp b/src/server/WebBackend.cpp index 3a8fa5f..0b71c5e 100644 --- a/src/server/WebBackend.cpp +++ b/src/server/WebBackend.cpp @@ -603,6 +603,14 @@ RestOutputStruct::ExitCode WebSocket::EvaluateSysadmUpdateRequest(const QJsonVal }else if(act=="changesettings"){ ok = true; out->insert("changesettings", sysadm::Update::writeSettings(in_args.toObject()) ); + + }else if(act=="listlogs"){ + ok = true; + out->insert("listlogs", sysadm::Update::listLogs() ); + + }else if(act=="readlogs" && in_args.toObject().contains("logs") ){ + ok = true; + out->insert("readlogs", sysadm::Update::readLog(in_args.toObject()) ); } } //end of "action" key usage diff --git a/src/server/library/sysadm-update.cpp b/src/server/library/sysadm-update.cpp index 6de29ea..8235626 100644 --- a/src/server/library/sysadm-update.cpp +++ b/src/server/library/sysadm-update.cpp @@ -310,3 +310,38 @@ QJsonObject Update::writeSettings(QJsonObject obj){ return ret; } + +//List/Read update logs +QJsonObject Update::listLogs(){ + QJsonObject out; + QDir logdir("/var/log"); + QFileInfoList logs = logdir.entryInfoList(QStringList() << "pc-updatemanager*", QDir::Files, QDir::Time); + for(int i=0; i