Skip to content

Commit dc6cac7

Browse files
authored
Chore: rework TimeConverter and remove dup definition (#599)
1 parent c94823a commit dc6cac7

File tree

5 files changed

+14
-45
lines changed

5 files changed

+14
-45
lines changed

apis/flinkcluster/v1beta1/flinkcluster_types_util.go

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ func (j *JobStatus) IsSavepointUpToDate(spec *JobSpec, compareTime time.Time) bo
6060
}
6161

6262
var stateMaxAge = int(*spec.MaxStateAgeToRestoreSeconds)
63-
return !hasTimeElapsed(j.SavepointTime, compareTime, stateMaxAge)
63+
return !util.HasTimeElapsed(j.SavepointTime, compareTime, stateMaxAge)
6464
}
6565

6666
// ShouldRestart returns true if the controller should restart failed job.
@@ -121,32 +121,6 @@ func (r *RevisionStatus) IsUpdateTriggered() bool {
121121
return r.CurrentRevision != r.NextRevision
122122
}
123123

124-
// TimeConverter converts between time.Time and string.
125-
type TimeConverter struct{}
126-
127-
// FromString converts string to time.Time.
128-
func (tc *TimeConverter) FromString(timeStr string) time.Time {
129-
timestamp, err := time.Parse(
130-
time.RFC3339, timeStr)
131-
if err != nil {
132-
panic(fmt.Sprintf("Failed to parse time string: %s", timeStr))
133-
}
134-
return timestamp
135-
}
136-
137-
// ToString converts time.Time to string.
138-
func (tc *TimeConverter) ToString(timestamp time.Time) string {
139-
return timestamp.Format(time.RFC3339)
140-
}
141-
142-
// Check time has passed
143-
func hasTimeElapsed(timeToCheckStr string, now time.Time, intervalSec int) bool {
144-
tc := &TimeConverter{}
145-
timeToCheck := tc.FromString(timeToCheckStr)
146-
intervalPassedTime := timeToCheck.Add(time.Duration(int64(intervalSec) * int64(time.Second)))
147-
return now.After(intervalPassedTime)
148-
}
149-
150124
func isBlank(s *string) bool {
151125
return s == nil || strings.TrimSpace(*s) == ""
152126
}

apis/flinkcluster/v1beta1/flinkcluster_types_util_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,13 @@ import (
2020
"testing"
2121
"time"
2222

23+
"github.com/spotify/flink-on-k8s-operator/internal/util"
2324
"gotest.tools/v3/assert"
2425
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2526
)
2627

2728
func TestIsSavepointUpToDate(t *testing.T) {
28-
var tc = &TimeConverter{}
29+
var tc = &util.TimeConverter{}
2930
var savepointTime = time.Now()
3031
var jobCompletionTime = savepointTime.Add(time.Second * 100)
3132
var maxStateAgeToRestoreSeconds = int32(300)
@@ -92,7 +93,7 @@ func TestIsSavepointUpToDate(t *testing.T) {
9293
}
9394

9495
func TestShouldRestartJob(t *testing.T) {
95-
var tc = &TimeConverter{}
96+
var tc = &util.TimeConverter{}
9697
var restartOnFailure = JobRestartPolicyFromSavepointOnFailure
9798
var neverRestart = JobRestartPolicyNever
9899
var maxStateAgeToRestoreSeconds = int32(300) // 5 min

apis/flinkcluster/v1beta1/flinkcluster_validate_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"testing"
2424
"time"
2525

26+
"github.com/spotify/flink-on-k8s-operator/internal/util"
2627
"k8s.io/apimachinery/pkg/api/resource"
2728

2829
"gotest.tools/v3/assert"
@@ -371,7 +372,7 @@ func TestTaskManagerDeploymentTypeUpdate(t *testing.T) {
371372

372373
func TestUpdateJob(t *testing.T) {
373374
var validator = &Validator{}
374-
var tc = &TimeConverter{}
375+
var tc = &util.TimeConverter{}
375376
var maxStateAge = time.Duration(MaxStateAgeToRestore)
376377
var jarFileNew = "gs://my-bucket/myjob-v2.jar"
377378

apis/flinkcluster/v1beta1/zz_generated.deepcopy.go

Lines changed: 0 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/util/time.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,14 @@ func (tc *TimeConverter) ToString(timestamp time.Time) string {
2323
return timestamp.Format(time.RFC3339)
2424
}
2525

26+
// Check time has passed
27+
func HasTimeElapsed(timeToCheckStr string, now time.Time, intervalSec int) bool {
28+
tc := &TimeConverter{}
29+
timeToCheck := tc.FromString(timeToCheckStr)
30+
intervalPassedTime := timeToCheck.Add(time.Duration(int64(intervalSec) * int64(time.Second)))
31+
return now.After(intervalPassedTime)
32+
}
33+
2634
// SetTimestamp sets the current timestamp to the target.
2735
func SetTimestamp(target *string) {
2836
var tc = &TimeConverter{}

0 commit comments

Comments
 (0)