Skip to content

Commit 588c158

Browse files
committed
Added unit test for disable objects on serverless
1 parent ba36e0e commit 588c158

File tree

5 files changed

+46
-3
lines changed

5 files changed

+46
-3
lines changed

ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7212,6 +7212,46 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
72127212
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::GENERIC_ERROR, result.GetIssues().ToString());
72137213
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Classifier with name MyResourcePoolClassifier not found in database /Root");
72147214
}
7215+
7216+
Y_UNIT_TEST(DisableMetadataObjectsOnServerless) {
7217+
auto ydb = NWorkload::TYdbSetupSettings()
7218+
.CreateSampleTenants(true)
7219+
.EnableMetadataObjectsOnServerless(false)
7220+
.Create();
7221+
7222+
auto checkDisabled = [](const auto& result) {
7223+
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), NYdb::EStatus::GENERIC_ERROR, result.GetIssues().ToString());
7224+
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Objects SECRET are disabled for serverless domains. Please contact your system administrator to enable it");
7225+
};
7226+
7227+
const auto& createSql = "CREATE OBJECT MySecretObject (TYPE SECRET) WITH (value=\"qwerty\");";
7228+
const auto& alterSql = "ALTER OBJECT MySecretObject (TYPE SECRET) SET value = \"abcde\";";
7229+
const auto& upsertSql = "UPSERT OBJECT MySecretObject (TYPE SECRET) WITH value = \"edcba\";";
7230+
const auto& dropSql = "DROP OBJECT MySecretObject (TYPE SECRET);";
7231+
7232+
auto settings = NWorkload::TQueryRunnerSettings().PoolId("");
7233+
7234+
// Dedicated, enabled
7235+
settings.Database(ydb->GetSettings().GetDedicatedTenantName()).NodeIndex(1);
7236+
NWorkload::TSampleQueries::CheckSuccess(ydb->ExecuteQuery(createSql, settings));
7237+
NWorkload::TSampleQueries::CheckSuccess(ydb->ExecuteQuery(alterSql, settings));
7238+
NWorkload::TSampleQueries::CheckSuccess(ydb->ExecuteQuery(upsertSql, settings));
7239+
NWorkload::TSampleQueries::CheckSuccess(ydb->ExecuteQuery(dropSql, settings));
7240+
7241+
// Shared, enabled
7242+
settings.Database(ydb->GetSettings().GetSharedTenantName()).NodeIndex(2);
7243+
NWorkload::TSampleQueries::CheckSuccess(ydb->ExecuteQuery(createSql, settings));
7244+
NWorkload::TSampleQueries::CheckSuccess(ydb->ExecuteQuery(alterSql, settings));
7245+
NWorkload::TSampleQueries::CheckSuccess(ydb->ExecuteQuery(upsertSql, settings));
7246+
NWorkload::TSampleQueries::CheckSuccess(ydb->ExecuteQuery(dropSql, settings));
7247+
7248+
// Serverless, disabled
7249+
settings.Database(ydb->GetSettings().GetServerlessTenantName()).NodeIndex(2);
7250+
checkDisabled(ydb->ExecuteQuery(createSql, settings));
7251+
checkDisabled(ydb->ExecuteQuery(alterSql, settings));
7252+
checkDisabled(ydb->ExecuteQuery(upsertSql, settings));
7253+
NWorkload::TSampleQueries::CheckSuccess(ydb->ExecuteQuery(dropSql, settings));
7254+
}
72157255
}
72167256

72177257
Y_UNIT_TEST_SUITE(KqpOlapScheme) {

ydb/core/kqp/workload_service/ut/common/kqp_workload_service_ut_common.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ class TWorkloadServiceYdbSetup : public IYdbSetup {
231231
TAppConfig appConfig;
232232
appConfig.MutableFeatureFlags()->SetEnableResourcePools(Settings_.EnableResourcePools_);
233233
appConfig.MutableFeatureFlags()->SetEnableResourcePoolsOnServerless(Settings_.EnableResourcePoolsOnServerless_);
234+
appConfig.MutableFeatureFlags()->SetEnableMetadataObjectsOnServerless(Settings_.EnableMetadataObjectsOnServerless_);
234235
appConfig.MutableFeatureFlags()->SetEnableResourcePoolsCounters(true);
235236

236237
return appConfig;

ydb/core/kqp/workload_service/ut/common/kqp_workload_service_ut_common.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ struct TYdbSetupSettings {
7070
FLUENT_SETTING_DEFAULT(bool, CreateSampleTenants, false);
7171
FLUENT_SETTING_DEFAULT(bool, EnableResourcePools, true);
7272
FLUENT_SETTING_DEFAULT(bool, EnableResourcePoolsOnServerless, false);
73+
FLUENT_SETTING_DEFAULT(bool, EnableMetadataObjectsOnServerless, true);
7374

7475
// Default pool settings
7576
FLUENT_SETTING_DEFAULT(TString, PoolId, "sample_pool_id");

ydb/core/testlib/basics/feature_flags.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ class TTestFeatureFlagsHolder {
6666
FEATURE_FLAG_SETTER(EnableGranularTimecast)
6767
FEATURE_FLAG_SETTER(EnablePgSyntax)
6868
FEATURE_FLAG_SETTER(EnableTieringInColumnShard)
69+
FEATURE_FLAG_SETTER(EnableMetadataObjectsOnServerless)
6970

7071
#undef FEATURE_FLAG_SETTER
7172
};

ydb/services/metadata/manager/alter_impl.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,14 +138,14 @@ class TModificationActorImpl: public NActors::TActorBootstrapped<TModificationAc
138138
void Handle(TEvFetchDatabaseResponse::TPtr& ev) {
139139
TString errorMessage;
140140
if (const auto& errorString = ev->Get()->GetErrorString()) {
141-
errorMessage = TStringBuilder() << "cannot fetch database '" << Context.GetExternalData().GetDatabase() << "': " << errorString;
141+
errorMessage = TStringBuilder() << "Cannot fetch database '" << Context.GetExternalData().GetDatabase() << "': " << errorString;
142142
} else if (ev->Get()->GetServerless()) {
143-
errorMessage = TStringBuilder() << "objects " << TObject::GetTypeId() << " are disabled for serverless domains. Please contact your system administrator to enable it";
143+
errorMessage = TStringBuilder() << "Objects " << TObject::GetTypeId() << " are disabled for serverless domains. Please contact your system administrator to enable it";
144144
}
145145

146146
if (errorMessage) {
147147
auto g = TBase::PassAwayGuard();
148-
ExternalController->OnAlteringProblem(TStringBuilder() << "Objects " << TObject::GetTypeId() << " are disabled for serverless domains. Please contact your system administrator to enable it");
148+
ExternalController->OnAlteringProblem(errorMessage);
149149
} else {
150150
CreateSession();
151151
}

0 commit comments

Comments
 (0)