This commit is contained in:
Ken Moore
2016-01-29 16:27:48 -05:00
3 changed files with 29 additions and 0 deletions

View File

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

View File

@@ -14,6 +14,7 @@ namespace sysadm{
class Iocage{
public:
static QJsonObject getDefaultSettings();
static QJsonObject getJailSettings(QJsonObject);
static QJsonObject listJails();
};

View File

@@ -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()));