diff options
author | Nikita Sokolov <faucct@tracto.ai> | 2025-02-06 16:25:27 +0300 |
---|---|---|
committer | robot-piglet <robot-piglet@yandex-team.com> | 2025-02-06 16:46:11 +0300 |
commit | ebc0d7e9f1351fcae5429be96e3a643e265c58b7 (patch) | |
tree | 5d4ced9f953cb239f4ed2e44975e07ed40160ad8 | |
parent | a1eb3ce71dfef622da3d201cf071c79b76734d0d (diff) | |
download | ydb-ebc0d7e9f1351fcae5429be96e3a643e265c58b7.tar.gz |
operation suspend reason
No description
---
Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1046
Co-authored-by: ignat <ignat@yandex-team.com>
commit_hash:9f0ae549cebc6e2e3bfdb510c88afa1aa2bdec55
-rw-r--r-- | yt/cpp/mapreduce/http_client/rpc_parameters_serialization.cpp | 3 | ||||
-rw-r--r-- | yt/cpp/mapreduce/interface/client_method_options.h | 5 | ||||
-rw-r--r-- | yt/yt/client/api/operation_client.h | 2 | ||||
-rw-r--r-- | yt/yt/client/api/rpc_proxy/client_impl.cpp | 3 | ||||
-rw-r--r-- | yt/yt/client/api/rpc_proxy/helpers.cpp | 4 | ||||
-rw-r--r-- | yt/yt/client/driver/scheduler_commands.cpp | 6 | ||||
-rw-r--r-- | yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto | 2 |
7 files changed, 25 insertions, 0 deletions
diff --git a/yt/cpp/mapreduce/http_client/rpc_parameters_serialization.cpp b/yt/cpp/mapreduce/http_client/rpc_parameters_serialization.cpp index 413a09ab97..51bdcc3ceb 100644 --- a/yt/cpp/mapreduce/http_client/rpc_parameters_serialization.cpp +++ b/yt/cpp/mapreduce/http_client/rpc_parameters_serialization.cpp @@ -442,6 +442,9 @@ TNode SerializeParamsForSuspendOperation( if (options.AbortRunningJobs_) { result["abort_running_jobs"] = *options.AbortRunningJobs_; } + if (options.Reason_) { + result["reason"] = **options.Reason_; + } return result; } diff --git a/yt/cpp/mapreduce/interface/client_method_options.h b/yt/cpp/mapreduce/interface/client_method_options.h index d457bf5f43..6beed2ffdc 100644 --- a/yt/cpp/mapreduce/interface/client_method_options.h +++ b/yt/cpp/mapreduce/interface/client_method_options.h @@ -382,6 +382,11 @@ struct TSuspendOperationOptions /// /// By default running jobs are not aborted. FLUENT_FIELD_OPTION(bool, AbortRunningJobs); + + /// + /// @brief Something to show in the alert. + /// + FLUENT_FIELD_OPTION(std::optional<TString>, Reason); }; /// diff --git a/yt/yt/client/api/operation_client.h b/yt/yt/client/api/operation_client.h index 22ddbeb856..df0f3411e1 100644 --- a/yt/yt/client/api/operation_client.h +++ b/yt/yt/client/api/operation_client.h @@ -26,6 +26,7 @@ struct TSuspendOperationOptions : public TTimeoutOptions { bool AbortRunningJobs = false; + std::optional<TString> Reason; }; struct TResumeOperationOptions @@ -318,6 +319,7 @@ struct TOperation NYson::TYsonString RuntimeParameters; std::optional<bool> Suspended; + std::optional<TString> SuspendReason; NYson::TYsonString Events; NYson::TYsonString Result; diff --git a/yt/yt/client/api/rpc_proxy/client_impl.cpp b/yt/yt/client/api/rpc_proxy/client_impl.cpp index bc032c68d7..2136d59968 100644 --- a/yt/yt/client/api/rpc_proxy/client_impl.cpp +++ b/yt/yt/client/api/rpc_proxy/client_impl.cpp @@ -1166,6 +1166,9 @@ TFuture<void> TClient::SuspendOperation( NScheduler::ToProto(req, operationIdOrAlias); req->set_abort_running_jobs(options.AbortRunningJobs); + if (options.Reason) { + req->set_reason(*options.Reason); + } return req->Invoke().As<void>(); } diff --git a/yt/yt/client/api/rpc_proxy/helpers.cpp b/yt/yt/client/api/rpc_proxy/helpers.cpp index 7bbdc3a380..c8acdeb3f8 100644 --- a/yt/yt/client/api/rpc_proxy/helpers.cpp +++ b/yt/yt/client/api/rpc_proxy/helpers.cpp @@ -732,6 +732,10 @@ void ToProto(NProto::TOperation* protoOperation, const NApi::TOperation& operati protoOperation->set_suspended(*operation.Suspended); } + if (operation.SuspendReason) { + protoOperation->set_suspend_reason(*operation.SuspendReason); + } + if (operation.Events) { protoOperation->set_events(operation.Events.ToString()); } diff --git a/yt/yt/client/driver/scheduler_commands.cpp b/yt/yt/client/driver/scheduler_commands.cpp index 4fb6a48d75..0f0b4081f0 100644 --- a/yt/yt/client/driver/scheduler_commands.cpp +++ b/yt/yt/client/driver/scheduler_commands.cpp @@ -856,6 +856,12 @@ void TSuspendOperationCommand::Register(TRegistrar registrar) return command->Options.AbortRunningJobs; }) .Optional(/*init*/ false); + registrar.ParameterWithUniversalAccessor<std::optional<TString>>( + "reason", + [] (TThis* command) -> auto& { + return command->Options.Reason; + }) + .Optional(); } void TSuspendOperationCommand::DoExecute(ICommandContextPtr context) diff --git a/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto b/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto index f0c94b33ef..49960c392c 100644 --- a/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto +++ b/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto @@ -2268,6 +2268,7 @@ message TReqSuspendOperation string operation_alias = 3; } optional bool abort_running_jobs = 2 [default = false]; + optional string reason = 4; } message TRspSuspendOperation @@ -3058,6 +3059,7 @@ message TOperation optional bytes runtime_parameters = 16; // YSON optional bool suspended = 17; + optional string suspend_reason = 29; optional bytes events = 18; // YSON optional bytes result = 19; // YSON |