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