aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIlnaz Nizametdinov <i.nizametdinov@gmail.com>2022-03-15 20:16:46 +0300
committerIlnaz Nizametdinov <i.nizametdinov@gmail.com>2022-03-15 20:16:46 +0300
commitcea1fe93d48662f39ad59510fe78c3987019a99e (patch)
tree7ad97c5c704f8d2ce184cedc01dbddec7ad70784
parent8381bf8857262e458980421670b355f83f7524aa (diff)
downloadydb-cea1fe93d48662f39ad59510fe78c3987019a99e.tar.gz
(refactoring) Print TStatus to stream YDB-1562
ref:5abdd20e834eb0942e852601120df86a04ba4eba
-rw-r--r--ydb/public/lib/ydb_cli/commands/ydb_common.h17
-rw-r--r--ydb/public/sdk/cpp/client/ydb_types/status/status.cpp9
-rw-r--r--ydb/public/sdk/cpp/client/ydb_types/status/status.h2
3 files changed, 15 insertions, 13 deletions
diff --git a/ydb/public/lib/ydb_cli/commands/ydb_common.h b/ydb/public/lib/ydb_cli/commands/ydb_common.h
index 7561c6476e..647c09766a 100644
--- a/ydb/public/lib/ydb_cli/commands/ydb_common.h
+++ b/ydb/public/lib/ydb_cli/commands/ydb_common.h
@@ -13,12 +13,7 @@ public:
{ }
friend IOutputStream& operator<<(IOutputStream& out, const TYdbErrorException& e) {
- out << "Status: " << e.Status.GetStatus() << Endl;
- if (e.Status.GetIssues()) {
- out << "Issues: " << Endl;
- e.Status.GetIssues().PrintTo(out);
- }
- return out;
+ return out << e.Status;
}
private:
@@ -26,14 +21,10 @@ private:
};
inline void ThrowOnError(NYdb::TStatus status) {
- if (status.IsSuccess()) {
- if (status.GetIssues()) {
- Cerr << "Status: " << status.GetStatus() << Endl;
- Cerr << "Issues: " << Endl;
- status.GetIssues().PrintTo(Cerr);
- }
- } else {
+ if (!status.IsSuccess()) {
throw TYdbErrorException(std::move(status));
+ } else if (status.GetIssues()) {
+ Cerr << status;
}
}
diff --git a/ydb/public/sdk/cpp/client/ydb_types/status/status.cpp b/ydb/public/sdk/cpp/client/ydb_types/status/status.cpp
index d3f2ca05af..20f4d9d47d 100644
--- a/ydb/public/sdk/cpp/client/ydb_types/status/status.cpp
+++ b/ydb/public/sdk/cpp/client/ydb_types/status/status.cpp
@@ -72,6 +72,15 @@ float TStatus::GetConsumedRu() const {
return Impl_->Status.ConstInfo.consumed_units();
}
+IOutputStream& operator<<(IOutputStream& out, const TStatus& st) {
+ out << "Status: " << st.GetStatus() << Endl;
+ if (st.GetIssues()) {
+ out << "Issues: " << Endl;
+ st.GetIssues().PrintTo(out);
+ }
+ return out;
+}
+
////////////////////////////////////////////////////////////////////////////////
TStreamPartStatus::TStreamPartStatus(TStatus&& status)
diff --git a/ydb/public/sdk/cpp/client/ydb_types/status/status.h b/ydb/public/sdk/cpp/client/ydb_types/status/status.h
index 7185a03964..ba0d7460bf 100644
--- a/ydb/public/sdk/cpp/client/ydb_types/status/status.h
+++ b/ydb/public/sdk/cpp/client/ydb_types/status/status.h
@@ -27,6 +27,8 @@ public:
const std::multimap<TStringType, TStringType>& GetResponseMetadata() const;
float GetConsumedRu() const;
+ friend IOutputStream& operator<<(IOutputStream& out, const TStatus& st);
+
protected:
void CheckStatusOk(const TStringType& str) const;
void RaiseError(const TStringType& str) const;