aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshmel1k <shmel1k@ydb.tech>2023-04-19 10:16:14 +0300
committershmel1k <shmel1k@ydb.tech>2023-04-19 10:16:14 +0300
commitd5a6daee779ae552dd294dbcfffe42d0ceef8cb0 (patch)
treefb8c9db13b374acd6081e29326878db2a8a3f520
parentbbce3f5cecdf453747a498f97c3a644782ba80ec (diff)
downloadydb-d5a6daee779ae552dd294dbcfffe42d0ceef8cb0.tar.gz
add describe for coordination node
-rw-r--r--ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-x86_64.txt2
-rw-r--r--ydb/public/lib/ydb_cli/commands/CMakeLists.linux-aarch64.txt2
-rw-r--r--ydb/public/lib/ydb_cli/commands/CMakeLists.linux-x86_64.txt2
-rw-r--r--ydb/public/lib/ydb_cli/commands/CMakeLists.windows-x86_64.txt2
-rw-r--r--ydb/public/lib/ydb_cli/commands/ydb_service_scheme.cpp58
-rw-r--r--ydb/public/lib/ydb_cli/commands/ydb_service_scheme.h10
-rw-r--r--ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.darwin-x86_64.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.linux-aarch64.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.linux-x86_64.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.windows-x86_64.txt2
-rw-r--r--ydb/public/sdk/cpp/client/ydb_coordination/coordination.cpp6
-rw-r--r--ydb/public/sdk/cpp/client/ydb_coordination/coordination.h1
-rw-r--r--ydb/public/sdk/cpp/client/ydb_coordination/proto_accessor.cpp11
-rw-r--r--ydb/public/sdk/cpp/client/ydb_proto/accessor.h15
14 files changed, 108 insertions, 9 deletions
diff --git a/ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-x86_64.txt
index 05899f2c44..11902c60d2 100644
--- a/ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-x86_64.txt
+++ b/ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-x86_64.txt
@@ -31,6 +31,7 @@ target_link_libraries(clicommands PUBLIC
lib-ydb_cli-import
topic
cpp-client-draft
+ cpp-client-ydb_coordination
cpp-client-ydb_discovery
cpp-client-ydb_export
cpp-client-ydb_import
@@ -86,6 +87,7 @@ target_link_libraries(clicommands.global PUBLIC
lib-ydb_cli-import
topic
cpp-client-draft
+ cpp-client-ydb_coordination
cpp-client-ydb_discovery
cpp-client-ydb_export
cpp-client-ydb_import
diff --git a/ydb/public/lib/ydb_cli/commands/CMakeLists.linux-aarch64.txt b/ydb/public/lib/ydb_cli/commands/CMakeLists.linux-aarch64.txt
index a3cb431493..a14760c1e3 100644
--- a/ydb/public/lib/ydb_cli/commands/CMakeLists.linux-aarch64.txt
+++ b/ydb/public/lib/ydb_cli/commands/CMakeLists.linux-aarch64.txt
@@ -32,6 +32,7 @@ target_link_libraries(clicommands PUBLIC
lib-ydb_cli-import
topic
cpp-client-draft
+ cpp-client-ydb_coordination
cpp-client-ydb_discovery
cpp-client-ydb_export
cpp-client-ydb_import
@@ -88,6 +89,7 @@ target_link_libraries(clicommands.global PUBLIC
lib-ydb_cli-import
topic
cpp-client-draft
+ cpp-client-ydb_coordination
cpp-client-ydb_discovery
cpp-client-ydb_export
cpp-client-ydb_import
diff --git a/ydb/public/lib/ydb_cli/commands/CMakeLists.linux-x86_64.txt b/ydb/public/lib/ydb_cli/commands/CMakeLists.linux-x86_64.txt
index a3cb431493..a14760c1e3 100644
--- a/ydb/public/lib/ydb_cli/commands/CMakeLists.linux-x86_64.txt
+++ b/ydb/public/lib/ydb_cli/commands/CMakeLists.linux-x86_64.txt
@@ -32,6 +32,7 @@ target_link_libraries(clicommands PUBLIC
lib-ydb_cli-import
topic
cpp-client-draft
+ cpp-client-ydb_coordination
cpp-client-ydb_discovery
cpp-client-ydb_export
cpp-client-ydb_import
@@ -88,6 +89,7 @@ target_link_libraries(clicommands.global PUBLIC
lib-ydb_cli-import
topic
cpp-client-draft
+ cpp-client-ydb_coordination
cpp-client-ydb_discovery
cpp-client-ydb_export
cpp-client-ydb_import
diff --git a/ydb/public/lib/ydb_cli/commands/CMakeLists.windows-x86_64.txt b/ydb/public/lib/ydb_cli/commands/CMakeLists.windows-x86_64.txt
index 05899f2c44..11902c60d2 100644
--- a/ydb/public/lib/ydb_cli/commands/CMakeLists.windows-x86_64.txt
+++ b/ydb/public/lib/ydb_cli/commands/CMakeLists.windows-x86_64.txt
@@ -31,6 +31,7 @@ target_link_libraries(clicommands PUBLIC
lib-ydb_cli-import
topic
cpp-client-draft
+ cpp-client-ydb_coordination
cpp-client-ydb_discovery
cpp-client-ydb_export
cpp-client-ydb_import
@@ -86,6 +87,7 @@ target_link_libraries(clicommands.global PUBLIC
lib-ydb_cli-import
topic
cpp-client-draft
+ cpp-client-ydb_coordination
cpp-client-ydb_discovery
cpp-client-ydb_export
cpp-client-ydb_import
diff --git a/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.cpp b/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.cpp
index 41440aa616..d85e5dc82f 100644
--- a/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.cpp
+++ b/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.cpp
@@ -1,10 +1,10 @@
#include "ydb_service_scheme.h"
#include <ydb/public/lib/json_value/ydb_json_value.h>
-#include <ydb/public/sdk/cpp/client/ydb_proto/accessor.h>
#include <ydb/public/lib/ydb_cli/common/pretty_table.h>
#include <ydb/public/lib/ydb_cli/common/print_utils.h>
#include <ydb/public/lib/ydb_cli/common/scheme_printers.h>
+#include <ydb/public/sdk/cpp/client/ydb_proto/accessor.h>
#include <util/string/join.h>
@@ -182,6 +182,8 @@ int TCommandDescribe::PrintPathResponse(TDriver& driver, const NScheme::TDescrib
case NScheme::ESchemeEntryType::PqGroup:
case NScheme::ESchemeEntryType::Topic:
return DescribeTopic(driver);
+ case NScheme::ESchemeEntryType::CoordinationNode:
+ return DescribeCoordinationNode(driver);
default:
WarnAboutTableOptions();
PrintEntryVerbose(entry, ShowPermissions);
@@ -366,6 +368,60 @@ int TCommandDescribe::DescribeColumnTable(TDriver& driver) {
return PrintTableResponse(result);
}
+int TCommandDescribe::PrintCoordinationNodeResponse(const NYdb::NCoordination::TDescribeNodeResult& result) const {
+ switch (OutputFormat) {
+ case EOutputFormat::Default:
+ case EOutputFormat::Pretty:
+ return PrintCoordinationNodeResponsePretty(result.GetResult());
+ case EOutputFormat::Json:
+ Cerr << "Warning! Option --json is deprecated and will be removed soon. "
+ << "Use \"--format proto-json-base64\" option instead." << Endl;
+ [[fallthrough]];
+ case EOutputFormat::ProtoJsonBase64:
+ return PrintCoordinationNodeResponseProtoJsonBase64(result.GetResult());
+ default:
+ throw TMisuseException() << "This command doesn't support " << OutputFormat << " output format";
+ }
+ return EXIT_SUCCESS;
+}
+
+int TCommandDescribe::PrintCoordinationNodeResponsePretty(const NYdb::NCoordination::TNodeDescription& result) const {
+ Cout << "AttachConsistencyMode: " << result.GetAttachConsistencyMode() << Endl;
+ Cout << "ReadConsistencyMode: " << result.GetReadConsistencyMode() << Endl;
+ if (result.GetSessionGracePeriod().Defined()) {
+ Cout << "SessionGracePeriod: " << result.GetSessionGracePeriod() << Endl;
+ }
+ if (result.GetSelfCheckPeriod().Defined()) {
+ Cout << "SelfCheckPeriod: " << result.GetSelfCheckPeriod() << Endl;
+ }
+ Cout << "RatelimiterCountersMode: " << result.GetRateLimiterCountersMode() << Endl;
+ return EXIT_SUCCESS;
+}
+
+int TCommandDescribe::PrintCoordinationNodeResponseProtoJsonBase64(const NYdb::NCoordination::TNodeDescription& result) const {
+ TString json;
+ google::protobuf::util::JsonPrintOptions jsonOpts;
+ jsonOpts.preserve_proto_field_names = true;
+ auto convertStatus = google::protobuf::util::MessageToJsonString(
+ NYdb::TProtoAccessor::GetProto(result),
+ &json,
+ jsonOpts
+ );
+ if (convertStatus.ok()) {
+ Cout << json << Endl;
+ return EXIT_SUCCESS;
+ }
+ Cerr << "Error occurred while converting result proto to json: " << TString(convertStatus.message().ToString()) << Endl;
+ return EXIT_FAILURE;
+}
+
+int TCommandDescribe::DescribeCoordinationNode(const TDriver& driver) {
+ NCoordination::TClient client(driver);
+ NCoordination::TDescribeNodeResult description = client.DescribeNode(Path).GetValueSync();
+
+ return PrintCoordinationNodeResponse(description);
+}
+
namespace {
void PrintColumns(const NTable::TTableDescription& tableDescription) {
if (!tableDescription.GetTableColumns().size()) {
diff --git a/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.h b/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.h
index 24f545d245..a86fc59489 100644
--- a/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.h
+++ b/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.h
@@ -3,11 +3,12 @@
#include "ydb_command.h"
#include "ydb_common.h"
+#include <ydb/public/lib/ydb_cli/common/format.h>
+#include <ydb/public/lib/ydb_cli/common/recursive_remove.h>
+#include <ydb/public/sdk/cpp/client/ydb_coordination/coordination.h>
#include <ydb/public/sdk/cpp/client/ydb_scheme/scheme.h>
#include <ydb/public/sdk/cpp/client/ydb_table/table.h>
#include <ydb/public/sdk/cpp/client/ydb_topic/topic.h>
-#include <ydb/public/lib/ydb_cli/common/format.h>
-#include <ydb/public/lib/ydb_cli/common/recursive_remove.h>
namespace NYdb {
namespace NConsoleClient {
@@ -58,6 +59,11 @@ private:
int PrintTopicResponsePretty(const NYdb::NTopic::TTopicDescription& settings);
int PrintTopicResponseProtoJsonBase64(const NYdb::NTopic::TDescribeTopicResult& result);
+ int DescribeCoordinationNode(const TDriver& driver);
+ int PrintCoordinationNodeResponse(const NYdb::NCoordination::TDescribeNodeResult& result) const;
+ int PrintCoordinationNodeResponsePretty(const NYdb::NCoordination::TNodeDescription& result) const;
+ int PrintCoordinationNodeResponseProtoJsonBase64(const NYdb::NCoordination::TNodeDescription& result) const;
+
// Common options
bool ShowPermissions = false;
// Table options
diff --git a/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.darwin-x86_64.txt
index 884937dbc6..0a78a6c824 100644
--- a/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.darwin-x86_64.txt
+++ b/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.darwin-x86_64.txt
@@ -24,11 +24,13 @@ target_link_libraries(cpp-client-ydb_coordination PUBLIC
cpp-client-ydb_common_client
client-ydb_common_client-impl
cpp-client-ydb_driver
+ cpp-client-ydb_proto
cpp-client-ydb_types
client-ydb_types-status
)
target_sources(cpp-client-ydb_coordination PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/coordination.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/proto_accessor.cpp
)
generate_enum_serilization(cpp-client-ydb_coordination
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/coordination.h
diff --git a/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.linux-aarch64.txt
index b56f658682..cf71e897ae 100644
--- a/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.linux-aarch64.txt
+++ b/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.linux-aarch64.txt
@@ -25,11 +25,13 @@ target_link_libraries(cpp-client-ydb_coordination PUBLIC
cpp-client-ydb_common_client
client-ydb_common_client-impl
cpp-client-ydb_driver
+ cpp-client-ydb_proto
cpp-client-ydb_types
client-ydb_types-status
)
target_sources(cpp-client-ydb_coordination PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/coordination.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/proto_accessor.cpp
)
generate_enum_serilization(cpp-client-ydb_coordination
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/coordination.h
diff --git a/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.linux-x86_64.txt
index b56f658682..cf71e897ae 100644
--- a/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.linux-x86_64.txt
+++ b/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.linux-x86_64.txt
@@ -25,11 +25,13 @@ target_link_libraries(cpp-client-ydb_coordination PUBLIC
cpp-client-ydb_common_client
client-ydb_common_client-impl
cpp-client-ydb_driver
+ cpp-client-ydb_proto
cpp-client-ydb_types
client-ydb_types-status
)
target_sources(cpp-client-ydb_coordination PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/coordination.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/proto_accessor.cpp
)
generate_enum_serilization(cpp-client-ydb_coordination
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/coordination.h
diff --git a/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.windows-x86_64.txt
index 884937dbc6..0a78a6c824 100644
--- a/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.windows-x86_64.txt
+++ b/ydb/public/sdk/cpp/client/ydb_coordination/CMakeLists.windows-x86_64.txt
@@ -24,11 +24,13 @@ target_link_libraries(cpp-client-ydb_coordination PUBLIC
cpp-client-ydb_common_client
client-ydb_common_client-impl
cpp-client-ydb_driver
+ cpp-client-ydb_proto
cpp-client-ydb_types
client-ydb_types-status
)
target_sources(cpp-client-ydb_coordination PRIVATE
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/coordination.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/proto_accessor.cpp
)
generate_enum_serilization(cpp-client-ydb_coordination
${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/coordination.h
diff --git a/ydb/public/sdk/cpp/client/ydb_coordination/coordination.cpp b/ydb/public/sdk/cpp/client/ydb_coordination/coordination.cpp
index f06f521808..01828ddf99 100644
--- a/ydb/public/sdk/cpp/client/ydb_coordination/coordination.cpp
+++ b/ydb/public/sdk/cpp/client/ydb_coordination/coordination.cpp
@@ -84,6 +84,7 @@ struct TNodeDescription::TImpl {
RateLimiterCountersMode_ = static_cast<ERateLimiterCountersMode>(config.rate_limiter_counters_mode());
Owner_ = desc.self().owner();
PermissionToSchemeEntry(desc.self().effective_permissions(), &EffectivePermissions_);
+ Proto_ = desc;
}
TMaybe<TDuration> SelfCheckPeriod_;
@@ -93,6 +94,7 @@ struct TNodeDescription::TImpl {
ERateLimiterCountersMode RateLimiterCountersMode_;
TString Owner_;
TVector<NScheme::TPermissions> EffectivePermissions_;
+ Ydb::Coordination::DescribeNodeResult Proto_;
};
TNodeDescription::TNodeDescription(
@@ -128,6 +130,10 @@ const TVector<NScheme::TPermissions>& TNodeDescription::GetEffectivePermissions(
return Impl_->EffectivePermissions_;
}
+const Ydb::Coordination::DescribeNodeResult& TNodeDescription::GetProto() const {
+ return Impl_->Proto_;
+}
+
////////////////////////////////////////////////////////////////////////////////
TSemaphoreSession::TSemaphoreSession() {
diff --git a/ydb/public/sdk/cpp/client/ydb_coordination/coordination.h b/ydb/public/sdk/cpp/client/ydb_coordination/coordination.h
index fa8ab572d0..01e1c20342 100644
--- a/ydb/public/sdk/cpp/client/ydb_coordination/coordination.h
+++ b/ydb/public/sdk/cpp/client/ydb_coordination/coordination.h
@@ -107,6 +107,7 @@ public:
const TString& GetOwner() const;
const TVector<NScheme::TPermissions>& GetEffectivePermissions() const;
+ const Ydb::Coordination::DescribeNodeResult& GetProto() const;
private:
struct TImpl;
diff --git a/ydb/public/sdk/cpp/client/ydb_coordination/proto_accessor.cpp b/ydb/public/sdk/cpp/client/ydb_coordination/proto_accessor.cpp
new file mode 100644
index 0000000000..adc3a5d286
--- /dev/null
+++ b/ydb/public/sdk/cpp/client/ydb_coordination/proto_accessor.cpp
@@ -0,0 +1,11 @@
+#include <ydb/public/sdk/cpp/client/ydb_proto/accessor.h>
+
+#include "coordination.h"
+
+namespace NYdb {
+
+const Ydb::Coordination::DescribeNodeResult& TProtoAccessor::GetProto(const NCoordination::TNodeDescription& nodeDescription) {
+ return nodeDescription.GetProto();
+}
+
+} \ No newline at end of file
diff --git a/ydb/public/sdk/cpp/client/ydb_proto/accessor.h b/ydb/public/sdk/cpp/client/ydb_proto/accessor.h
index 5ffcf39b29..33223c3bfc 100644
--- a/ydb/public/sdk/cpp/client/ydb_proto/accessor.h
+++ b/ydb/public/sdk/cpp/client/ydb_proto/accessor.h
@@ -1,19 +1,21 @@
#pragma once
-#include <ydb/public/api/protos/ydb_value.pb.h>
-#include <ydb/public/api/protos/ydb_query_stats.pb.h>
-#include <ydb/public/api/protos/ydb_table.pb.h>
+#include <ydb/public/api/grpc/draft/ydb_persqueue_v1.grpc.pb.h>
+#include <ydb/public/api/protos/ydb_coordination.pb.h>
#include <ydb/public/api/protos/ydb_export.pb.h>
#include <ydb/public/api/protos/ydb_import.pb.h>
-#include <ydb/public/api/grpc/draft/ydb_persqueue_v1.grpc.pb.h>
+#include <ydb/public/api/protos/ydb_query_stats.pb.h>
+#include <ydb/public/api/protos/ydb_table.pb.h>
#include <ydb/public/api/protos/ydb_topic.pb.h>
+#include <ydb/public/api/protos/ydb_value.pb.h>
+#include <ydb/public/sdk/cpp/client/ydb_coordination/coordination.h>
#include <ydb/public/sdk/cpp/client/ydb_export/export.h>
#include <ydb/public/sdk/cpp/client/ydb_import/import.h>
-#include <ydb/public/sdk/cpp/client/ydb_table/table.h>
+#include <ydb/public/sdk/cpp/client/ydb_monitoring/monitoring.h>
#include <ydb/public/sdk/cpp/client/ydb_persqueue_public/persqueue.h>
+#include <ydb/public/sdk/cpp/client/ydb_table/table.h>
#include <ydb/public/sdk/cpp/client/ydb_topic/topic.h>
-#include <ydb/public/sdk/cpp/client/ydb_monitoring/monitoring.h>
namespace NYdb {
@@ -42,6 +44,7 @@ public:
static const Ydb::Topic::DescribeTopicResult& GetProto(const NYdb::NTopic::TTopicDescription& topicDescription);
static const Ydb::Topic::DescribeConsumerResult& GetProto(const NYdb::NTopic::TConsumerDescription& consumerDescription);
static const Ydb::Monitoring::SelfCheckResult& GetProto(const NYdb::NMonitoring::TSelfCheckResult& selfCheckResult);
+ static const Ydb::Coordination::DescribeNodeResult& GetProto(const NYdb::NCoordination::TNodeDescription &describeNodeResult);
static NTable::TQueryStats FromProto(const Ydb::TableStats::QueryStats& queryStats);
static NTable::TTableDescription FromProto(const Ydb::Table::CreateTableRequest& request);