Merge branch 'master' of github.com:trueos/sysadm

This commit is contained in:
Mrt134
2017-01-16 15:24:02 -05:00
6 changed files with 50 additions and 5 deletions

View File

@@ -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 $?
}

View File

@@ -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 $?
}

View File

@@ -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 $?
}

View File

@@ -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

View File

@@ -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<logs.length(); i++){
QJsonObject tmp;
tmp.insert("started", QString::number( logs[i].created().toTime_t() ) );
tmp.insert("finished", QString::number( logs[i].lastModified().toTime_t() ) );
tmp.insert("name", logs[i].fileName());
out.insert(logs[i].fileName(), tmp);
}
return out;
}
QJsonObject Update::readLog(QJsonObject obj){
QJsonObject ret;
//Check Inputs
if(obj.contains("logs")){
QJsonValue val = obj.value("logs");
QStringList logs;
if(val.isString()){ logs << val.toString(); }
else if(val.isArray()){ logs = General::JsonArrayToStringList(obj.value("logs").toArray()); }
QString logdir = "/var/log/";
for(int i=0; i<logs.length(); i++){
if(!logs[i].startsWith("pc-updatemanager")){ continue; } //wrong type of log file - this only handles pc-updatemanager logs
QStringList info = General::readTextFile(logdir+logs[i]);
if(!info.isEmpty()){
ret.insert(logs[i], info.join("\n"));
}
}
}
return ret;
}

View File

@@ -26,10 +26,12 @@ public:
//Read/write update settings
static QJsonObject readSettings();
static QJsonObject writeSettings(QJsonObject);
//List/Read update logs
static QJsonObject listLogs();
static QJsonObject readLog(QJsonObject);
};
} //end of pcbsd namespace
}
#endif