Browse Source

YT-15939: Chaos replication collocation options
e84a94c1998096fe46ef543149e962be083af035

akozhikhov 6 months ago
parent
commit
e16cdb6f13

+ 3 - 0
yt/yt/client/api/rpc_proxy/client_impl.cpp

@@ -737,6 +737,9 @@ TFuture<void> TClient::AlterReplicationCard(
     if (options.ReplicationCardCollocationId) {
         ToProto(req->mutable_replication_card_collocation_id(), *options.ReplicationCardCollocationId);
     }
+    if (options.CollocationOptions) {
+        req->set_collocation_options(ConvertToYsonString(options.CollocationOptions).ToString());
+    }
 
     return req->Invoke().As<void>();
 }

+ 1 - 0
yt/yt/client/api/table_client.h

@@ -278,6 +278,7 @@ struct TAlterReplicationCardOptions
     NTabletClient::TReplicatedTableOptionsPtr ReplicatedTableOptions;
     std::optional<bool> EnableReplicatedTableTracker;
     std::optional<NChaosClient::TReplicationCardCollocationId> ReplicationCardCollocationId;
+    NTabletClient::TReplicationCollocationOptionsPtr CollocationOptions;
 };
 
 struct TGetReplicationCardOptions

+ 6 - 0
yt/yt/client/driver/chaos_commands.cpp

@@ -64,6 +64,12 @@ void TAlterReplicationCardCommand::Register(TRegistrar registrar)
             return command->Options.ReplicationCardCollocationId;
         })
         .Optional(/*init*/ false);
+    registrar.ParameterWithUniversalAccessor<NTabletClient::TReplicationCollocationOptionsPtr>(
+        "collocation_options",
+        [] (TThis* command) -> auto& {
+            return command->Options.CollocationOptions;
+        })
+        .Optional(/*init*/ false);
 }
 
 void TAlterReplicationCardCommand::DoExecute(ICommandContextPtr context)

+ 1 - 0
yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto

@@ -2001,6 +2001,7 @@ message TReqAlterReplicationCard
     optional bytes replicated_table_options = 2; // YSON
     optional bool enable_replicated_table_tracker = 3;
     optional NYT.NProto.TGuid replication_card_collocation_id = 4;
+    optional bytes collocation_options = 5; // NTabletClient::TReplicationCollocationOptions
 
     optional TMutatingOptions mutating_options = 100;
 }