From a2bba87315ca1579e4af864e93657f8b7881ba5f Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Tue, 9 Aug 2016 13:22:46 -0400 Subject: [PATCH] API CHANGE Add a new API call to the sysadm/update class: "action":"changesettings" This allows for changing the various updatemanager settings (maxbe, package_set, package_url, auto_update) REST Request (example): ------------------------------- PUT /sysadm/update { "action" : "changesettings", "maxbe" : "6" } WebSocket Request: ------------------------------- { "id" : "fooid", "name" : "update", "namespace" : "sysadm", "args" : { "maxbe" : "6", "action" : "changesettings" } } Response: ------------------------------- { "args": { "changesettings": { "result": "success" } }, "id": "fooid", "name": "response", "namespace": "sysadm" } --- src/server/WebBackend.cpp | 4 +++ src/server/library/sysadm-update.cpp | 39 +++++++++++++++++++++++++--- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/src/server/WebBackend.cpp b/src/server/WebBackend.cpp index 620df6e..9801a52 100644 --- a/src/server/WebBackend.cpp +++ b/src/server/WebBackend.cpp @@ -589,6 +589,10 @@ RestOutputStruct::ExitCode WebSocket::EvaluateSysadmUpdateRequest(const QJsonVal }else if(act=="listsettings"){ ok = true; out->insert("listsettings", sysadm::Update::readSettings() ); + + }else if(act=="changesettings"){ + ok = true; + out->insert("changesettings", sysadm::Update::writeSettings(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 eab6875..bed0ebd 100644 --- a/src/server/library/sysadm-update.cpp +++ b/src/server/library/sysadm-update.cpp @@ -235,12 +235,45 @@ QJsonObject Update::readSettings(){ return ret; } -QJsonObject Update::writeSettings(QJsonObject){ +QJsonObject Update::writeSettings(QJsonObject obj){ QJsonObject ret; //Check inputs - + QStringList knownsettings; + knownsettings << "PACKAGE_SET" << "PACKAGE_URL" << "AUTO_UPDATE" << "MAXBE";// << "CDN_TYPE"; + QStringList keys = obj.keys(); + QStringList vals; + for(int i=0; i=0){ + info[i] = keys[index]+": "+vals[index]; + keys.removeAt(index); vals.removeAt(index); + } + } + // if the variable was not previously defined, just add it to the end + for(int i=0; i