summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Petrukhin <[email protected]>2024-03-05 18:41:13 +0300
committerGitHub <[email protected]>2024-03-05 18:41:13 +0300
commit4e25b44e0e892cf0b5638ca241b23f3f2d5435e4 (patch)
tree8af1d4bb9878875c73781bceae107f11dcab7bee
parent354cceffe8c7164814af0da7b6c585350c61c8f0 (diff)
[cms] add start_time in public cms maintenance api (#2452)
-rw-r--r--ydb/core/cms/api_adapters.cpp3
-rw-r--r--ydb/core/cms/cms.cpp7
-rw-r--r--ydb/core/protos/cms.proto1
-rw-r--r--ydb/public/api/protos/draft/ydb_maintenance.proto2
4 files changed, 9 insertions, 4 deletions
diff --git a/ydb/core/cms/api_adapters.cpp b/ydb/core/cms/api_adapters.cpp
index 6badb393995..3d46802131b 100644
--- a/ydb/core/cms/api_adapters.cpp
+++ b/ydb/core/cms/api_adapters.cpp
@@ -163,6 +163,7 @@ class TListClusterNodes: public TAdapterActor<
out.set_host(in.Host);
out.set_port(in.IcPort);
out.set_state(ConvertNodeState(in.State));
+ *out.mutable_start_time() = TimeUtil::MicrosecondsToTimestamp(in.StartTime.GetValue());
auto& location = *out.mutable_location();
location.set_data_center(in.Location.GetDataCenterId());
@@ -561,7 +562,7 @@ public:
opts.set_description(request.GetReason());
opts.set_availability_mode(ConvertAvailabilityMode(request.GetAvailabilityMode()));
opts.set_priority(request.GetPriority());
-
+
// pending actions
for (const auto& action : request.GetActions()) {
ConvertAction(action, *result.add_action_group_states()->add_action_states());
diff --git a/ydb/core/cms/cms.cpp b/ydb/core/cms/cms.cpp
index 2e81ac5d1ac..58cbe297972 100644
--- a/ydb/core/cms/cms.cpp
+++ b/ydb/core/cms/cms.cpp
@@ -239,7 +239,7 @@ void TCms::ProcessInitQueue(const TActorContext &ctx)
void TCms::SubscribeForConfig(const TActorContext &ctx)
{
- NConsole::SubscribeViaConfigDispatcher(ctx, {(ui32)NKikimrConsole::TConfigItem::CmsConfigItem,
+ NConsole::SubscribeViaConfigDispatcher(ctx, {(ui32)NKikimrConsole::TConfigItem::CmsConfigItem,
(ui32)NKikimrConsole::TConfigItem::FeatureFlagsItem}, ctx.SelfID);
}
@@ -1159,6 +1159,7 @@ void TCms::AddHostState(const TClusterInfoPtr &clusterInfo, const TNodeInfo &nod
host->SetNodeId(node.NodeId);
host->SetInterconnectPort(node.IcPort);
host->SetTimestamp(timestamp.GetValue());
+ host->SetStartTimeSeconds(node.StartTime.Seconds());
node.Location.Serialize(host->MutableLocation(), false);
for (auto marker : node.Markers) {
host->AddMarkers(marker);
@@ -1982,7 +1983,7 @@ void TCms::Handle(TEvCms::TEvCheckRequest::TPtr &ev, const TActorContext &ctx)
resp->Record.SetRequestId(scheduled.RequestId);
ClusterInfo->ScheduleActions(scheduled, &ctx);
-
+
copy = new TRequestInfo(scheduled);
State->ScheduledRequests.emplace(rec.GetRequestId(), std::move(scheduled));
} else {
@@ -2265,7 +2266,7 @@ void TCms::Handle(TEvCms::TEvGetSentinelStateRequest::TPtr &ev, const TActorCont
void TCms::Handle(TEvConsole::TEvConfigNotificationRequest::TPtr &ev,
const TActorContext &ctx)
-{
+{
const auto& appConfig = ev->Get()->Record.GetConfig();
if (appConfig.HasFeatureFlags()) {
EnableCMSRequestPriorities = appConfig.GetFeatureFlags().GetEnableCMSRequestPriorities();
diff --git a/ydb/core/protos/cms.proto b/ydb/core/protos/cms.proto
index 9d0923d6897..0b929eb9ae0 100644
--- a/ydb/core/protos/cms.proto
+++ b/ydb/core/protos/cms.proto
@@ -77,6 +77,7 @@ message THostState {
optional uint32 InterconnectPort = 7;
repeated EMarker Markers = 8;
optional NActorsInterconnect.TNodeLocation Location = 9;
+ optional uint32 StartTimeSeconds = 10;
}
message TClusterState {
diff --git a/ydb/public/api/protos/draft/ydb_maintenance.proto b/ydb/public/api/protos/draft/ydb_maintenance.proto
index 610aeae86c0..27d167e4ebf 100644
--- a/ydb/public/api/protos/draft/ydb_maintenance.proto
+++ b/ydb/public/api/protos/draft/ydb_maintenance.proto
@@ -41,6 +41,8 @@ message Node {
StorageNode storage = 6;
DynamicNode dynamic = 7;
}
+ // start_time defines time when node was registered in cms.
+ google.protobuf.Timestamp start_time = 8;
}
message ListClusterNodesRequest {