diff --git a/src/server/Dispatcher.cpp b/src/server/Dispatcher.cpp index 940b861..8653289 100644 --- a/src/server/Dispatcher.cpp +++ b/src/server/Dispatcher.cpp @@ -172,7 +172,7 @@ QJsonObject Dispatcher::killJobs(QStringList ids){ } } //end loop over queue types QJsonObject obj; - obj.insert("killed_jobs", QJsonArray::fromStringList(killed)); + obj.insert("jobs", QJsonArray::fromStringList(killed)); return obj; } diff --git a/src/server/WebBackend.cpp b/src/server/WebBackend.cpp index de9cd33..0f41f8b 100644 --- a/src/server/WebBackend.cpp +++ b/src/server/WebBackend.cpp @@ -290,6 +290,14 @@ RestOutputStruct::ExitCode WebSocket::EvaluateDispatcherRequest(bool allaccess, }else if(act=="list"){ QJsonObject info = DISPATCHER->listJobs(); out->insert("jobs", info); + }else if(act=="kill" && in_args.toObject().contains("job_id") ){ + if(!allaccess){ return RestOutputStruct::FORBIDDEN; } //this user does not have permission to modify jobs + QStringList ids; + QJsonValue val = in_args.toObject().value("job_id"); + if(val.isArray()){ ids = JsonArrayToStringList(val.toArray()); } + else if(val.isString()){ ids << val.toString(); } + else{ return RestOutputStruct::BADREQUEST; } + out->insert("killed", DISPATCHER->killJobs(ids)); }else{ return RestOutputStruct::BADREQUEST; }