mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-01-03 11:45:20 +00:00
Don't create a backup immediately after creating a schedule (#4281)
Don't create a backup immediately after creating a schedule Fixes #1980 Signed-off-by: Wenkai Yin(尹文开) <yinw@vmware.com>
This commit is contained in:
1
changelogs/unreleased/4281-ywk253100
Normal file
1
changelogs/unreleased/4281-ywk253100
Normal file
@@ -0,0 +1 @@
|
||||
Don't create a backup immediately after creating a schedule
|
||||
@@ -276,11 +276,11 @@ func (c *scheduleController) submitBackupIfDue(item *api.Schedule, cronSchedule
|
||||
}
|
||||
|
||||
func getNextRunTime(schedule *api.Schedule, cronSchedule cron.Schedule, asOf time.Time) (bool, time.Time) {
|
||||
// get the latest run time (if the schedule hasn't run yet, this will be the zero value which will trigger
|
||||
// an immediate backup)
|
||||
var lastBackupTime time.Time
|
||||
if schedule.Status.LastBackup != nil {
|
||||
lastBackupTime = schedule.Status.LastBackup.Time
|
||||
} else {
|
||||
lastBackupTime = schedule.CreationTimestamp.Time
|
||||
}
|
||||
|
||||
nextRunTime := cronSchedule.Next(lastBackupTime)
|
||||
|
||||
@@ -274,7 +274,7 @@ func TestGetNextRunTime(t *testing.T) {
|
||||
{
|
||||
name: "first run",
|
||||
schedule: defaultSchedule(),
|
||||
expectedDue: true,
|
||||
expectedDue: false,
|
||||
expectedNextRunTimeOffset: "5m",
|
||||
},
|
||||
{
|
||||
@@ -319,6 +319,9 @@ func TestGetNextRunTime(t *testing.T) {
|
||||
require.NoError(t, err, "unable to parse test.lastRanOffset: %v", err)
|
||||
|
||||
test.schedule.Status.LastBackup = &metav1.Time{Time: testClock.Now().Add(-offsetDuration)}
|
||||
test.schedule.CreationTimestamp = *test.schedule.Status.LastBackup
|
||||
} else {
|
||||
test.schedule.CreationTimestamp = metav1.Time{Time: testClock.Now()}
|
||||
}
|
||||
|
||||
nextRunTimeOffset, err := time.ParseDuration(test.expectedNextRunTimeOffset)
|
||||
@@ -326,11 +329,11 @@ func TestGetNextRunTime(t *testing.T) {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
// calculate expected next run time (if the schedule hasn't run yet, this
|
||||
// will be the zero value which will trigger an immediate backup)
|
||||
var baseTime time.Time
|
||||
if test.lastRanOffset != "" {
|
||||
baseTime = test.schedule.Status.LastBackup.Time
|
||||
} else {
|
||||
baseTime = test.schedule.CreationTimestamp.Time
|
||||
}
|
||||
expectedNextRunTime := baseTime.Add(nextRunTimeOffset)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user