From eb44cdd26f744284bd2f4ee3f506db3488f6a58b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Wed, 5 Nov 2025 18:19:48 +0800 Subject: [PATCH] fix(region): allow delete server sku (#23693) --- pkg/compute/models/server_skus.go | 8 ++------ pkg/compute/options/options.go | 1 + 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/pkg/compute/models/server_skus.go b/pkg/compute/models/server_skus.go index 7dba9df6b9..f11bba9ee6 100644 --- a/pkg/compute/models/server_skus.go +++ b/pkg/compute/models/server_skus.go @@ -193,11 +193,6 @@ func sliceToJsonObject(items []int) jsonutils.JSONObject { return ret } -func inWhiteList(provider string) bool { - // 私有云套餐也允许更新删除 - return provider == api.CLOUD_PROVIDER_ONECLOUD || utils.IsInStringArray(provider, api.PRIVATE_CLOUD_PROVIDERS) -} - func genInstanceType(family string, cpu, memMb int64) (string, error) { if cpu <= 0 { return "", fmt.Errorf("cpu_core_count should great than zero") @@ -679,9 +674,10 @@ func (self *SServerSku) ValidateDeleteCondition(ctx context.Context, info *api.S return httperrors.NewNotEmptyError("now allow to delete inuse instance_type.please remove related servers first: %s", self.Name) } - if !inWhiteList(self.Provider) { + if !options.Options.EnableDeletePublicCloudSku && utils.IsInStringArray(self.Provider, api.PUBLIC_CLOUD_PROVIDERS) { return httperrors.NewForbiddenError("not allow to delete public cloud instance_type: %s", self.Name) } + return nil } diff --git a/pkg/compute/options/options.go b/pkg/compute/options/options.go index 135b6f6667..004ba90965 100644 --- a/pkg/compute/options/options.go +++ b/pkg/compute/options/options.go @@ -117,6 +117,7 @@ type ComputeOptions struct { ServerSkuSyncIntervalMinutes int `default:"60" help:"Interval to sync public cloud server skus, defualt is 1 hour"` SkuBatchSync int `default:"5" help:"How many skus can be sync in a batch"` + EnableDeletePublicCloudSku bool `help:"Enable delete public cloud sku" default:"true"` // sku sync SyncSkusDay int `default:"1" help:"Days auto sync skus data, default 1 day"` SyncSkusHour int `default:"3" help:"What hour start sync skus, default 03:00"`