From a3c44a5f5b90933eee28907cb267ad3fdeacb044 Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Thu, 1 Jun 2017 16:13:34 -0400 Subject: [PATCH] NEW API: sysadm/iocage "action"="listjails" This will list all the current jails on the system. Output syntax is almost exactly the same as the listtemplates action: { "listjails":{ "jails:{ "jid_1":{ [same 10 fields: jid, uuid, boot, state, tag, type, release, ip4, ip6, template] }, "jid_2":{ [same 10 fields] } } } } --- src/server/WebBackend.cpp | 5 +--- src/server/library/sysadm-iocage.cpp | 42 +++++++++++++++++----------- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/src/server/WebBackend.cpp b/src/server/WebBackend.cpp index f120c40..450f9cd 100644 --- a/src/server/WebBackend.cpp +++ b/src/server/WebBackend.cpp @@ -702,11 +702,8 @@ RestOutputStruct::ExitCode WebSocket::EvaluateSysadmIocageRequest(const QJsonVal else if(act=="getjailsettings"){ ok = true; out->insert("getjailsettings", sysadm::Iocage::getJailSettings(in_args.toObject())); - } - else if(act=="listjails"){ - ok = true; - out->insert("listjails", sysadm::Iocage::listJails()); }*/ + else if(act=="listjails"){ retObj = sysadm::Iocage::listJails(); } else if(act=="listtemplates"){ retObj = sysadm::Iocage::listTemplates(); } else if(act=="listreleases"){ retObj = sysadm::Iocage::listReleases(); } else if(act=="listplugins"){ retObj = sysadm::Iocage::listPlugins(); } diff --git a/src/server/library/sysadm-iocage.cpp b/src/server/library/sysadm-iocage.cpp index a0ee2e3..37c639c 100644 --- a/src/server/library/sysadm-iocage.cpp +++ b/src/server/library/sysadm-iocage.cpp @@ -251,23 +251,31 @@ QJsonObject Iocage::cleanReleases() { // List the jails on the box QJsonObject Iocage::listJails() { QJsonObject retObject; - QStringList output = General::RunCommand("iocage list -lh").split("\n"); - for(int i=0; i