diff --git a/pkg/compute/models/cachedimages.go b/pkg/compute/models/cachedimages.go index 80571ae98b..ac1d9a5d38 100644 --- a/pkg/compute/models/cachedimages.go +++ b/pkg/compute/models/cachedimages.go @@ -986,42 +986,6 @@ func (manager *SCachedimageManager) AutoCleanImageCaches(ctx context.Context, us } } -func (manager *SCachedimageManager) InitializeData() error { - images := []SCachedimage{} - q := manager.Query().IsNullOrEmpty("tenant_id") - err := db.FetchModelObjects(manager, q, &images) - if err != nil { - return errors.Wrapf(err, "db.FetchModelObjects") - } - for i := range images { - _, err := db.Update(&images[i], func() error { - images[i].IsPublic = true - images[i].PublicScope = string(rbacscope.ScopeSystem) - images[i].ProjectId = "system" - if len(images[i].ExternalId) > 0 { - images[i].Status = api.CACHED_IMAGE_STATUS_ACTIVE - } else { - images[i].Status = images[i].GetStatus() - } - return nil - }) - if err != nil { - return errors.Wrapf(err, "db.Update(%s)", images[i].Id) - } - } - - q = manager.Query().IsNullOrEmpty("info") - err = db.FetchModelObjects(manager, q, &images) - if err != nil { - return errors.Wrapf(err, "db.FetchModelObjects") - } - for i := range images { - db.RealDeleteModel(context.Background(), nil, &images[i]) - } - - return nil -} - func (image *SCachedimage) GetAllClassMetadata() (map[string]string, error) { meta, err := image.SSharableVirtualResourceBase.GetAllClassMetadata() if err != nil { diff --git a/pkg/compute/models/initdb.go b/pkg/compute/models/initdb.go index 922df1aab8..46750e2c45 100644 --- a/pkg/compute/models/initdb.go +++ b/pkg/compute/models/initdb.go @@ -15,6 +15,10 @@ package models import ( + "time" + + "yunion.io/x/log" + "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudcommon/db/proxy" ) @@ -75,10 +79,14 @@ func InitDB() error { ElasticcacheManager, } { + now := time.Now() err := manager.InitializeData() if err != nil { return err } + if cost := time.Now().Sub(now); cost > time.Duration(time.Second)*15 { + log.Infof("%s InitializeData cost %s", manager.Keyword(), cost.Round(time.Second)) + } } return nil } diff --git a/pkg/compute/models/server_skus.go b/pkg/compute/models/server_skus.go index 6ded020d5f..f3f8fd6bf5 100644 --- a/pkg/compute/models/server_skus.go +++ b/pkg/compute/models/server_skus.go @@ -1373,72 +1373,6 @@ func (manager *SServerSkuManager) SyncServerSkus(ctx context.Context, userCred m return result } -func (manager *SServerSkuManager) initializeSkuStatus() error { - skus := []SServerSku{} - q := manager.Query().NotEquals("status", api.SkuStatusReady) - err := db.FetchModelObjects(manager, q, &skus) - if err != nil { - return errors.Wrapf(err, "initializeSkuStatus.FetchModelObjects") - } - for _, sku := range skus { - _, err = db.Update(&sku, func() error { - sku.Status = api.SkuStatusReady - return nil - }) - if err != nil { - return errors.Wrapf(err, "sku.Update") - } - } - return nil -} - -func (manager *SServerSkuManager) fixAliyunSkus() error { - q := manager.Query().Equals("provider", api.CLOUD_PROVIDER_ALIYUN) - q = q.Filter(sqlchemy.OR( - sqlchemy.AND( - sqlchemy.Contains(q.Field("sys_disk_type"), api.STORAGE_CLOUD_ESSD), - sqlchemy.NOT(sqlchemy.Contains(q.Field("sys_disk_type"), api.STORAGE_CLOUD_ESSD_PL0)), - ), - sqlchemy.AND( - sqlchemy.Contains(q.Field("data_disk_types"), api.STORAGE_CLOUD_ESSD), - sqlchemy.NOT(sqlchemy.Contains(q.Field("data_disk_types"), api.STORAGE_CLOUD_ESSD_PL0)), - ), - )) - skus := []SServerSku{} - err := db.FetchModelObjects(manager, q, &skus) - if err != nil { - return errors.Wrapf(err, "db.FetchModelObjects") - } - storages := []string{api.STORAGE_CLOUD_ESSD_PL0, api.STORAGE_CLOUD_ESSD_PL2, api.STORAGE_CLOUD_ESSD_PL3} - for i := range skus { - _, err := db.Update(&skus[i], func() error { - sys := strings.Split(skus[i].SysDiskType, ",") - if utils.IsInStringArray(api.STORAGE_CLOUD_ESSD, sys) { - for _, storage := range storages { - if !utils.IsInStringArray(storage, sys) { - sys = append(sys, storage) - } - } - skus[i].SysDiskType = strings.Join(sys, ",") - } - data := strings.Split(skus[i].DataDiskTypes, ",") - if utils.IsInStringArray(api.STORAGE_CLOUD_ESSD, data) { - for _, storage := range storages { - if !utils.IsInStringArray(storage, data) { - data = append(data, storage) - } - } - skus[i].DataDiskTypes = strings.Join(data, ",") - } - return nil - }) - if err != nil { - return errors.Wrapf(err, "db.Update") - } - } - return nil -} - func (manager *SServerSkuManager) InitializeData() error { count, err := manager.Query().Equals("cloudregion_id", api.DEFAULT_REGION_ID).IsNullOrEmpty("zone_id").CountWithError() if err != nil { @@ -1479,33 +1413,7 @@ func (manager *SServerSkuManager) InitializeData() error { } } - privateSkus := make([]SServerSku, 0) - q := manager.Query().IsNullOrEmpty("local_category").IsNotNull("instance_type_category").IsNullOrEmpty("zone_id") - if err != nil { - return err - } - - err = db.FetchModelObjects(manager, q, &privateSkus) - if err != nil { - return err - } - - for i := range privateSkus { - _, err = db.Update(&privateSkus[i], func() error { - privateSkus[i].LocalCategory = privateSkus[i].InstanceTypeCategory - return nil - }) - if err != nil { - return err - } - } - - err = manager.fixAliyunSkus() - if err != nil { - return errors.Wrapf(err, "fixAliyunSkus") - } - - return manager.initializeSkuStatus() + return nil } func (manager *SServerSkuManager) ListItemExportKeys(ctx context.Context,