@@ -45,7 +45,7 @@ struct TParamsDelta {
4545
4646std::tuple<NKikimrScheme::EStatus, TString>
4747VerifyParams (TParamsDelta* delta, const TPathId pathId, const TSubDomainInfo::TPtr& current,
48- const NKikimrSubDomains::TSubDomainSettings& input) {
48+ const NKikimrSubDomains::TSubDomainSettings& input, const bool isServerlessExclusiveDynamicNodesEnabled ) {
4949 auto paramError = [](const TStringBuf& msg) {
5050 return std::make_tuple (NKikimrScheme::EStatus::StatusInvalidParameter,
5151 TStringBuilder () << " Invalid ExtSubDomain request: " << msg
@@ -266,6 +266,12 @@ VerifyParams(TParamsDelta* delta, const TPathId pathId, const TSubDomainInfo::TP
266266 // ServerlessComputeResourcesMode check
267267 bool serverlessComputeResourcesModeChanged = false ;
268268 if (input.HasServerlessComputeResourcesMode ()) {
269+ if (!isServerlessExclusiveDynamicNodesEnabled) {
270+ return std::make_tuple (NKikimrScheme::EStatus::StatusPreconditionFailed,
271+ " Unsupported: feature flag EnableServerlessExclusiveDynamicNodes is off"
272+ );
273+ }
274+
269275 switch (input.GetServerlessComputeResourcesMode ()) {
270276 case EServerlessComputeResourcesMode::SERVERLESS_COMPUTE_RESOURCES_MODE_UNSPECIFIED:
271277 return paramError (" can not set ServerlessComputeResourcesMode to SERVERLESS_COMPUTE_RESOURCES_MODE_UNSPECIFIED" );
@@ -300,10 +306,11 @@ VerifyParams(TParamsDelta* delta, const TPathId pathId, const TSubDomainInfo::TP
300306}
301307
302308void VerifyParams (TProposeResponse* result, TParamsDelta* delta, const TPathId pathId,
303- const TSubDomainInfo::TPtr& current, const NKikimrSubDomains::TSubDomainSettings& input) {
309+ const TSubDomainInfo::TPtr& current, const NKikimrSubDomains::TSubDomainSettings& input,
310+ const bool isServerlessExclusiveDynamicNodesEnabled) {
304311 // TProposeRespose should come in assuming positive outcome (status NKikimrScheme::StatusAccepted, no errors)
305312 Y_ABORT_UNLESS (result->IsAccepted ());
306- auto [status, reason] = VerifyParams (delta, pathId, current, input);
313+ auto [status, reason] = VerifyParams (delta, pathId, current, input, isServerlessExclusiveDynamicNodesEnabled );
307314 result->SetStatus (status, reason);
308315}
309316
@@ -612,7 +619,7 @@ class TAlterExtSubDomainCreateHive: public TSubOperation {
612619
613620 // Check params and build change delta
614621 TParamsDelta delta;
615- VerifyParams (result.Get (), &delta, basenameId, subdomainInfo, inputSettings);
622+ VerifyParams (result.Get (), &delta, basenameId, subdomainInfo, inputSettings, context. SS -> EnableServerlessExclusiveDynamicNodes );
616623 if (!result->IsAccepted ()) {
617624 return result;
618625 }
@@ -826,7 +833,7 @@ class TAlterExtSubDomain: public TSubOperation {
826833 case TTxState::ConfigureParts:
827834 return MakeHolder<NSubDomainState::TConfigureParts>(OperationId);
828835 case TTxState::Propose:
829- return MakeHolder<NSubDomainState::TPropose>(OperationId, TTxState::SyncHive );
836+ return MakeHolder<NSubDomainState::TPropose>(OperationId);
830837 case TTxState::SyncHive:
831838 return MakeHolder<TSyncHive>(OperationId);
832839 case TTxState::Done:
@@ -864,7 +871,7 @@ class TAlterExtSubDomain: public TSubOperation {
864871
865872 // Check params and build change delta
866873 TParamsDelta delta;
867- VerifyParams (result.Get (), &delta, basenameId, subdomainInfo, inputSettings);
874+ VerifyParams (result.Get (), &delta, basenameId, subdomainInfo, inputSettings, context. SS -> EnableServerlessExclusiveDynamicNodes );
868875 if (!result->IsAccepted ()) {
869876 return result;
870877 }
@@ -1110,7 +1117,7 @@ TVector<ISubOperation::TPtr> CreateCompatibleAlterExtSubDomain(TOperationId id,
11101117 // Check params and build change delta
11111118 TParamsDelta delta;
11121119 {
1113- auto [status, reason] = VerifyParams (&delta, basenameId, subdomainInfo, inputSettings);
1120+ auto [status, reason] = VerifyParams (&delta, basenameId, subdomainInfo, inputSettings, context. SS -> EnableServerlessExclusiveDynamicNodes );
11141121 if (status != NKikimrScheme::EStatus::StatusAccepted) {
11151122 return errorResult (status, reason);
11161123 }
0 commit comments