Skip to content

Commit 96c9c9b

Browse files
authored
Remove using msgbus register node call (#6679)
1 parent b4dd540 commit 96c9c9b

File tree

1 file changed

+16
-123
lines changed

1 file changed

+16
-123
lines changed

ydb/core/config/init/init.cpp

+16-123
Original file line numberDiff line numberDiff line change
@@ -181,50 +181,18 @@ class TDefaultNodeBrokerClient
181181
}
182182
}
183183

184-
static void ProcessRegistrationDynamicNodeResult(
185-
const THolder<NClient::TRegistrationResult>& result,
186-
NKikimrConfig::TAppConfig& appConfig,
187-
ui32& nodeId,
188-
TKikimrScopeId& outScopeId)
189-
{
190-
nodeId = result->GetNodeId();
191-
outScopeId = TKikimrScopeId(result->GetScopeId());
192-
193-
auto &nsConfig = *appConfig.MutableNameserviceConfig();
194-
nsConfig.ClearNode();
195-
196-
auto &dnConfig = *appConfig.MutableDynamicNodeConfig();
197-
for (auto &node : result->Record().GetNodes()) {
198-
if (node.GetNodeId() == result->GetNodeId()) {
199-
dnConfig.MutableNodeInfo()->CopyFrom(node);
200-
} else {
201-
auto &info = *nsConfig.AddNode();
202-
info.SetNodeId(node.GetNodeId());
203-
info.SetAddress(node.GetAddress());
204-
info.SetPort(node.GetPort());
205-
info.SetHost(node.GetHost());
206-
info.SetInterconnectHost(node.GetResolveHost());
207-
info.MutableLocation()->CopyFrom(node.GetLocation());
208-
}
209-
}
210-
}
211-
212-
std::variant<
213-
NYdb::NDiscovery::TNodeRegistrationResult,
214-
THolder<NClient::TRegistrationResult>> Result;
184+
NYdb::NDiscovery::TNodeRegistrationResult Result;
215185
public:
216-
TResult(std::variant<
217-
NYdb::NDiscovery::TNodeRegistrationResult,
218-
THolder<NClient::TRegistrationResult>> result)
186+
TResult(NYdb::NDiscovery::TNodeRegistrationResult result)
219187
: Result(std::move(result))
220188
{}
221189

222190
void Apply(NKikimrConfig::TAppConfig& appConfig, ui32& nodeId, TKikimrScopeId& scopeId) const override {
223-
std::visit([&appConfig, &nodeId, &scopeId](const auto& res) mutable { ProcessRegistrationDynamicNodeResult(res, appConfig, nodeId, scopeId); }, Result);
191+
ProcessRegistrationDynamicNodeResult(Result, appConfig, nodeId, scopeId);
224192
}
225193
};
226194

227-
static NYdb::NDiscovery::TNodeRegistrationResult TryToRegisterDynamicNodeViaDiscoveryService(
195+
static NYdb::NDiscovery::TNodeRegistrationResult TryToRegisterDynamicNode(
228196
const TGrpcSslSettings& grpcSettings,
229197
const TString addr,
230198
const NYdb::NDiscovery::TNodeRegistrationSettings& settings,
@@ -252,83 +220,23 @@ class TDefaultNodeBrokerClient
252220
return result;
253221
}
254222

255-
static THolder<NClient::TRegistrationResult> TryToRegisterDynamicNodeViaLegacyService(
256-
const TGrpcSslSettings& grpcSettings,
257-
const TString& addr,
258-
const TNodeRegistrationSettings& settings,
259-
const IEnv& env)
260-
{
261-
NClient::TKikimr kikimr(GetKikimr(grpcSettings, addr, env));
262-
auto registrant = kikimr.GetNodeRegistrant();
263-
264-
return MakeHolder<NClient::TRegistrationResult>(
265-
registrant.SyncRegisterNode(
266-
ToString(settings.DomainName),
267-
settings.NodeHost,
268-
settings.InterconnectPort,
269-
settings.NodeAddress,
270-
settings.NodeResolveHost,
271-
settings.Location,
272-
settings.FixedNodeID,
273-
settings.Path));
274-
}
275-
276-
static THolder<NClient::TRegistrationResult> RegisterDynamicNodeViaLegacyService(
277-
const TGrpcSslSettings& grpcSettings,
278-
const TVector<TString>& addrs,
279-
const TNodeRegistrationSettings& settings,
280-
const IEnv& env,
281-
IInitLogger& logger)
282-
{
283-
THolder<NClient::TRegistrationResult> result;
284-
while (!result || !result->IsSuccess()) {
285-
for (const auto& addr : addrs) {
286-
result = TryToRegisterDynamicNodeViaLegacyService(
287-
grpcSettings,
288-
addr,
289-
settings,
290-
env);
291-
if (result->IsSuccess()) {
292-
logger.Out() << "Success. Registered via legacy service as " << result->GetNodeId() << Endl;
293-
break;
294-
}
295-
logger.Err() << "Registration error: " << result->GetErrorMessage() << Endl;
296-
}
297-
if (!result || !result->IsSuccess()) {
298-
env.Sleep(TDuration::Seconds(1));
299-
}
300-
}
301-
if (!result) {
302-
ythrow yexception() << "Invalid result";
303-
}
304-
305-
if (!result->IsSuccess()) {
306-
ythrow yexception() << "Cannot register dynamic node: " << result->GetErrorMessage();
307-
}
308-
309-
return result;
310-
}
311-
312-
static NYdb::NDiscovery::TNodeRegistrationResult RegisterDynamicNodeViaDiscoveryService(
223+
static NYdb::NDiscovery::TNodeRegistrationResult RegisterDynamicNodeImpl(
313224
const TGrpcSslSettings& grpcSettings,
314225
const TVector<TString>& addrs,
315226
const NYdb::NDiscovery::TNodeRegistrationSettings& settings,
316227
const IEnv& env,
317228
IInitLogger& logger)
318229
{
319230
NYdb::NDiscovery::TNodeRegistrationResult result;
320-
const size_t maxNumberReceivedCallUnimplemented = 5;
321-
size_t currentNumberReceivedCallUnimplemented = 0;
322-
while (!result.IsSuccess() && currentNumberReceivedCallUnimplemented < maxNumberReceivedCallUnimplemented) {
231+
while (!result.IsSuccess()) {
323232
for (const auto& addr : addrs) {
324233
logger.Out() << "Trying to register dynamic node to " << addr << Endl;
325-
result = TryToRegisterDynamicNodeViaDiscoveryService(
326-
grpcSettings,
327-
addr,
328-
settings,
329-
env);
234+
result = TryToRegisterDynamicNode(grpcSettings,
235+
addr,
236+
settings,
237+
env);
330238
if (result.IsSuccess()) {
331-
logger.Out() << "Success. Registered via discovery service as " << result.GetNodeId() << Endl;
239+
logger.Out() << "Success. Registered as " << result.GetNodeId() << Endl;
332240
logger.Out() << "Node name: ";
333241
if (result.HasNodeName()) {
334242
logger.Out() << result.GetNodeName();
@@ -340,9 +248,6 @@ class TDefaultNodeBrokerClient
340248
}
341249
if (!result.IsSuccess()) {
342250
env.Sleep(TDuration::Seconds(1));
343-
if (result.GetStatus() == NYdb::EStatus::CLIENT_CALL_UNIMPLEMENTED) {
344-
currentNumberReceivedCallUnimplemented++;
345-
}
346251
}
347252
}
348253
return result;
@@ -381,23 +286,11 @@ class TDefaultNodeBrokerClient
381286
{
382287
auto newRegSettings = GetNodeRegistrationSettings(regSettings);
383288

384-
std::variant<
385-
NYdb::NDiscovery::TNodeRegistrationResult,
386-
THolder<NClient::TRegistrationResult>> result = RegisterDynamicNodeViaDiscoveryService(
387-
grpcSettings,
388-
addrs,
389-
newRegSettings,
390-
env,
391-
logger);
392-
393-
if (!std::get<NYdb::NDiscovery::TNodeRegistrationResult>(result).IsSuccess()) {
394-
result = RegisterDynamicNodeViaLegacyService(
395-
grpcSettings,
396-
addrs,
397-
regSettings,
398-
env,
399-
logger);
400-
}
289+
NYdb::NDiscovery::TNodeRegistrationResult result = RegisterDynamicNodeImpl(grpcSettings,
290+
addrs,
291+
newRegSettings,
292+
env,
293+
logger);
401294

402295
return std::make_shared<TResult>(std::move(result));
403296
}

0 commit comments

Comments
 (0)