diff --git a/daggyd/libdaggyd/src/Server.cpp b/daggyd/libdaggyd/src/Server.cpp index 088fd68..f58cfd4 100644 --- a/daggyd/libdaggyd/src/Server.cpp +++ b/daggyd/libdaggyd/src/Server.cpp @@ -10,10 +10,10 @@ #include #include -#define REQ_RESPONSE(code, msg) \ - std::stringstream ss; \ - ss << R"({"message": )" << std::quoted(msg) << "}"; \ - response.send(Pistache::Http::Code::code, ss.str()); \ +#define REQ_RESPONSE(code, msg) \ + std::stringstream ss; \ + ss << R"({"message": )" << std::quoted(msg) << "}\n"; \ + response.send(Pistache::Http::Code::code, ss.str()); \ return; using namespace Pistache; @@ -194,22 +194,21 @@ namespace daggy::daggyd { if (!handleAuth(request)) return; - DAGSpec dagSpec; + DAGRunID runID = 0; try { + DAGSpec dagSpec; dagSpec = dagFromJSON(request.body()); + dagSpec.tasks = + expandTaskSet(dagSpec.tasks, executor_, dagSpec.taskConfig.variables); + // Get a run ID + runID = logger_.startDAGRun(dagSpec); + auto dag = buildDAGFromTasks(dagSpec.tasks); + queueDAG_(runID, dag, dagSpec.taskConfig); } catch (std::runtime_error &e) { REQ_RESPONSE(Not_Acceptable, e.what()); } - dagSpec.tasks = - expandTaskSet(dagSpec.tasks, executor_, dagSpec.taskConfig.variables); - - // Get a run ID - DAGRunID runID = logger_.startDAGRun(dagSpec); - auto dag = buildDAGFromTasks(dagSpec.tasks); - queueDAG_(runID, dag, dagSpec.taskConfig); - response.send(Pistache::Http::Code::Ok, R"({"runID": )" + std::to_string(runID) + "}\n"); } @@ -225,7 +224,7 @@ namespace daggy::daggyd { std::string error = e.what(); response.send( Pistache::Http::Code::Ok, - std::string{R"({"valid": true, "error": })"} + error + "}\n"); + std::string{R"({"valid": false, "error": })"} + error + "}\n"); } }