implement command parsing, top process indication, db version bump
This commit is contained in:
parent
012b56f7d6
commit
caf2afc603
2 changed files with 20 additions and 2 deletions
|
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
#include <cluster/db_types.hpp>
|
#include <cluster/db_types.hpp>
|
||||||
|
|
||||||
#define DATABASE_VERSION 2
|
#define DATABASE_VERSION 3
|
||||||
|
|
||||||
#define DOWNLOAD_BUFFER 5
|
#define DOWNLOAD_BUFFER 5
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -113,6 +113,7 @@ bool Downloader::fetch_tasks(size_t n) {
|
||||||
pqxx::row res = txn->exec1(
|
pqxx::row res = txn->exec1(
|
||||||
"SELECT "
|
"SELECT "
|
||||||
" ap.design_file AS design, "
|
" ap.design_file AS design, "
|
||||||
|
" ap.top_proc, "
|
||||||
" ap.outputs AS target_artifact, "
|
" ap.outputs AS target_artifact, "
|
||||||
" ap.id AS source_pass, "
|
" ap.id AS source_pass, "
|
||||||
" sc.id AS source_config, "
|
" sc.id AS source_config, "
|
||||||
|
|
@ -135,7 +136,7 @@ bool Downloader::fetch_tasks(size_t n) {
|
||||||
);
|
);
|
||||||
|
|
||||||
// seems like there is nothing to do right now
|
// seems like there is nothing to do right now
|
||||||
if (res.empty()) {
|
if (res.size() > 0) {
|
||||||
*task_avail = false;
|
*task_avail = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -147,6 +148,23 @@ bool Downloader::fetch_tasks(size_t n) {
|
||||||
*design = res["design"].as<db::uuid_t>();
|
*design = res["design"].as<db::uuid_t>();
|
||||||
*source_config = res["source_config"].as<db::uuid_t>();
|
*source_config = res["source_config"].as<db::uuid_t>();
|
||||||
|
|
||||||
|
std::vector<std::string> commands;
|
||||||
|
auto arr = res["sim_commands"].as_array();
|
||||||
|
std::pair<pqxx::array_parser::juncture, std::string> elem;
|
||||||
|
do {
|
||||||
|
elem = arr.get_next();
|
||||||
|
if (elem.first == pqxx::array_parser::juncture::string_value) {
|
||||||
|
commands.push_back(elem.second);
|
||||||
|
}
|
||||||
|
} while (elem.first != pqxx::array_parser::juncture::done);
|
||||||
|
|
||||||
|
*testcase = {
|
||||||
|
commands,
|
||||||
|
res["top_proc"].as<std::string>(),
|
||||||
|
false,
|
||||||
|
0
|
||||||
|
};
|
||||||
|
|
||||||
if (res["id"].is_null()) {
|
if (res["id"].is_null()) {
|
||||||
// create a new sim output row in the database
|
// create a new sim output row in the database
|
||||||
pqxx::row new_row = txn->exec_params1(
|
pqxx::row new_row = txn->exec_params1(
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue