Skip to content

Commit

Permalink
chore: clean up of the TTL controller and remove unused function (arg…
Browse files Browse the repository at this point in the history
…oproj#6822)

Signed-off-by: NikeNano <[email protected]>
  • Loading branch information
NikeNano authored Sep 28, 2021
1 parent bba07d3 commit f50e965
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 16 deletions.
9 changes: 0 additions & 9 deletions workflow/ttlcontroller/ttlcontroller.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,15 +141,6 @@ func (c *Controller) deleteWorkflow(ctx context.Context, key string) error {
return nil
}

// if the workflow both has a TTL and is expired
func (c *Controller) ttlExpired(wf *wfv1.Workflow) bool {
expiresIn, ok := c.expiresIn(wf)
if !ok {
return false
}
return expiresIn <= 0
}

// expiresIn - seconds from now the workflow expires in, maybe <= 0
// ok - if the workflow has a TTL
func (c *Controller) expiresIn(wf *wfv1.Workflow) (expiresIn time.Duration, ok bool) {
Expand Down
28 changes: 21 additions & 7 deletions workflow/ttlcontroller/ttlcontroller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -496,37 +496,51 @@ func TestTTLlExpired(t *testing.T) {
now := controller.clock.Now()
assert.Equal(t, true, now.After(wf.Status.FinishedAt.Add(time.Second*time.Duration(*wf.Spec.TTLStrategy.SecondsAfterFailure))))
assert.Equal(t, true, wf.Status.Failed() && wf.Spec.TTLStrategy.SecondsAfterFailure != nil)
assert.Equal(t, true, controller.ttlExpired(wf))
expiresIn, ok := controller.expiresIn(wf)
assert.True(t, ok)
assert.LessOrEqual(t, int(expiresIn), 0)

wf1 := wfv1.MustUnmarshalWorkflow([]byte(failedWf))
wf1.Spec.TTLStrategy = &wfv1.TTLStrategy{SecondsAfterFailure: &ten}
wf1.Status.FinishedAt = metav1.Time{Time: controller.clock.Now().Add(-5 * time.Second)}
assert.Equal(t, false, controller.ttlExpired(wf1))
expiresIn, ok = controller.expiresIn(wf1)
assert.True(t, ok)
assert.GreaterOrEqual(t, int(expiresIn), 0)

wf2 := wfv1.MustUnmarshalWorkflow([]byte(failedWf))
wf2.Spec.TTLStrategy = &wfv1.TTLStrategy{SecondsAfterFailure: &ten}
wf2.Status.FinishedAt = metav1.Time{Time: controller.clock.Now().Add(-11 * time.Second)}
assert.Equal(t, true, controller.ttlExpired(wf2))
expiresIn, ok = controller.expiresIn(wf2)
assert.True(t, ok)
assert.LessOrEqual(t, int(expiresIn), 0)

wf3 := wfv1.MustUnmarshalWorkflow([]byte(failedWf))
wf3.Spec.TTLStrategy = &wfv1.TTLStrategy{SecondsAfterCompletion: &ten}
wf3.Status.FinishedAt = metav1.Time{Time: controller.clock.Now().Add(-5 * time.Second)}
assert.Equal(t, false, controller.ttlExpired(wf3))
expiresIn, ok = controller.expiresIn(wf3)
assert.True(t, ok)
assert.GreaterOrEqual(t, int(expiresIn), 0)

wf4 := wfv1.MustUnmarshalWorkflow([]byte(failedWf))
wf4.Spec.TTLStrategy = &wfv1.TTLStrategy{SecondsAfterCompletion: &ten}
wf4.Status.FinishedAt = metav1.Time{Time: controller.clock.Now().Add(-11 * time.Second)}
assert.Equal(t, true, controller.ttlExpired(wf4))
expiresIn, ok = controller.expiresIn(wf4)
assert.True(t, ok)
assert.LessOrEqual(t, int(expiresIn), 0)

wf5 := wfv1.MustUnmarshalWorkflow([]byte(succeededWf))
wf5.Spec.TTLStrategy = &wfv1.TTLStrategy{SecondsAfterSuccess: &ten}
wf5.Status.FinishedAt = metav1.Time{Time: controller.clock.Now().Add(-5 * time.Second)}
assert.Equal(t, false, controller.ttlExpired(wf5))
expiresIn, ok = controller.expiresIn(wf5)
assert.True(t, ok)
assert.GreaterOrEqual(t, int(expiresIn), 0)

wf6 := wfv1.MustUnmarshalWorkflow([]byte(succeededWf))
wf6.Spec.TTLStrategy = &wfv1.TTLStrategy{SecondsAfterSuccess: &ten}
wf6.Status.FinishedAt = metav1.Time{Time: controller.clock.Now().Add(-11 * time.Second)}
assert.Equal(t, true, controller.ttlExpired(wf6))
expiresIn, ok = controller.expiresIn(wf6)
assert.True(t, ok)
assert.LessOrEqual(t, int(expiresIn), 0)
}

func TestGetTTLStrategy(t *testing.T) {
Expand Down

0 comments on commit f50e965

Please sign in to comment.