Skip to content

Commit

Permalink
More REST API methods
Browse files Browse the repository at this point in the history
  • Loading branch information
henricasanova committed Jul 11, 2023
1 parent 05b63c5 commit 4c78bf1
Show file tree
Hide file tree
Showing 6 changed files with 152 additions and 16 deletions.
1 change: 0 additions & 1 deletion src/wrench/action/ComputeAction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,6 @@ namespace wrench {
sequential_work,
parallel_per_thread_work);


} catch (std::exception &e) {
throw ExecutionException(std::shared_ptr<FailureCause>(new ComputationHasDied()));
}
Expand Down
100 changes: 100 additions & 0 deletions tools/wrench/wrench-daemon/doc/wrench-openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -949,6 +949,106 @@
}
}
},
"/simulation/{simid}/tasks/{name}/taskGetStartDate": {
"get": {
"tags": [
"WRENCH"
],
"summary": "Get a task's start date.",
"deprecated": false,
"operationId": "getTaskStartDate",
"parameters": [
{
"name": "simid",
"in": "path",
"description": "ID of the simulation",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "name",
"in": "path",
"description": "ID of the task",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TimeResponse"
}
}
}
},
"404": {
"description": "Job not found",
"content": {}
},
"405": {
"description": "Invalid input",
"content": {}
}
}
}
},
"/simulation/{simid}/tasks/{name}/taskGetEndDate": {
"get": {
"tags": [
"WRENCH"
],
"summary": "Get a task's end date.",
"deprecated": false,
"operationId": "getTaskEndDate",
"parameters": [
{
"name": "simid",
"in": "path",
"description": "ID of the simulation",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "name",
"in": "path",
"description": "ID of the task",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TimeResponse"
}
}
}
},
"404": {
"description": "Job not found",
"content": {}
},
"405": {
"description": "Invalid input",
"content": {}
}
}
}
},
"/simulation/{simid}/createStandardJob": {
"put": {
"tags": [
Expand Down
19 changes: 6 additions & 13 deletions tools/wrench/wrench-daemon/include/SimulationController.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,21 +44,21 @@ namespace wrench {

json advanceTime(json data);

json createStandardJob(json data);

json getSimulationEvents(json);

json createStandardJob(json data);
json submitStandardJob(json data);

json getStandardJobTasks(json data);
json addInputFile(json data);
json addOutputFile(json data);

json createTask(json data);
json getTaskFlops(json data);

json getTaskMinNumCores(json data);

json getTaskMaxNumCores(json data);

json getTaskMemory(json data);
json getTaskStartDate(json data);
json getTaskEndDate(json data);

json waitForNextSimulationEvent(json data);

Expand All @@ -72,16 +72,9 @@ namespace wrench {

json addFileRegistryService(json data);

json createTask(json data);

json addFile(json data);

json getFileSize(json data);

json addInputFile(json data);

json addOutputFile(json data);

json getTaskInputFiles(json data);

json getTaskOutputFiles(json data);
Expand Down
2 changes: 2 additions & 0 deletions tools/wrench/wrench-daemon/include/callback-map.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ request_handlers["taskGetFlops"] = [sc](json data) { return sc->getTaskFlops(std
request_handlers["taskGetMinNumCores"] = [sc](json data) { return sc->getTaskMinNumCores(std::move(data)); };
request_handlers["taskGetMaxNumCores"] = [sc](json data) { return sc->getTaskMaxNumCores(std::move(data)); };
request_handlers["taskGetMemory"] = [sc](json data) { return sc->getTaskMemory(std::move(data)); };
request_handlers["taskGetStartDate"] = [sc](json data) { return sc->getTaskStartDate(std::move(data)); };
request_handlers["taskGetEndDate"] = [sc](json data) { return sc->getTaskEndDate(std::move(data)); };
request_handlers["createStandardJob"] = [sc](json data) { return sc->createStandardJob(std::move(data)); };
request_handlers["submit"] = [sc](json data) { return sc->submitStandardJob(std::move(data)); };
request_handlers["addBareMetalComputeService"] = [sc](json data) { return sc->addBareMetalComputeService(std::move(data)); };
Expand Down
20 changes: 20 additions & 0 deletions tools/wrench/wrench-daemon/include/routes.h
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,26 @@
return res;
});

CROW_ROUTE(app, "/simulation/<string>/tasks/<string>/taskGetStartDate").methods(crow::HTTPMethod::Get)
([this](const crow::request& req, const std::string& simid, const std::string& name){
json req_json = json::parse(req.body);
req_json[toStr(simid)] = simid;
req_json[toStr(name)] = name;
crow::response res;
this->genericRequestHandler(req_json, res, "taskGetStartDate");
return res;
});

CROW_ROUTE(app, "/simulation/<string>/tasks/<string>/taskGetEndDate").methods(crow::HTTPMethod::Get)
([this](const crow::request& req, const std::string& simid, const std::string& name){
json req_json = json::parse(req.body);
req_json[toStr(simid)] = simid;
req_json[toStr(name)] = name;
crow::response res;
this->genericRequestHandler(req_json, res, "taskGetEndDate");
return res;
});

CROW_ROUTE(app, "/simulation/<string>/createStandardJob").methods(crow::HTTPMethod::Put)
([this](const crow::request& req, const std::string& simid){
json req_json = json::parse(req.body);
Expand Down
26 changes: 24 additions & 2 deletions tools/wrench/wrench-daemon/src/SimulationController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -673,12 +673,12 @@ namespace wrench {
*/
json SimulationController::createTask(json data) {

this->workflow->addTask(data["name"],
auto t = this->workflow->addTask(data["name"],
data["flops"],
data["min_num_cores"],
data["max_num_cores"],
data["memory"]);
return json({});
return {};
}

/**
Expand Down Expand Up @@ -725,6 +725,28 @@ namespace wrench {
return answer;
}

/**
* @brief REST API Handler
* @param data JSON input
* @return JSON output
*/
json SimulationController::getTaskStartDate(json data) {
json answer;
answer["time"] = this->workflow->getTaskByID(data["name"])->getStartDate();
return answer;
}

/**
* @brief REST API Handler
* @param data JSON input
* @return JSON output
*/
json SimulationController::getTaskEndDate(json data) {
json answer;
answer["time"] = this->workflow->getTaskByID(data["name"])->getEndDate();
return answer;
}

/**
* @brief REST API Handler
* @param data JSON input
Expand Down

0 comments on commit 4c78bf1

Please sign in to comment.