mirror of
https://github.com/outbackdingo/sysadm.git
synced 2026-01-27 10:20:26 +00:00
Merge branch 'master' of github.com:pcbsd/sysadm
This commit is contained in:
@@ -624,9 +624,12 @@ RestOutputStruct::ExitCode WebSocket::EvaluateSysadmIohyveRequest(const QJsonVal
|
||||
}
|
||||
else if(act=="fetchiso"){
|
||||
ok = true;
|
||||
//DProcess fetchproc;
|
||||
out->insert("fetchiso", sysadm::Iohyve::fetchISO(in_args.toObject()));
|
||||
}
|
||||
else if(act=="getprops"){
|
||||
ok = true;
|
||||
out->insert("getprops", sysadm::Iohyve::getProps(in_args.toObject()));
|
||||
}
|
||||
else if(act=="install"){
|
||||
ok = true;
|
||||
out->insert("install", sysadm::Iohyve::installGuest(in_args.toObject()));
|
||||
@@ -647,6 +650,10 @@ RestOutputStruct::ExitCode WebSocket::EvaluateSysadmIohyveRequest(const QJsonVal
|
||||
ok = true;
|
||||
out->insert("resizedisk", sysadm::Iohyve::resizeDisk(in_args.toObject()));
|
||||
}
|
||||
else if(act=="setprop"){
|
||||
ok = true;
|
||||
out->insert("setprop", sysadm::Iohyve::setProp(in_args.toObject()));
|
||||
}
|
||||
else if(act=="setup"){
|
||||
ok = true;
|
||||
out->insert("setup", sysadm::Iohyve::setupIohyve(in_args.toObject()));
|
||||
|
||||
@@ -146,6 +146,42 @@ QJsonObject Iohyve::deleteGuest(QJsonObject jsin) {
|
||||
return retObject;
|
||||
}
|
||||
|
||||
// Get all the properties for a guest
|
||||
QJsonObject Iohyve::getProps(QJsonObject jsin) {
|
||||
QJsonObject retObject;
|
||||
|
||||
QStringList keys = jsin.keys();
|
||||
if (! keys.contains("name") ) {
|
||||
retObject.insert("error", "Missing required key 'name'");
|
||||
return retObject;
|
||||
}
|
||||
|
||||
// Get the key values
|
||||
QString name = jsin.value("name").toString();
|
||||
|
||||
QStringList output = General::RunCommand("iohyve", QStringList() << "getall" << name).split("\n");
|
||||
|
||||
QJsonObject props;
|
||||
|
||||
for ( int i = 0; i < output.size(); i++)
|
||||
{
|
||||
if ( output.at(i).indexOf("Getting ") != -1 )
|
||||
continue;
|
||||
|
||||
if ( output.at(i).isEmpty() )
|
||||
break;
|
||||
|
||||
QString line = output.at(i).simplified();
|
||||
QString prop = line.section(" ", 0, 0);
|
||||
QString val = line.section(" ", 1, 1);
|
||||
props.insert(prop, val);
|
||||
}
|
||||
|
||||
retObject.insert(name, props);
|
||||
return retObject;
|
||||
}
|
||||
|
||||
|
||||
// Queue the fetch of an ISO
|
||||
QJsonObject Iohyve::fetchISO(QJsonObject jsin) {
|
||||
QJsonObject retObject;
|
||||
@@ -416,6 +452,55 @@ QJsonObject Iohyve::setupIohyve(QJsonObject jsin) {
|
||||
return retObject;
|
||||
}
|
||||
|
||||
// Set properties
|
||||
QJsonObject Iohyve::setProp(QJsonObject jsin) {
|
||||
QJsonObject retObject;
|
||||
QJsonObject props;
|
||||
|
||||
QStringList keys = jsin.keys();
|
||||
if (! keys.contains("name") ) {
|
||||
retObject.insert("error", "Missing required key 'name'");
|
||||
return retObject;
|
||||
}
|
||||
|
||||
// Get the key values
|
||||
QString name = jsin.value("name").toString();
|
||||
|
||||
// Load the supplied settings
|
||||
QStringList settings;
|
||||
QStringList values;
|
||||
|
||||
for ( int i = 0; i < keys.size(); i++)
|
||||
{
|
||||
if ( keys.at(i) == "name" )
|
||||
continue;
|
||||
if ( keys.at(i) == "action" )
|
||||
continue;
|
||||
|
||||
settings << keys.at(i);
|
||||
values << jsin.value(keys.at(i)).toString();
|
||||
props.insert(keys.at(i), jsin.value(keys.at(i)).toString());
|
||||
}
|
||||
|
||||
if ( settings.isEmpty() ) {
|
||||
retObject.insert("error", "No settings supplied!");
|
||||
return retObject;
|
||||
}
|
||||
|
||||
QStringList setargs;
|
||||
setargs << "set" << name;
|
||||
for ( int i = 0; i < settings.size(); i++)
|
||||
{
|
||||
setargs << settings.at(i) + "=" + values.at(i);
|
||||
}
|
||||
|
||||
// Set it now
|
||||
QString output = General::RunCommand("iohyve", setargs);
|
||||
retObject.insert(name, props);
|
||||
return retObject;
|
||||
}
|
||||
|
||||
|
||||
// Start a guest
|
||||
QJsonObject Iohyve::startGuest(QJsonObject jsin) {
|
||||
QJsonObject retObject;
|
||||
|
||||
@@ -20,6 +20,7 @@ public:
|
||||
static QJsonObject deleteDisk(QJsonObject);
|
||||
static QJsonObject deleteGuest(QJsonObject);
|
||||
static QJsonObject fetchISO(QJsonObject);
|
||||
static QJsonObject getProps(QJsonObject);
|
||||
static QJsonObject installGuest(QJsonObject);
|
||||
static QJsonObject isSetup();
|
||||
static QJsonObject listDisks(QJsonObject);
|
||||
@@ -29,6 +30,7 @@ public:
|
||||
static QJsonObject resizeDisk(QJsonObject);
|
||||
static QJsonObject rmISO(QJsonObject);
|
||||
static QJsonObject setupIohyve(QJsonObject);
|
||||
static QJsonObject setProp(QJsonObject);
|
||||
static QJsonObject startGuest(QJsonObject);
|
||||
static QJsonObject stopGuest(QJsonObject);
|
||||
static QJsonObject version();
|
||||
|
||||
Reference in New Issue
Block a user