diff --git a/pkg/compute/models/snapshots.go b/pkg/compute/models/snapshots.go index 15ba281ebb..a980e2f10a 100644 --- a/pkg/compute/models/snapshots.go +++ b/pkg/compute/models/snapshots.go @@ -1265,19 +1265,19 @@ func (manager *SSnapshotManager) DataCleaning(ctx context.Context, userCred mccl } func dataCleaning(tableName string) error { - now := time.Now() - monthsDaysAgo := now.AddDate(0, 0, -options.Options.KeepDeletedSnapshotDays).Format("2006-01-02 15:04:05") - sqlStr := fmt.Sprintf( - "delete from %s where deleted = 1 and deleted_at < '%s'", - tableName, - monthsDaysAgo, + if options.Options.KeepDeletedSnapshotDays <= 0 { + return nil + } + + _, err := sqlchemy.GetDB().Exec( + fmt.Sprintf( + "delete from %s where deleted = 1 and deleted_at < ?", + tableName, + ), time.Now().AddDate(0, 0, -options.Options.KeepDeletedSnapshotDays), ) - q := sqlchemy.NewRawQuery(sqlStr) - rows, err := q.Rows() if err != nil { return errors.Wrapf(err, "unable to delete expired data in %q", tableName) } - defer rows.Close() log.Infof("delete expired data in %q successfully", tableName) return nil } diff --git a/pkg/compute/options/options.go b/pkg/compute/options/options.go index 51af02c577..cf7aaffe9d 100644 --- a/pkg/compute/options/options.go +++ b/pkg/compute/options/options.go @@ -187,8 +187,7 @@ type ComputeOptions struct { DefaultIPAllocationDirection string `help:"default IP allocation direction" default:"stepdown"` - CleanupSnapshots bool `help:"create a cronjob to cleaning snapshots every day" default:"true"` - KeepDeletedSnapshotDays int `help:"The day of cleanup snapshot" default:"30"` + KeepDeletedSnapshotDays int `help:"The day of cleanup snapshot" default:"30"` // 弹性伸缩中的ecs一般会有特殊的系统标签,通过指定这些标签可以忽略这部分ecs的同步, 指定多个key需要以 ',' 分隔 SkipServerBySysTagKeys string `help:"skip server,disk sync and create with system tags" default:"acs:autoscaling:scalingGroupId"` SkipServerByUserTagKeys string `help:"skip server,disk sync and create with user tags" default:""` diff --git a/pkg/compute/service/service.go b/pkg/compute/service/service.go index 4147b142b2..14c8969e48 100644 --- a/pkg/compute/service/service.go +++ b/pkg/compute/service/service.go @@ -186,9 +186,7 @@ func StartService() { cron.AddJobEveryFewDays("SyncElasticCacheSkus", opts.SyncSkusDay, opts.SyncSkusHour, 0, 0, models.SyncElasticCacheSkus, true) cron.AddJobEveryFewDays("StorageSnapshotsRecycle", 1, 2, 0, 0, models.StorageManager.StorageSnapshotsRecycle, false) - if options.Options.CleanupSnapshots { - cron.AddJobEveryFewDays("SnapshotDataCleaning", 1, 0, 0, 0, models.SnapshotManager.DataCleaning, true) - } + cron.AddJobEveryFewDays("SnapshotDataCleaning", 1, 0, 0, 0, models.SnapshotManager.DataCleaning, true) cron.AddJobAtIntervalsWithStartRun("SyncCloudImages", time.Duration(opts.CloudImagesSyncIntervalHours)*time.Hour, models.SyncPublicCloudImages, true)