mirror of
https://github.com/kubernetes/client-go.git
synced 2025-09-03 08:04:45 +00:00
Refactor client-go/util/flowcontrol/throttle.go RateLimiter
- Introduce PassiveRateLimiter which implements all methods of previous RateLimiter except Accept() and Wait() - Change RateLimiter interface to extend PassiveRateLimiter by additionally implementing Accept() and Wait() - Make client-go/tools/record use PassiveRateLimiter Refactor EventSourceObjectSpamFilter, EventAggregator, EventCorrelator - EventSourceObjectSpamFilter, EventAggregator, EventCorrelator use clock.PassiveClock now. - This won't be a breaking change because even if a clock.Clock is passed, it still implements the clock.PassiveClock interface. - Extend clock.PassiveClock through Clock. - Replace pacakge local implementation of realClock with clock.RealClock - In flowcontrol/throttle.go split tokenBucketRateLimiters to use Clock and clock.PassiveClock. - Migrate client-go/tools/record tests from using IntervalClock to using SimpleIntervalClock (honest implementation of clock.PassiveClock) Signed-off-by: Madhav Jivrajani <madhav.jiv@gmail.com> Kubernetes-commit: ac5c55f0bd853fcf883d9b8e1f5ef728a2fb5309
This commit is contained in:
committed by
Kubernetes Publisher
parent
191e5dc23b
commit
b9fa896d5d
@@ -25,8 +25,8 @@ import (
|
||||
|
||||
v1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/clock"
|
||||
"k8s.io/apimachinery/pkg/util/diff"
|
||||
testclocks "k8s.io/utils/clock/testing"
|
||||
)
|
||||
|
||||
func makeObjectReference(kind, name, namespace string) v1.ObjectReference {
|
||||
@@ -234,7 +234,7 @@ func TestEventCorrelator(t *testing.T) {
|
||||
|
||||
for testScenario, testInput := range scenario {
|
||||
eventInterval := time.Duration(testInput.intervalSeconds) * time.Second
|
||||
clock := clock.IntervalClock{Time: time.Now(), Duration: eventInterval}
|
||||
clock := testclocks.SimpleIntervalClock{Time: time.Now(), Duration: eventInterval}
|
||||
correlator := NewEventCorrelator(&clock)
|
||||
for i := range testInput.previousEvents {
|
||||
event := testInput.previousEvents[i]
|
||||
@@ -320,9 +320,9 @@ func TestEventSpamFilter(t *testing.T) {
|
||||
spamKeyFunc: spamKeyFuncBasedOnObjectsAndReason,
|
||||
},
|
||||
}
|
||||
for testDescription, testInput := range testCases {
|
||||
|
||||
c := clock.IntervalClock{Time: time.Now(), Duration: eventInterval}
|
||||
for testDescription, testInput := range testCases {
|
||||
c := testclocks.SimpleIntervalClock{Time: time.Now(), Duration: eventInterval}
|
||||
correlator := NewEventCorrelatorWithOptions(CorrelatorOptions{
|
||||
Clock: &c,
|
||||
SpamKeyFunc: testInput.spamKeyFunc,
|
||||
|
Reference in New Issue
Block a user