From a36081c77ebf2ad73239282c52c2a4f4b2399cc1 Mon Sep 17 00:00:00 2001 From: Kris Moore Date: Tue, 9 Feb 2016 12:46:41 -0500 Subject: [PATCH] Add new API call to iohyve, which returns true/false if iohyve has been setup on the box REST Request: ------------------------------- PUT /sysadm/iohyve { "action" : "issetup" } WebSocket Request: ------------------------------- { "id" : "fooid", "namespace" : "sysadm", "args" : { "action" : "issetup" }, "name" : "iohyve" } Response: ------------------------------- { "args": { "issetup": { "setup": "true" } }, "id": "fooid", "name": "response", "namespace": "sysadm" } --- src/server/WebBackend.cpp | 4 ++++ src/server/library/sysadm-iohyve.cpp | 14 ++++++++++++++ src/server/library/sysadm-iohyve.h | 1 + 3 files changed, 19 insertions(+) diff --git a/src/server/WebBackend.cpp b/src/server/WebBackend.cpp index f936ccf..fa6bf04 100644 --- a/src/server/WebBackend.cpp +++ b/src/server/WebBackend.cpp @@ -506,6 +506,10 @@ RestOutputStruct::ExitCode WebSocket::EvaluateSysadmIohyveRequest(const QJsonVal ok = true; out->insert("fetchiso", sysadm::Iohyve::fetchISO(in_args.toObject())); } + if(act=="issetup"){ + ok = true; + out->insert("issetup", sysadm::Iohyve::isSetup()); + } if(act=="renameiso"){ ok = true; out->insert("renameiso", sysadm::Iohyve::renameISO(in_args.toObject())); diff --git a/src/server/library/sysadm-iohyve.cpp b/src/server/library/sysadm-iohyve.cpp index c28d393..2c184af 100644 --- a/src/server/library/sysadm-iohyve.cpp +++ b/src/server/library/sysadm-iohyve.cpp @@ -39,6 +39,20 @@ QJsonObject Iohyve::fetchISO(QJsonObject jsin) { return retObject; } +// Return if iohyve is setup on the box +QJsonObject Iohyve::isSetup() { + QJsonObject retObject; + + // Check if iohyve is setup on this box + // We check the flags variable, enabling / disabling is done via service mgmt + QString ioflags = General::getConfFileValue("/etc/rc.conf", "iohyve_flags=", 1); + if ( ioflags.isEmpty() ) + retObject.insert("setup", "false"); + else + retObject.insert("setup", "true"); + + return retObject; +} // List the VMs on the box QJsonObject Iohyve::listVMs() { diff --git a/src/server/library/sysadm-iohyve.h b/src/server/library/sysadm-iohyve.h index ecd5051..ba71700 100644 --- a/src/server/library/sysadm-iohyve.h +++ b/src/server/library/sysadm-iohyve.h @@ -15,6 +15,7 @@ namespace sysadm{ class Iohyve{ public: static QJsonObject fetchISO(QJsonObject); + static QJsonObject isSetup(); static QJsonObject listVMs(); static QJsonObject renameISO(QJsonObject); static QJsonObject rmISO(QJsonObject);