From e4d2338994c812697ad59897da666c12698c4149 Mon Sep 17 00:00:00 2001 From: TangBin Date: Tue, 26 Mar 2019 15:29:31 +0800 Subject: [PATCH 1/2] skus add local category --- pkg/compute/models/initdb.go | 1 + pkg/compute/models/skus.go | 25 +++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/pkg/compute/models/initdb.go b/pkg/compute/models/initdb.go index 783e6a982c..4c6010aa33 100644 --- a/pkg/compute/models/initdb.go +++ b/pkg/compute/models/initdb.go @@ -29,6 +29,7 @@ func InitDB() error { LoadbalancerBackendManager, SchedtagManager, DynamicschedtagManager, + ServerSkuManager, } { err := manager.InitializeData() if err != nil { diff --git a/pkg/compute/models/skus.go b/pkg/compute/models/skus.go index 3d5a0ca72c..ab08e9f8a7 100644 --- a/pkg/compute/models/skus.go +++ b/pkg/compute/models/skus.go @@ -77,8 +77,9 @@ type SServerSku struct { db.SStandaloneResourceBase // SkuId string `width:"64" charset:"ascii" nullable:"false" list:"user" create:"admin_required"` // x2.large - InstanceTypeFamily string `width:"32" charset:"ascii" nullable:"false" list:"user" create:"admin_optional" update:"admin"` // x2 - InstanceTypeCategory string `width:"32" charset:"utf8" nullable:"false" list:"user" create:"admin_optional" update:"admin"` // 通用型 + InstanceTypeFamily string `width:"32" charset:"ascii" nullable:"false" list:"user" create:"admin_optional" update:"admin"` // x2 + InstanceTypeCategory string `width:"32" charset:"utf8" nullable:"false" list:"user" create:"admin_optional" update:"admin"` // 通用型 + LocalCategory string `width:"32" charset:"utf8" nullable:"false" list:"user" create:"admin_optional" update:"admin" default:""` // 记录本地分类 PrepaidStatus string `width:"32" charset:"utf8" nullable:"false" list:"user" create:"admin_optional" update:"admin" default:"available"` // 预付费资源状态 available|soldout PostpaidStatus string `width:"32" charset:"utf8" nullable:"false" list:"user" create:"admin_optional" update:"admin" default:"available"` // 按需付费资源状态 available|soldout @@ -1065,3 +1066,23 @@ func (manager *SServerSkuManager) FetchAllAvailableSkuIdByZoneId(zoneId string) return ids, nil } + +func (manager *SServerSkuManager) InitializeData() error { + privateSkus := make([]SServerSku, 0) + err := manager.Query().IsNullOrEmpty("local_category").IsNullOrEmpty("zone_id").All(&privateSkus) + if err != nil { + return err + } + + for _, sku := range privateSkus { + _, err = manager.TableSpec().Update(&sku, func() error { + sku.LocalCategory = sku.InstanceTypeCategory + return nil + }) + if err != nil { + return err + } + } + + return nil +} From 011f8d3842a845f95a01cd7319cb91a5b60b4e2e Mon Sep 17 00:00:00 2001 From: TangBin Date: Tue, 26 Mar 2019 16:14:50 +0800 Subject: [PATCH 2/2] create private sku fix --- pkg/compute/models/skus.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/compute/models/skus.go b/pkg/compute/models/skus.go index ab08e9f8a7..8b976781a8 100644 --- a/pkg/compute/models/skus.go +++ b/pkg/compute/models/skus.go @@ -339,6 +339,7 @@ func (self *SServerSkuManager) ValidateCreateData(ctx context.Context, if !exists { return nil, httperrors.NewInputParameterError("instance_type_category %s is invalid", category) } + data.Add(jsonutils.NewString(category),"local_category") data.Set("instance_type_family", jsonutils.NewString(family)) // 格式 ecs.g1.c1m1