Skip to content

Commit 47cb456

Browse files
authored
Merge c5d3a96 into a6c5f95
2 parents a6c5f95 + c5d3a96 commit 47cb456

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+1180
-710
lines changed

ydb/core/blobstorage/base/blobstorage_console_events.h

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,16 @@ namespace NKikimr {
3232
NKikimrBlobStorage::TEvControllerConsoleCommitRequest, EvControllerConsoleCommitRequest> {
3333
TEvControllerConsoleCommitRequest() = default;
3434

35-
TEvControllerConsoleCommitRequest(const TString& yamlConfig) {
35+
TEvControllerConsoleCommitRequest(
36+
const TString& yamlConfig,
37+
bool allowUnknownFields = false,
38+
bool allowIncorrectVersion = false,
39+
bool allowIncorrectCluster = false) {
40+
3641
Record.SetYAML(yamlConfig);
42+
Record.SetAllowUnknownFields(allowUnknownFields);
43+
Record.SetAllowIncorrectVersion(allowIncorrectVersion);
44+
Record.SetAllowIncorrectCluster(allowIncorrectCluster);
3745
}
3846

3947
TString ToString() const override {
@@ -76,8 +84,15 @@ namespace NKikimr {
7684
NKikimrBlobStorage::TEvControllerReplaceConfigRequest, EvControllerReplaceConfigRequest> {
7785
TEvControllerReplaceConfigRequest() = default;
7886

79-
TEvControllerReplaceConfigRequest(std::optional<TString> clusterYaml, std::optional<TString> storageYaml,
80-
std::optional<bool> switchDedicatedStorageSection, bool dedicatedConfigMode) {
87+
TEvControllerReplaceConfigRequest(
88+
std::optional<TString> clusterYaml,
89+
std::optional<TString> storageYaml,
90+
std::optional<bool> switchDedicatedStorageSection,
91+
bool dedicatedConfigMode,
92+
bool allowUnknownFields,
93+
bool allowIncorrectVersion,
94+
bool allowIncorrectCluster) {
95+
8196
if (clusterYaml) {
8297
Record.SetClusterYaml(*clusterYaml);
8398
}
@@ -88,6 +103,9 @@ namespace NKikimr {
88103
Record.SetSwitchDedicatedStorageSection(*switchDedicatedStorageSection);
89104
}
90105
Record.SetDedicatedConfigMode(dedicatedConfigMode);
106+
Record.SetAllowUnknownFields(allowUnknownFields);
107+
Record.SetAllowIncorrectVersion(allowIncorrectVersion);
108+
Record.SetAllowIncorrectCluster(allowIncorrectCluster);
91109
}
92110

93111
TString ToString() const override {

ydb/core/blobstorage/nodewarden/distconf_console.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@ namespace NKikimr::NStorage {
103103
}
104104

105105
NTabletPipe::SendData(SelfId(), ConsolePipeId, new TEvBlobStorage::TEvControllerConsoleCommitRequest(
106-
StorageConfigYaml), ++CommitRequestCookie);
106+
StorageConfigYaml), // FIXME
107+
++CommitRequestCookie);
107108
break;
108109
}
109110

ydb/core/cms/console/console_configs_manager.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,8 @@ void TConfigsManager::ValidateMainConfig(TUpdateConfigOpContext& opCtx) {
113113
}
114114
} catch (const yexception &e) {
115115
opCtx.Error = e.what();
116+
} catch (const std::exception& e) {
117+
opCtx.Error = e.what();
116118
}
117119
}
118120

ydb/core/cms/console/console_handshake.cpp

Lines changed: 60 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,45 @@ namespace NKikimr::NConsole {
1616

1717
class TConfigsManager::TConsoleCommitActor : public TActorBootstrapped<TConsoleCommitActor> {
1818
public:
19-
TConsoleCommitActor(TActorId senderId, const TString& mainYamlConfig, TActorId interconnectSession, ui64 cookie)
19+
TConsoleCommitActor(
20+
TActorId senderId,
21+
const TString& mainYamlConfig,
22+
bool allowUnknownFields,
23+
bool allowIncorrectVersion,
24+
bool allowIncorrectCluster,
25+
TActorId interconnectSession,
26+
ui64 cookie)
2027
: SenderId(senderId)
2128
, MainYamlConfig(mainYamlConfig)
29+
, AllowUnknownFields(allowUnknownFields)
30+
, AllowIncorrectVersion(allowIncorrectVersion)
31+
, AllowIncorrectCluster(allowIncorrectCluster)
2232
, InterconnectSession(interconnectSession)
2333
, Cookie(cookie)
2434
{}
2535

2636
void Bootstrap(const TActorId& consoleId) {
27-
auto request = std::make_unique<TEvConsole::TEvReplaceYamlConfigRequest>();
28-
request->Record.MutableRequest()->set_config(MainYamlConfig);
29-
Send(consoleId, request.release());
37+
if (AllowIncorrectVersion xor AllowIncorrectCluster) {
38+
auto response = std::make_unique<TEvBlobStorage::TEvControllerConsoleCommitResponse>();
39+
response->Record.SetStatus(NKikimrBlobStorage::TEvControllerConsoleCommitResponse::NotCommitted);
40+
response->Record.SetErrorReason("Options AllowIncorrectVersion and AllowIncorrectCluster currently can be used only together");
41+
SendInReply(std::move(response));
42+
PassAway();
43+
}
44+
45+
auto executeRequest = [&](auto& request) {
46+
request->Record.MutableRequest()->set_config(MainYamlConfig);
47+
request->Record.MutableRequest()->set_allow_unknown_fields(AllowUnknownFields);
48+
Send(consoleId, request.release());
49+
};
50+
51+
if (AllowIncorrectVersion && AllowIncorrectCluster) {
52+
auto request = std::make_unique<TEvConsole::TEvSetYamlConfigRequest>();
53+
executeRequest(request);
54+
} else {
55+
auto request = std::make_unique<TEvConsole::TEvReplaceYamlConfigRequest>();
56+
executeRequest(request);
57+
}
3058

3159
Become(&TThis::StateWork);
3260
}
@@ -38,6 +66,13 @@ class TConfigsManager::TConsoleCommitActor : public TActorBootstrapped<TConsoleC
3866
PassAway();
3967
}
4068

69+
void Handle(TEvConsole::TEvSetYamlConfigResponse::TPtr& /*ev*/) {
70+
auto response = std::make_unique<TEvBlobStorage::TEvControllerConsoleCommitResponse>();
71+
response->Record.SetStatus(NKikimrBlobStorage::TEvControllerConsoleCommitResponse::Committed);
72+
SendInReply(std::move(response));
73+
PassAway();
74+
}
75+
4176
void Handle(TEvConsole::TEvGenericError::TPtr& ev) {
4277
auto response = std::make_unique<TEvBlobStorage::TEvControllerConsoleCommitResponse>();
4378
response->Record.SetStatus(NKikimrBlobStorage::TEvControllerConsoleCommitResponse::NotCommitted);
@@ -48,13 +83,17 @@ class TConfigsManager::TConsoleCommitActor : public TActorBootstrapped<TConsoleC
4883

4984
STRICT_STFUNC(StateWork,
5085
hFunc(TEvConsole::TEvReplaceYamlConfigResponse, Handle)
86+
hFunc(TEvConsole::TEvSetYamlConfigResponse, Handle)
5187
hFunc(TEvConsole::TEvGenericError, Handle)
5288
sFunc(TEvents::TEvPoisonPill, PassAway)
5389
)
5490

5591
private:
5692
TActorId SenderId;
5793
TString MainYamlConfig;
94+
bool AllowUnknownFields;
95+
bool AllowIncorrectVersion;
96+
bool AllowIncorrectCluster;
5897
TActorId InterconnectSession;
5998
ui64 Cookie;
6099

@@ -117,12 +156,23 @@ void TConfigsManager::Handle(TEvBlobStorage::TEvControllerProposeConfigRequest::
117156

118157
void TConfigsManager::Handle(TEvBlobStorage::TEvControllerConsoleCommitRequest::TPtr& ev, const TActorContext& /*ctx*/) {
119158
auto response = std::make_unique<TEvBlobStorage::TEvControllerConsoleCommitResponse>();
120-
const auto& mainYamlConfig = ev->Get()->Record.GetYAML();
159+
auto& record = ev->Get()->Record;
160+
const auto& mainYamlConfig = record.GetYAML();
161+
bool allowUnknownFields = record.GetAllowUnknownFields();
162+
bool allowIncorrectVersion = record.GetAllowIncorrectVersion();
163+
bool allowIncorrectCluster = record.GetAllowIncorrectCluster();
121164
if (!CheckSession(*ev, response, NKikimrBlobStorage::TEvControllerConsoleCommitResponse::SessionMismatch)) {
122165
return;
123166
}
124167

125-
IActor* actor = new TConsoleCommitActor(ev->Sender, mainYamlConfig, ev->InterconnectSession, ev->Cookie);
168+
IActor* actor = new TConsoleCommitActor(
169+
ev->Sender,
170+
mainYamlConfig,
171+
allowUnknownFields,
172+
allowIncorrectVersion,
173+
allowIncorrectCluster,
174+
ev->InterconnectSession,
175+
ev->Cookie);
126176
CommitActor = Register(actor);
127177
}
128178

@@ -138,17 +188,18 @@ void TConfigsManager::Handle(TEvBlobStorage::TEvControllerValidateConfigRequest:
138188
TUpdateConfigOpContext opCtx;
139189
ReplaceMainConfigMetadata(mainYamlConfig, false, opCtx);
140190
ValidateMainConfig(opCtx);
191+
bool hasForbiddenUnknownFields = !opCtx.UnknownFields.empty() && !ev->Get()->Record.GetAllowUnknownFields();
141192

142-
if (opCtx.Error || !opCtx.UnknownFields.empty()) {
193+
if (opCtx.Error || hasForbiddenUnknownFields) {
143194
record.SetStatus(NKikimrBlobStorage::TEvControllerValidateConfigResponse::ConfigNotValid);
144195
TStringStream s;
145196
if (opCtx.Error) {
146197
s << *opCtx.Error << (opCtx.UnknownFields.empty() ? "" : " and ");
147198
}
148-
if (!opCtx.UnknownFields.empty()) {
199+
if (hasForbiddenUnknownFields) {
149200
s << "has forbidden unknown fields";
150201
}
151-
record.SetErrorReason(s.Str());
202+
record.SetErrorReason(s.Str()); // TODO get warnings back
152203
} else {
153204
record.SetStatus(NKikimrBlobStorage::TEvControllerValidateConfigResponse::ConfigIsValid);
154205
record.SetYAML(opCtx.UpdatedConfig);

ydb/core/driver_lib/run/run.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@
9999

100100
#include <ydb/services/auth/grpc_service.h>
101101
#include <ydb/services/cms/grpc_service.h>
102-
#include <ydb/services/bsconfig/grpc_service.h>
102+
#include <ydb/services/config/grpc_service.h>
103103
#include <ydb/services/dynamic_config/grpc_service.h>
104104
#include <ydb/services/datastreams/grpc_service.h>
105105
#include <ydb/services/discovery/grpc_service.h>
@@ -620,8 +620,8 @@ void TKikimrRunner::InitializeGRpc(const TKikimrRunConfig& runConfig) {
620620
names["tablet_service"] = &hasTabletService;
621621
TServiceCfg hasView = services.empty();
622622
names["view"] = &hasView;
623-
TServiceCfg hasBSConfig = services.empty();
624-
names["bsconfig"] = &hasBSConfig;
623+
TServiceCfg hasConfig = services.empty();
624+
names["config"] = &hasConfig;
625625

626626
std::unordered_set<TString> enabled;
627627
for (const auto& name : services) {
@@ -915,8 +915,8 @@ void TKikimrRunner::InitializeGRpc(const TKikimrRunConfig& runConfig) {
915915
grpcRequestProxies[0], hasView.IsRlAllowed()));
916916
}
917917

918-
if (hasBSConfig) {
919-
server.AddService(new NGRpcService::TBSConfigGRpcService(ActorSystem.Get(), Counters, grpcRequestProxies[0]));
918+
if (hasConfig) {
919+
server.AddService(new NGRpcService::TConfigGRpcService(ActorSystem.Get(), Counters, grpcRequestProxies[0]));
920920
}
921921

922922
if (ModuleFactories) {

ydb/core/driver_lib/run/ya.make

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,7 @@ SRCS(
3636

3737
PEERDIR(
3838
contrib/libs/protobuf
39-
ydb/library/actors/core
40-
ydb/library/actors/dnsresolver
41-
ydb/library/actors/interconnect
42-
ydb/library/actors/memory_log
43-
ydb/library/actors/prof
44-
ydb/library/actors/protos
45-
ydb/library/actors/util
4639
library/cpp/getopt/small
47-
ydb/public/sdk/cpp/src/library/grpc/client
48-
ydb/library/grpc/server
49-
ydb/library/grpc/server/actors
5040
library/cpp/logger
5141
library/cpp/malloc/api
5242
library/cpp/messagebus
@@ -57,8 +47,8 @@ PEERDIR(
5747
library/cpp/svnversion
5848
ydb/core/actorlib_impl
5949
ydb/core/audit
60-
ydb/core/base
6150
ydb/core/backup/controller
51+
ydb/core/base
6252
ydb/core/blob_depot
6353
ydb/core/blobstorage
6454
ydb/core/blobstorage/backpressure
@@ -86,10 +76,10 @@ PEERDIR(
8676
ydb/core/health_check
8777
ydb/core/http_proxy
8878
ydb/core/jaeger_tracing
79+
ydb/core/kafka_proxy
8980
ydb/core/kesus/proxy
9081
ydb/core/kesus/tablet
9182
ydb/core/keyvalue
92-
ydb/core/kafka_proxy
9383
ydb/core/kqp
9484
ydb/core/kqp/federated_query
9585
ydb/core/kqp/finalize_script_service
@@ -124,11 +114,11 @@ PEERDIR(
124114
ydb/core/tracing
125115
ydb/core/tx
126116
ydb/core/tx/columnshard
127-
ydb/core/tx/coordinator
128117
ydb/core/tx/conveyor/service
129-
ydb/core/tx/limiter/service
130-
ydb/core/tx/limiter/grouped_memory/usage
118+
ydb/core/tx/coordinator
131119
ydb/core/tx/datashard
120+
ydb/core/tx/limiter/grouped_memory/usage
121+
ydb/core/tx/limiter/service
132122
ydb/core/tx/long_tx_service
133123
ydb/core/tx/long_tx_service/public
134124
ydb/core/tx/mediator
@@ -145,44 +135,54 @@ PEERDIR(
145135
ydb/core/viewer
146136
ydb/core/ymq/actor
147137
ydb/core/ymq/http
138+
ydb/library/actors/core
139+
ydb/library/actors/dnsresolver
140+
ydb/library/actors/interconnect
141+
ydb/library/actors/memory_log
142+
ydb/library/actors/prof
143+
ydb/library/actors/protos
144+
ydb/library/actors/util
148145
ydb/library/folder_service
149146
ydb/library/folder_service/proto
147+
ydb/library/grpc/server
148+
ydb/library/grpc/server/actors
150149
ydb/library/pdisk_io
151150
ydb/library/security
152-
yql/essentials/minikql/comp_nodes/llvm14
153-
yt/yql/providers/yt/codec/codegen
154-
yt/yql/providers/yt/comp_nodes/llvm14
155-
yt/yql/providers/yt/comp_nodes/dq/llvm14
156151
ydb/library/yql/providers/pq/cm_client
157152
ydb/library/yql/providers/s3/actors
158-
yql/essentials/public/udf/service/exception_policy
159153
ydb/public/lib/base
160154
ydb/public/lib/deprecated/client
155+
ydb/public/sdk/cpp/src/library/grpc/client
161156
ydb/services/auth
162157
ydb/services/backup
163-
ydb/services/bsconfig
164158
ydb/services/cms
165-
ydb/services/dynamic_config
159+
ydb/services/config
166160
ydb/services/datastreams
161+
ydb/services/deprecated/persqueue_v0
167162
ydb/services/discovery
163+
ydb/services/dynamic_config
164+
ydb/services/ext_index/metadata
165+
ydb/services/ext_index/service
168166
ydb/services/fq
169167
ydb/services/kesus
170168
ydb/services/keyvalue
171169
ydb/services/local_discovery
172170
ydb/services/maintenance
173-
ydb/services/metadata/ds_table
174171
ydb/services/metadata
175-
ydb/services/ext_index/service
176-
ydb/services/ext_index/metadata
172+
ydb/services/metadata/ds_table
177173
ydb/services/monitoring
178174
ydb/services/persqueue_cluster_discovery
179-
ydb/services/deprecated/persqueue_v0
180175
ydb/services/persqueue_v1
181176
ydb/services/rate_limiter
182177
ydb/services/replication
183178
ydb/services/tablet
184179
ydb/services/view
185180
ydb/services/ydb
181+
yql/essentials/minikql/comp_nodes/llvm14
182+
yql/essentials/public/udf/service/exception_policy
183+
yt/yql/providers/yt/codec/codegen
184+
yt/yql/providers/yt/comp_nodes/dq/llvm14
185+
yt/yql/providers/yt/comp_nodes/llvm14
186186
)
187187

188188
YQL_LAST_ABI_VERSION()

0 commit comments

Comments
 (0)