diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8723855862d2652e71e0c4e34bb73d00a647ce63..1784ff59bc35254ebab8f0fdac45a251259d2bf8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,9 +22,8 @@ variables: # this is the image where cpplib repo is present (artifact from pipeline in # caosdb-cpplib) - CPPLIB_REGISTRY_IMAGE: $CI_REGISTRY/caosdb/src/caosdb-cpplib/testenv + CPPLIB_REGISTRY_IMAGE: $CI_REGISTRY/caosdb/src/caosdb-cpplib/testenv:$CI_COMMIT_REF_NAME OCTAVELIB_REGISTRY_IMAGE: $CI_REGISTRY_IMAGE/testenv:$CI_COMMIT_REF_NAME - CPPLIB_BRANCH: dev OCTAVEINTTEST_BRANCHES: https://gitlab.indiscale.com/api/v4/projects/121/repository/branches @@ -47,11 +46,16 @@ build-testenv: stage: setup image: docker:20.10 script: - - if [[ "$CI_COMMIT_REF_NAME" == "main" ]] ; then - CPPLIB_BRANCH=main ; - fi - DOCKER_BASE_IMAGE="${CPPLIB_REGISTRY_IMAGE}:${CPPLIB_BRANCH}" - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY + - if docker pull "$DOCKER_BASE_IMAGE" ; then + echo "DOCKER_BASE_IMAGE=${DOCKER_BASE_IMAGE}" ; + else + DOCKER_BASE_IMAGE="$CI_REGISTRY/caosdb/src/caosdb-cpplib/testenv:dev" ; + echo "DOCKER_BASE_IMAGE=${DOCKER_BASE_IMAGE}" ; + docker pull "$DOCKER_BASE_IMAGE" ; + fi + - docker pull "$OCTAVELIB_REGISTRY_IMAGE" || true - docker build --build-arg DOCKER_BASE_IMAGE=$DOCKER_BASE_IMAGE diff --git a/conanfile.txt b/conanfile.txt index 6d9b95b1ee5c0ebcbe6d78dae5074cf0e6e9215f..1807ad51cd2f8a4de0ffa9ffdd9489627a1dbdbe 100644 --- a/conanfile.txt +++ b/conanfile.txt @@ -1,7 +1,8 @@ [requires] -caosdb/[>=0.1.0, include_prerelease=True] +caosdb/[>=0.2.0, include_prerelease=True] [build_requires] +boost/1.77.0 gtest/1.11.0 [generators] diff --git a/src/lib/maoxdb.cpp b/src/lib/maoxdb.cpp index f1858981f983605504571c5346d0bc459d39835a..2d1bd1ae11bf9f4a94691a8a423e325a637b88d2 100644 --- a/src/lib/maoxdb.cpp +++ b/src/lib/maoxdb.cpp @@ -42,20 +42,6 @@ using std::string; namespace ce = caosdb::entity; namespace cu = caosdb::utility; -// Workaround for issue caosdb-cpplib#17 -#undef CAOSDB_LOG_TRACE -#undef CAOSDB_LOG_DEBUG -#undef CAOSDB_LOG_INFO -// #define CAOSDB_LOG_TRACE(name) std::clog << std::endl << "[" << name << "] " -// #define CAOSDB_LOG_DEBUG(name) std::clog << std::endl << "[" << name << "] " -// #define CAOSDB_LOG_INFO(name) std::clog << std::endl << "[" << name << "] " - -std::ostream nullout(nullptr); // NOLINT - -#define CAOSDB_LOG_TRACE(name) nullout // NOLINT -#define CAOSDB_LOG_DEBUG(name) nullout // NOLINT -#define CAOSDB_LOG_INFO(name) nullout // NOLINT - const auto logger_name = string("maoxdb"); auto mxFromCaosDBParents(const ce::Parents &parents) -> mxArray *; diff --git a/src/lib/maoxdb.hpp b/src/lib/maoxdb.hpp index 8d897b10d0b85986407c6b4aecbd613225164634..a3ae27afaab1e08db218ab65ac555350d8e23c44 100644 --- a/src/lib/maoxdb.hpp +++ b/src/lib/maoxdb.hpp @@ -7,8 +7,6 @@ #include "caosdb/transaction_status.h" #include "caosdb/utility.h" #include "mex.h" -#include <boost/algorithm/string.hpp> -#include <boost/iostreams/stream.hpp> #include <stdexcept> #include <string> diff --git a/src/private/maox_transaction.cpp b/src/private/maox_transaction.cpp index 2d3a92608406175487f2fa8593d3e0b4ea776aca..4329c59211988249e39dad8f6f455aafdaabe8ad 100644 --- a/src/private/maox_transaction.cpp +++ b/src/private/maox_transaction.cpp @@ -34,6 +34,7 @@ using caosdb::connection::Connection; using caosdb::connection::ConnectionManager; using caosdb::entity::Entity; +using caosdb::transaction::StatusCode; using std::string; const auto logger_name = "maox_transaction"; @@ -89,7 +90,7 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { "updates, deletes, file_ids, file_paths)"; try { CAOSDB_LOG_DEBUG(logger_name) << "maox_transaction(): " << nlhs << " <- " << nrhs << "(" - << (nrhs == 8) << ")" << std::endl; // NOLINT + << (nrhs == 8) << ")"; // NOLINT CAOSDB_LOG_DEBUG(logger_name) << " ( " << mxGetNumberOfElements(prhs[0]) << ", " << mxGetNumberOfElements(prhs[1]) << ", " << mxGetNumberOfElements(prhs[2]) << ", " @@ -169,12 +170,14 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { [&](Entity &ent) { transaction->UpdateEntity(&ent); }); std::for_each(deletes.begin(), deletes.end(), [&](const string &id) { transaction->DeleteById(id); }); + +#pragma unroll 5 for (size_t i = 0; i < file_ids.size(); ++i) { transaction->RetrieveAndDownloadFileById(file_ids[i], file_download_paths[i]); } // Execute transaction, if there is anything queued. - if (transaction->IsStatus(caosdb::transaction::TransactionStatus::READY()) || - transaction->IsStatus(caosdb::transaction::TransactionStatus::GO_ON())) { + if (transaction->GetStatus().GetCode() == StatusCode::READY || + transaction->GetStatus().GetCode() == StatusCode::GO_ON) { const auto exec_stat = transaction->ExecuteAsynchronously(); // NOLINT if (exec_stat != caosdb::StatusCode::EXECUTING) { mexErrMsgIdAndTxt("maox:Execution", (string("Executing the transaction failed (") + @@ -190,6 +193,8 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { const auto &results = transaction->GetResultSet(); CAOSDB_LOG_TRACE(logger_name) << "ResultSet contents: "; CAOSDB_LOG_TRACE(logger_name) << "size: " << results.size(); + +#pragma unroll 5 for (const auto &result : results) { CAOSDB_LOG_TRACE(logger_name) << "errors = " << result.HasErrors(); CAOSDB_LOG_TRACE(logger_name) << result.ToString(); @@ -201,6 +206,6 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { plhs[0] = maoxdb::mxDuplicateArrayAlsoSparse(mxResults); plhs[1] = mxCountResults; - CAOSDB_LOG_TRACE(logger_name) << "\n---" << std::endl; + CAOSDB_LOG_TRACE(logger_name) << "\n---"; caosdb::utility::reset_arena(); }