diff --git a/common/cpp/include/asapo/common/error.tpp b/common/cpp/include/asapo/common/error.tpp index a48955d2b3677e4bdd439f970bcf3a3074594dce..aa14d4015d95d0b5bd9e0e0da0904dccac2620f7 100644 --- a/common/cpp/include/asapo/common/error.tpp +++ b/common/cpp/include/asapo/common/error.tpp @@ -38,7 +38,7 @@ std::string ServiceError<ServiceErrorType>::ExplainPretty(uint8_t shift) const n err += "\n" + base_shift + shift_s + "message: " + error_message_; } if (!details_.empty()) { - err += "\n" + base_shift + shift_s + "context: "; + err += "\n" + base_shift + shift_s + "details: "; auto i = 0; for (const auto &kv : details_) { err += (i > 0 ? ", " : "") + kv.first + ":" + kv.second; @@ -94,7 +94,7 @@ std::string ServiceError<ServiceErrorType>::ExplainInJSON() const noexcept { err += "," + WrapInQuotes("message") + ":" + WrapInQuotes(error_message_); } if (!details_.empty()) { - err += "," + WrapInQuotes("context") + ":{"; + err += "," + WrapInQuotes("details") + ":{"; auto i = 0; for (const auto &kv : details_) { err += (i > 0 ? ", " : "") + WrapInQuotes(kv.first) + ":" + WrapInQuotes(kv.second); diff --git a/common/cpp/src/database/mongodb_client.cpp b/common/cpp/src/database/mongodb_client.cpp index 50db4ae16cccf1f3dacd8701e708cb7e2c3ba968..eff22561e7020a6d997145291760ac6c0d67a70b 100644 --- a/common/cpp/src/database/mongodb_client.cpp +++ b/common/cpp/src/database/mongodb_client.cpp @@ -163,7 +163,7 @@ bson_p PrepareUpdateDocument(const uint8_t* json, Error* err) { std::string json_flat; auto parser_err = parser.GetFlattenedString("meta", ".", &json_flat); if (parser_err) { - *err = DBErrorTemplates::kJsonParseError.Generate("cannof flatten meta " + parser_err->Explain()); + *err = DBErrorTemplates::kJsonParseError.Generate("cannof flatten meta ",std::move(parser_err)); return nullptr; } bson_error_t mongo_err; @@ -832,7 +832,7 @@ Error MongoDBClient::GetMetaFromDb(const std::string& collection, const std::str err = parser.Embedded("meta").GetRawString(res); if (err) { return DBErrorTemplates::kJsonParseError.Generate( - "GetMetaFromDb: cannot parse database response: " + err->Explain()); + "GetMetaFromDb: cannot parse database response",std::move(err)); } return nullptr; } diff --git a/common/cpp/src/system_io/system_io.cpp b/common/cpp/src/system_io/system_io.cpp index 8a5b403f3be6b83bfe71660d9be749a7a296acfe..d19f0f46fada88b333e15763c3ea027937e79e6c 100644 --- a/common/cpp/src/system_io/system_io.cpp +++ b/common/cpp/src/system_io/system_io.cpp @@ -167,7 +167,8 @@ FileDescriptor SystemIO::OpenWithCreateFolders(const std::string& root_folder, c if (*err == IOErrorTemplates::kFileNotFound && create_directories) { size_t pos = fname.rfind(kPathSeparator); if (pos == std::string::npos) { - *err = IOErrorTemplates::kFileNotFound.Generate(full_name); + *err = IOErrorTemplates::kFileNotFound.Generate(); + (*err)->AddDetails("name",fname); return -1; } *err = CreateDirectoryWithParents(root_folder, fname.substr(0, pos)); diff --git a/consumer/api/cpp/src/consumer.cpp b/consumer/api/cpp/src/consumer.cpp index ea1fa64a91c5ec917fd05bf6b41c55baaa57523d..df44db24b879b5a268dd738e35f1c1556c69e52c 100644 --- a/consumer/api/cpp/src/consumer.cpp +++ b/consumer/api/cpp/src/consumer.cpp @@ -10,7 +10,7 @@ std::unique_ptr<Consumer> Create(const std::string& source_name, Error* error, Args&& ... args) noexcept { if (source_name.empty()) { - *error = ConsumerErrorTemplates::kWrongInput.Generate("Empty Data Source"); + *error = ConsumerErrorTemplates::kWrongInput.Generate("empty data source"); return nullptr; } diff --git a/consumer/api/cpp/src/consumer_impl.cpp b/consumer/api/cpp/src/consumer_impl.cpp index e20366e14109e3a8bc6cf21110041b50ac385284..18abec7a70d575ef4316f924634ab749846040da 100644 --- a/consumer/api/cpp/src/consumer_impl.cpp +++ b/consumer/api/cpp/src/consumer_impl.cpp @@ -48,7 +48,9 @@ Error ConsumerErrorFromPartialDataResponse(const std::string& response) { PartialErrorData data; auto parse_error = GetPartialDataResponseFromJson(response, &data); if (parse_error) { - return ConsumerErrorTemplates::kInterruptedTransaction.Generate("malformed response - " + response); + auto err = ConsumerErrorTemplates::kInterruptedTransaction.Generate("malformed response" ); + err->AddDetails("response",response); + return err; } auto err = ConsumerErrorTemplates::kPartialData.Generate(); PartialErrorData* error_data = new PartialErrorData{data}; @@ -219,9 +221,8 @@ Error ConsumerImpl::ProcessDiscoverServiceResult(Error err, std::string* uri_to_ if (err == ConsumerErrorTemplates::kUnsupportedClient) { return err; } - return ConsumerErrorTemplates::kUnavailableService.Generate(" on " + endpoint_ - + (err != nullptr ? ": " + err->Explain() - : "")); + auto ret_err = ConsumerErrorTemplates::kUnavailableService.Generate(std::move(err)); + return ret_err; } return nullptr; } @@ -244,7 +245,8 @@ bool ConsumerImpl::SwitchToGetByIdIfPartialData(Error* err, if (*err == ConsumerErrorTemplates::kPartialData) { auto error_data = static_cast<const PartialErrorData*>((*err)->GetCustomData()); if (error_data == nullptr) { - *err = ConsumerErrorTemplates::kInterruptedTransaction.Generate("malformed response - " + response); + *err = ConsumerErrorTemplates::kInterruptedTransaction.Generate("malformed response"); + (*err)->AddDetails("response",response); return false; } *redirect_uri = std::to_string(error_data->id); @@ -428,7 +430,7 @@ Error ConsumerImpl::GetDataFromFile(MessageMeta* info, MessageData* data) { (system_clock::now() - start).count()); } if (err != nullptr) { - return ConsumerErrorTemplates::kLocalIOError.Generate(err->Explain()); + return ConsumerErrorTemplates::kLocalIOError.Generate(std::move(err)); } return nullptr; } @@ -654,7 +656,8 @@ std::string ConsumerImpl::GetStreamMeta(const std::string& stream, Error* err) { DataSet DecodeDatasetFromResponse(std::string response, Error* err) { DataSet res; if (!res.SetFromJson(std::move(response))) { - *err = ConsumerErrorTemplates::kInterruptedTransaction.Generate("malformed response:" + response); + *err = ConsumerErrorTemplates::kInterruptedTransaction.Generate("malformed response"); + (*err)->AddDetails("response",response); return {0, 0, MessageMetas{}}; } else { return res; diff --git a/producer/api/cpp/src/producer_impl.cpp b/producer/api/cpp/src/producer_impl.cpp index 80dd71e168d39bc0d1a77b037ce388ee5bce97ee..a0b68f07018a2281f5df907387107f5164b3e3f2 100644 --- a/producer/api/cpp/src/producer_impl.cpp +++ b/producer/api/cpp/src/producer_impl.cpp @@ -89,7 +89,7 @@ Error CheckDatasetInRequest(const MessageHeader& message_header) { return ProducerErrorTemplates::kWrongInput.Generate("dataset dimensions"); } - if (message_header.autwo_id) { + if (message_header.auto_id) { return ProducerErrorTemplates::kWrongInput.Generate("auto id mode not implemented for datasets"); }