leaderelection: using le.clock for the time calculations

Signed-off-by: Iceber Gu <wei.cai-nat@daocloud.io>
This commit is contained in:
Iceber Gu 2023-02-07 13:00:55 +08:00
parent 9d80516abb
commit 9c31f14a7c
2 changed files with 10 additions and 8 deletions

View File

@ -295,7 +295,7 @@ func (le *LeaderElector) release() bool {
if !le.IsLeader() { if !le.IsLeader() {
return true return true
} }
now := metav1.Now() now := metav1.NewTime(le.clock.Now())
leaderElectionRecord := rl.LeaderElectionRecord{ leaderElectionRecord := rl.LeaderElectionRecord{
LeaderTransitions: le.observedRecord.LeaderTransitions, LeaderTransitions: le.observedRecord.LeaderTransitions,
LeaseDurationSeconds: 1, LeaseDurationSeconds: 1,
@ -315,7 +315,7 @@ func (le *LeaderElector) release() bool {
// else it tries to renew the lease if it has already been acquired. Returns true // else it tries to renew the lease if it has already been acquired. Returns true
// on success else returns false. // on success else returns false.
func (le *LeaderElector) tryAcquireOrRenew(ctx context.Context) bool { func (le *LeaderElector) tryAcquireOrRenew(ctx context.Context) bool {
now := metav1.Now() now := metav1.NewTime(le.clock.Now())
leaderElectionRecord := rl.LeaderElectionRecord{ leaderElectionRecord := rl.LeaderElectionRecord{
HolderIdentity: le.config.Lock.Identity(), HolderIdentity: le.config.Lock.Identity(),
LeaseDurationSeconds: int(le.config.LeaseDuration / time.Second), LeaseDurationSeconds: int(le.config.LeaseDuration / time.Second),

View File

@ -73,8 +73,9 @@ type Reactor struct {
} }
func testTryAcquireOrRenew(t *testing.T, objectType string) { func testTryAcquireOrRenew(t *testing.T, objectType string) {
future := time.Now().Add(1000 * time.Hour) clock := clock.RealClock{}
past := time.Now().Add(-1000 * time.Hour) future := clock.Now().Add(1000 * time.Hour)
past := clock.Now().Add(-1000 * time.Hour)
tests := []struct { tests := []struct {
name string name string
@ -308,7 +309,7 @@ func testTryAcquireOrRenew(t *testing.T, objectType string) {
observedRecord: test.observedRecord, observedRecord: test.observedRecord,
observedRawRecord: observedRawRecord, observedRawRecord: observedRawRecord,
observedTime: test.observedTime, observedTime: test.observedTime,
clock: clock.RealClock{}, clock: clock,
} }
if test.expectSuccess != le.tryAcquireOrRenew(context.Background()) { if test.expectSuccess != le.tryAcquireOrRenew(context.Background()) {
if test.retryAfter != 0 { if test.retryAfter != 0 {
@ -409,8 +410,9 @@ func GetRawRecordOrDie(t *testing.T, objectType string, ler rl.LeaderElectionRec
} }
func testTryAcquireOrRenewMultiLock(t *testing.T, objectType string) { func testTryAcquireOrRenewMultiLock(t *testing.T, objectType string) {
future := time.Now().Add(1000 * time.Hour) clock := clock.RealClock{}
past := time.Now().Add(-1000 * time.Hour) future := clock.Now().Add(1000 * time.Hour)
past := clock.Now().Add(-1000 * time.Hour)
primaryType, secondaryType := multiLockType(t, objectType) primaryType, secondaryType := multiLockType(t, objectType)
tests := []struct { tests := []struct {
name string name string
@ -867,7 +869,7 @@ func testTryAcquireOrRenewMultiLock(t *testing.T, objectType string) {
observedRecord: test.observedRecord, observedRecord: test.observedRecord,
observedRawRecord: test.observedRawRecord, observedRawRecord: test.observedRawRecord,
observedTime: test.observedTime, observedTime: test.observedTime,
clock: clock.RealClock{}, clock: clock,
} }
if test.expectSuccess != le.tryAcquireOrRenew(context.Background()) { if test.expectSuccess != le.tryAcquireOrRenew(context.Background()) {
t.Errorf("unexpected result of tryAcquireOrRenew: [succeeded=%v]", !test.expectSuccess) t.Errorf("unexpected result of tryAcquireOrRenew: [succeeded=%v]", !test.expectSuccess)