implement upload

This commit is contained in:
Fabian Posch 2024-01-16 18:34:18 -05:00
parent 9fbcd52e16
commit 5f013f9efa

View file

@ -23,6 +23,9 @@
**************************************************************************
*/
#include <pqxx/pqxx>
#include <functional>
#include <cluster/db_types.hpp>
#include "util.h"
#include "uploader.hpp"
@ -99,10 +102,31 @@ void Uploader::thread_run() {
}
}
bool Uploader::upload_task([[maybe_unused]]std::unique_ptr<OutputType> task) {
bool Uploader::upload_task(std::unique_ptr<OutputType> task) {
// make sure any task that is uploaded isn't halted in the database
auto task_upload_lambda = [](
pqxx::work *txn,
const db::uuid_t *target,
std::vector<std::string> *sim_log,
std::vector<std::string> *sim_error
) {
txn->exec_params0(
"UPDATE sim_outputs SET sim_log = $1, error_log = $2 WHERE id = $3 AND part_status != 'halted';",
*sim_log,
*sim_error,
*target
);
};
std::cout << "[UPLOADER] Task uploaded!" << std::endl;
return true;
std::function<void(
pqxx::work*,
const db::uuid_t*,
std::vector<std::string>*,
std::vector<std::string>*
)> task_upload_func = task_upload_lambda;
DEBUG_PRINT("Updating task " + db::to_string(task->id));
return this->conn->send_request(&task_upload_func, &(task->id), &(task->get_content().first), &(task->get_content().second));
}