@@ -237,7 +237,7 @@ class TWorkloadServiceYdbSetup : public IYdbSetup {
237
237
void SetLoggerSettings (TServerSettings& serverSettings) const {
238
238
auto loggerInitializer = [](TTestActorRuntime& runtime) {
239
239
runtime.SetLogPriority (NKikimrServices::KQP_WORKLOAD_SERVICE, NLog::EPriority::PRI_TRACE);
240
- runtime.SetLogPriority (NKikimrServices::KQP_SESSION, NLog::EPriority::PRI_DEBUG );
240
+ runtime.SetLogPriority (NKikimrServices::KQP_SESSION, NLog::EPriority::PRI_TRACE );
241
241
};
242
242
243
243
serverSettings.SetLoggerInitializer (loggerInitializer);
@@ -254,16 +254,50 @@ class TWorkloadServiceYdbSetup : public IYdbSetup {
254
254
.SetAppConfig (appConfig)
255
255
.SetFeatureFlags (appConfig.GetFeatureFlags ());
256
256
257
+ if (Settings_.CreateSampleTenants_ ) {
258
+ serverSettings
259
+ .SetDynamicNodeCount (2 )
260
+ .AddStoragePoolType (Settings_.GetDedicatedTenantName ())
261
+ .AddStoragePoolType (Settings_.GetSharedTenantName ());
262
+ }
263
+
257
264
SetLoggerSettings (serverSettings);
258
265
259
266
return serverSettings;
260
267
}
261
268
269
+ void SetupResourcesTenant (Ydb::Cms::CreateDatabaseRequest& request, Ydb::Cms::StorageUnits* storage, const TString& name) {
270
+ request.set_path (name);
271
+ storage->set_unit_kind (name);
272
+ storage->set_count (1 );
273
+ }
274
+
275
+ void CreateTenants () {
276
+ { // Dedicated
277
+ Ydb::Cms::CreateDatabaseRequest request;
278
+ SetupResourcesTenant (request, request.mutable_resources ()->add_storage_units (), Settings_.GetDedicatedTenantName ());
279
+ Tenants_->CreateTenant (std::move (request));
280
+ }
281
+
282
+ { // Shared
283
+ Ydb::Cms::CreateDatabaseRequest request;
284
+ SetupResourcesTenant (request, request.mutable_shared_resources ()->add_storage_units (), Settings_.GetSharedTenantName ());
285
+ Tenants_->CreateTenant (std::move (request));
286
+ }
287
+
288
+ { // Serverless
289
+ Ydb::Cms::CreateDatabaseRequest request;
290
+ request.set_path (Settings_.GetServerlessTenantName ());
291
+ request.mutable_serverless_resources ()->set_shared_database_path (Settings_.GetSharedTenantName ());
292
+ Tenants_->CreateTenant (std::move (request));
293
+ }
294
+ }
295
+
262
296
void InitializeServer () {
263
297
ui32 grpcPort = PortManager_.GetPort ();
264
298
TServerSettings serverSettings = GetServerSettings (grpcPort);
265
299
266
- Server_ = std::make_unique <TServer>(serverSettings);
300
+ Server_ = MakeIntrusive <TServer>(serverSettings);
267
301
Server_->EnableGRpc (grpcPort);
268
302
GetRuntime ()->SetDispatchTimeout (FUTURE_WAIT_TIMEOUT);
269
303
@@ -276,10 +310,15 @@ class TWorkloadServiceYdbSetup : public IYdbSetup {
276
310
277
311
TableClient_ = std::make_unique<NYdb::NTable::TTableClient>(*YdbDriver_, NYdb::NTable::TClientSettings ().AuthToken (" user@" BUILTIN_SYSTEM_DOMAIN));
278
312
TableClientSession_ = std::make_unique<NYdb::NTable::TSession>(TableClient_->CreateSession ().GetValueSync ().GetSession ());
313
+
314
+ Tenants_ = std::make_unique<TTenants>(Server_);
315
+ if (Settings_.CreateSampleTenants_ ) {
316
+ CreateTenants ();
317
+ }
279
318
}
280
319
281
320
void CreateSamplePool () const {
282
- if (!Settings_.EnableResourcePools_ ) {
321
+ if (!Settings_.EnableResourcePools_ || Settings_. CreateSampleTenants_ ) {
283
322
return ;
284
323
}
285
324
@@ -488,7 +527,7 @@ class TWorkloadServiceYdbSetup : public IYdbSetup {
488
527
request->SetType (NKikimrKqp::QUERY_TYPE_SQL_GENERIC_QUERY);
489
528
request->SetAction (NKikimrKqp::QUERY_ACTION_EXECUTE);
490
529
request->SetDatabase (Settings_.DomainName_ );
491
- request->SetPoolId (settings.PoolId_ );
530
+ request->SetPoolId (* settings.PoolId_ );
492
531
493
532
return event;
494
533
}
@@ -529,9 +568,10 @@ class TWorkloadServiceYdbSetup : public IYdbSetup {
529
568
const TYdbSetupSettings Settings_;
530
569
531
570
TPortManager PortManager_;
532
- std::unique_ptr<TServer> Server_;
571
+ TServer::TPtr Server_;
533
572
std::unique_ptr<TClient> Client_;
534
573
std::unique_ptr<TDriver> YdbDriver_;
574
+ std::unique_ptr<TTenants> Tenants_;
535
575
536
576
std::unique_ptr<NYdb::NTable::TTableClient> TableClient_;
537
577
std::unique_ptr<NYdb::NTable::TSession> TableClientSession_;
@@ -580,6 +620,18 @@ TIntrusivePtr<IYdbSetup> TYdbSetupSettings::Create() const {
580
620
return MakeIntrusive<TWorkloadServiceYdbSetup>(*this );
581
621
}
582
622
623
+ TString TYdbSetupSettings::GetDedicatedTenantName () const {
624
+ return TStringBuilder () << CanonizePath (DomainName_) << " /test-dedicated" ;
625
+ }
626
+
627
+ TString TYdbSetupSettings::GetSharedTenantName () const {
628
+ return TStringBuilder () << CanonizePath (DomainName_) << " /test-shared" ;
629
+ }
630
+
631
+ TString TYdbSetupSettings::GetServerlessTenantName () const {
632
+ return TStringBuilder () << CanonizePath (DomainName_) << " /test-serverless" ;
633
+ }
634
+
583
635
// // IYdbSetup
584
636
585
637
void IYdbSetup::WaitFor (TDuration timeout, TString description, std::function<bool (TString&)> callback) {
0 commit comments