Skip to content

Commit 2120c0c

Browse files
committed
Fixed EnableOnServerless validation
1 parent 45dd216 commit 2120c0c

File tree

3 files changed

+18
-12
lines changed

3 files changed

+18
-12
lines changed

ydb/core/kqp/workload_service/actors/scheme_actors.cpp

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -138,17 +138,23 @@ class TPoolFetcherActor : public TSchemeActorBase<TPoolFetcherActor> {
138138

139139
void Handle(TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr& ev) {
140140
const auto& results = ev->Get()->Request->ResultSet;
141-
if (results.size() != 1) {
141+
if (results.size() != 2) {
142142
Reply(Ydb::StatusIds::INTERNAL_ERROR, "Unexpected scheme cache response");
143143
return;
144144
}
145145

146-
const auto& result = results[0];
147-
if (!EnableOnServerless && result.DomainInfo && result.DomainInfo->IsServerless()) {
146+
const auto& databaseResult = results[1];
147+
if (!databaseResult.DomainInfo) {
148+
Reply(Ydb::StatusIds::NOT_FOUND, TStringBuilder() << "Database with name " << Database << " not found or you don't have access permissions");
149+
return;
150+
}
151+
152+
if (!EnableOnServerless && databaseResult.DomainInfo->IsServerless()) {
148153
Reply(Ydb::StatusIds::UNSUPPORTED, "Resource pools are disabled for serverless domains. Please contact your system administrator to enable it");
149154
return;
150155
}
151156

157+
const auto& result = results[0];
152158
switch (result.Status) {
153159
case EStatus::Unknown:
154160
case EStatus::PathNotTable:
@@ -187,12 +193,12 @@ class TPoolFetcherActor : public TSchemeActorBase<TPoolFetcherActor> {
187193
void StartRequest() override {
188194
LOG_D("Start pool fetching");
189195
auto event = NTableCreator::BuildSchemeCacheNavigateRequest(
190-
{{".resource_pools", PoolId}},
196+
{{".resource_pools", PoolId}, {}},
191197
Database,
192-
UserToken
198+
UserToken,
199+
NSchemeCache::TSchemeCacheNavigate::OpPath
193200
);
194201
event->ResultSet[0].Access |= NACLib::SelectRow;
195-
event->ResultSet[0].Operation = NSchemeCache::TSchemeCacheNavigate::OpPath;
196202
Send(MakeSchemeCacheID(), new TEvTxProxySchemeCache::TEvNavigateKeySet(event.Release()), IEventHandle::FlagTrackDelivery);
197203
}
198204

ydb/library/table_creator/table_creator.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ using TTableCreatorRetryPolicy = IRetryPolicy<bool>;
388388

389389
namespace NTableCreator {
390390

391-
THolder<NSchemeCache::TSchemeCacheNavigate> BuildSchemeCacheNavigateRequest(const TVector<TVector<TString>>& pathsComponents, const TString& database, TIntrusiveConstPtr<NACLib::TUserToken> userToken) {
391+
THolder<NSchemeCache::TSchemeCacheNavigate> BuildSchemeCacheNavigateRequest(const TVector<TVector<TString>>& pathsComponents, const TString& database, TIntrusiveConstPtr<NACLib::TUserToken> userToken, NSchemeCache::TSchemeCacheNavigate::EOp operation) {
392392
auto request = MakeHolder<NSchemeCache::TSchemeCacheNavigate>();
393393
auto databasePath = SplitPath(database);
394394
request->DatabaseName = CanonizePath(databasePath);
@@ -398,7 +398,7 @@ THolder<NSchemeCache::TSchemeCacheNavigate> BuildSchemeCacheNavigateRequest(cons
398398

399399
for (const auto& pathComponents : pathsComponents) {
400400
auto& entry = request->ResultSet.emplace_back();
401-
entry.Operation = NSchemeCache::TSchemeCacheNavigate::OpTable;
401+
entry.Operation = operation;
402402
entry.RequestType = NSchemeCache::TSchemeCacheNavigate::TEntry::ERequestType::ByPath;
403403
entry.ShowPrivatePath = true;
404404
entry.Path = databasePath;
@@ -408,8 +408,8 @@ THolder<NSchemeCache::TSchemeCacheNavigate> BuildSchemeCacheNavigateRequest(cons
408408
return request;
409409
}
410410

411-
THolder<NSchemeCache::TSchemeCacheNavigate> BuildSchemeCacheNavigateRequest(const TVector<TVector<TString>>& pathsComponents) {
412-
return BuildSchemeCacheNavigateRequest(pathsComponents, AppData()->TenantName, nullptr);
411+
THolder<NSchemeCache::TSchemeCacheNavigate> BuildSchemeCacheNavigateRequest(const TVector<TVector<TString>>& pathsComponents, NSchemeCache::TSchemeCacheNavigate::EOp operation) {
412+
return BuildSchemeCacheNavigateRequest(pathsComponents, AppData()->TenantName, nullptr, operation);
413413
}
414414

415415
NKikimrSchemeOp::TColumnDescription TMultiTableCreator::Col(const TString& columnName, const char* columnType) {

ydb/library/table_creator/table_creator.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ class TMultiTableCreator : public NActors::TActorBootstrapped<TMultiTableCreator
6666
NYql::TIssues Issues;
6767
};
6868

69-
THolder<NSchemeCache::TSchemeCacheNavigate> BuildSchemeCacheNavigateRequest(const TVector<TVector<TString>>& pathsComponents, const TString& database, TIntrusiveConstPtr<NACLib::TUserToken> userToken);
70-
THolder<NSchemeCache::TSchemeCacheNavigate> BuildSchemeCacheNavigateRequest(const TVector<TVector<TString>>& pathsComponents);
69+
THolder<NSchemeCache::TSchemeCacheNavigate> BuildSchemeCacheNavigateRequest(const TVector<TVector<TString>>& pathsComponents, const TString& database, TIntrusiveConstPtr<NACLib::TUserToken> userToken, NSchemeCache::TSchemeCacheNavigate::EOp operation = NSchemeCache::TSchemeCacheNavigate::OpTable);
70+
THolder<NSchemeCache::TSchemeCacheNavigate> BuildSchemeCacheNavigateRequest(const TVector<TVector<TString>>& pathsComponents, NSchemeCache::TSchemeCacheNavigate::EOp operation = NSchemeCache::TSchemeCacheNavigate::OpTable);
7171

7272
} // namespace NTableCreator
7373

0 commit comments

Comments
 (0)