diff --git a/pkg/apiserver/handlers_test.go b/pkg/apiserver/handlers_test.go index e9c97e1af13..49f1ebeca9a 100644 --- a/pkg/apiserver/handlers_test.go +++ b/pkg/apiserver/handlers_test.go @@ -35,7 +35,7 @@ import ( type fakeRL bool func (fakeRL) Stop() {} -func (f fakeRL) CanAccept() bool { return bool(f) } +func (f fakeRL) TryAccept() bool { return bool(f) } func (f fakeRL) Accept() {} func expectHTTP(url string, code int, t *testing.T) { diff --git a/pkg/controller/node/rate_limited_queue.go b/pkg/controller/node/rate_limited_queue.go index 4545243a2e2..e934d4b4ae0 100644 --- a/pkg/controller/node/rate_limited_queue.go +++ b/pkg/controller/node/rate_limited_queue.go @@ -163,7 +163,7 @@ func (q *RateLimitedTimedQueue) Try(fn ActionFunc) { val, ok := q.queue.Head() for ok { // rate limit the queue checking - if !q.limiter.CanAccept() { + if !q.limiter.TryAccept() { glog.V(10).Info("Try rate limitted...") // Try again later break diff --git a/pkg/kubelet/dockertools/docker.go b/pkg/kubelet/dockertools/docker.go index 3ed9b9047c6..6fe8ce5bf03 100644 --- a/pkg/kubelet/dockertools/docker.go +++ b/pkg/kubelet/dockertools/docker.go @@ -197,7 +197,7 @@ func (p dockerPuller) Pull(image string, secrets []api.Secret) error { } func (p throttledDockerPuller) Pull(image string, secrets []api.Secret) error { - if p.limiter.CanAccept() { + if p.limiter.TryAccept() { return p.puller.Pull(image, secrets) } return fmt.Errorf("pull QPS exceeded.") diff --git a/pkg/util/throttle.go b/pkg/util/throttle.go index 43fdc0a9462..b7d7785d90d 100644 --- a/pkg/util/throttle.go +++ b/pkg/util/throttle.go @@ -19,8 +19,9 @@ package util import "github.com/juju/ratelimit" type RateLimiter interface { - // CanAccept returns true if the rate is below the limit, false otherwise - CanAccept() bool + // TryAccept returns true if a token is taken immediately. Otherwise, + // it returns false. + TryAccept() bool // Accept returns once a token becomes available. Accept() // Stop stops the rate limiter, subsequent calls to CanAccept will return false @@ -47,7 +48,7 @@ func NewFakeRateLimiter() RateLimiter { return &fakeRateLimiter{} } -func (t *tickRateLimiter) CanAccept() bool { +func (t *tickRateLimiter) TryAccept() bool { return t.limiter.TakeAvailable(1) == 1 } @@ -59,7 +60,7 @@ func (t *tickRateLimiter) Accept() { func (t *tickRateLimiter) Stop() { } -func (t *fakeRateLimiter) CanAccept() bool { +func (t *fakeRateLimiter) TryAccept() bool { return true } diff --git a/pkg/util/throttle_test.go b/pkg/util/throttle_test.go index b4b145b79db..b75553df17a 100644 --- a/pkg/util/throttle_test.go +++ b/pkg/util/throttle_test.go @@ -24,28 +24,28 @@ import ( func TestBasicThrottle(t *testing.T) { r := NewTokenBucketRateLimiter(1, 3) for i := 0; i < 3; i++ { - if !r.CanAccept() { + if !r.TryAccept() { t.Error("unexpected false accept") } } - if r.CanAccept() { + if r.TryAccept() { t.Error("unexpected true accept") } } func TestIncrementThrottle(t *testing.T) { r := NewTokenBucketRateLimiter(1, 1) - if !r.CanAccept() { + if !r.TryAccept() { t.Error("unexpected false accept") } - if r.CanAccept() { + if r.TryAccept() { t.Error("unexpected true accept") } // Allow to refill time.Sleep(2 * time.Second) - if !r.CanAccept() { + if !r.TryAccept() { t.Error("unexpected false accept") } } diff --git a/plugin/pkg/scheduler/scheduler_test.go b/plugin/pkg/scheduler/scheduler_test.go index 1a7bfdff58f..94523bcdd92 100644 --- a/plugin/pkg/scheduler/scheduler_test.go +++ b/plugin/pkg/scheduler/scheduler_test.go @@ -303,14 +303,14 @@ type FakeRateLimiter struct { acceptValues []bool } -func (fr *FakeRateLimiter) CanAccept() bool { +func (fr *FakeRateLimiter) TryAccept() bool { return true } func (fr *FakeRateLimiter) Stop() {} func (fr *FakeRateLimiter) Accept() { - fr.acceptValues = append(fr.acceptValues, fr.r.CanAccept()) + fr.acceptValues = append(fr.acceptValues, fr.r.TryAccept()) } func TestSchedulerRateLimitsBinding(t *testing.T) {