diff --git a/src/library/sysadm-iocage.cpp b/src/library/sysadm-iocage.cpp index 5c6a35d..393282b 100644 --- a/src/library/sysadm-iocage.cpp +++ b/src/library/sysadm-iocage.cpp @@ -11,6 +11,30 @@ using namespace sysadm; //PLEASE: Keep the functions in the same order as listed in pcbsd-general.h +// Return all the default iocage settings +QJsonObject Iocage::getDefaultSettings() { + QJsonObject retObject; + + QStringList output = General::RunCommand("iocage defaults").split("\n"); + + QJsonObject vals; + for ( int i = 0; i < output.size(); i++) + { + if ( output.at(i).indexOf("JID") != -1 ) + continue; + + if ( output.at(i).isEmpty() ) + break; + + QString key = output.at(i).simplified().section("=", 0, 0); + QString value = output.at(i).simplified().section("=", 1, 1); + + vals.insert(key, value); + } + + retObject.insert("defaults", vals); + return retObject; +} // List the jails on the box QJsonObject Iocage::getJailSettings(QJsonObject jsin) { diff --git a/src/library/sysadm-iocage.h b/src/library/sysadm-iocage.h index d23a444..3a1f9f7 100644 --- a/src/library/sysadm-iocage.h +++ b/src/library/sysadm-iocage.h @@ -14,6 +14,7 @@ namespace sysadm{ class Iocage{ public: + static QJsonObject getDefaultSettings(); static QJsonObject getJailSettings(QJsonObject); static QJsonObject listJails(); }; diff --git a/src/server/WebBackend.cpp b/src/server/WebBackend.cpp index 26d331b..dea1650 100644 --- a/src/server/WebBackend.cpp +++ b/src/server/WebBackend.cpp @@ -343,6 +343,10 @@ RestOutputStruct::ExitCode WebSocket::EvaluateSysadmIocageRequest(const QJsonVal bool ok = false; if(keys.contains("action")){ QString act = JsonValueToString(in_args.toObject().value("action")); + if(act=="getdefaultsettings"){ + ok = true; + out->insert("getdefaultsettings", sysadm::Iocage::getDefaultSettings()); + } if(act=="getjailsettings"){ ok = true; out->insert("getjailsettings", sysadm::Iocage::getJailSettings(in_args.toObject()));