mirror of https://github.com/knative/pkg.git
added limitrange and resourcequota informers (#501)
This commit is contained in:
parent
07dadbc3ef
commit
db77877519
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
Copyright 2019 The Knative Authors
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package fake
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"knative.dev/pkg/controller"
|
||||
"knative.dev/pkg/injection"
|
||||
"knative.dev/pkg/injection/informers/kubeinformers/corev1/limitrange"
|
||||
"knative.dev/pkg/injection/informers/kubeinformers/factory/fake"
|
||||
)
|
||||
|
||||
var Get = limitrange.Get
|
||||
|
||||
func init() {
|
||||
injection.Fake.RegisterInformer(withInformer)
|
||||
}
|
||||
|
||||
func withInformer(ctx context.Context) (context.Context, controller.Informer) {
|
||||
f := fake.Get(ctx)
|
||||
inf := f.Core().V1().LimitRanges()
|
||||
return context.WithValue(ctx, limitrange.Key{}, inf), inf.Informer()
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
/*
|
||||
Copyright 2019 The Knative Authors
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package fake
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"k8s.io/client-go/rest"
|
||||
|
||||
"knative.dev/pkg/controller"
|
||||
"knative.dev/pkg/injection"
|
||||
)
|
||||
|
||||
func TestGetPanic(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
defer func() {
|
||||
if r := recover(); r == nil {
|
||||
t.Error("Get() should have panicked")
|
||||
}
|
||||
}()
|
||||
|
||||
// Get before registration
|
||||
if empty := Get(ctx); empty != nil {
|
||||
t.Errorf("Unexpected informer: %v", empty)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegistration(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
// Check how many informers have registered.
|
||||
inffs := injection.Fake.GetInformers()
|
||||
if want, got := 1, len(inffs); want != got {
|
||||
t.Errorf("GetInformers() = %d, wanted %d", want, got)
|
||||
}
|
||||
|
||||
// Setup the informers.
|
||||
var infs []controller.Informer
|
||||
ctx, infs = injection.Fake.SetupInformers(ctx, &rest.Config{})
|
||||
|
||||
// We should see that a single informer was set up.
|
||||
if want, got := 1, len(infs); want != got {
|
||||
t.Errorf("SetupInformers() = %d, wanted %d", want, got)
|
||||
}
|
||||
|
||||
// Get our informer from the context.
|
||||
if inf := Get(ctx); inf == nil {
|
||||
t.Error("Get() = nil, wanted non-nil")
|
||||
}
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
/*
|
||||
Copyright 2019 The Knative Authors
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package limitrange
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
corev1 "k8s.io/client-go/informers/core/v1"
|
||||
|
||||
"knative.dev/pkg/controller"
|
||||
"knative.dev/pkg/injection"
|
||||
"knative.dev/pkg/injection/informers/kubeinformers/factory"
|
||||
"knative.dev/pkg/logging"
|
||||
)
|
||||
|
||||
func init() {
|
||||
injection.Default.RegisterInformer(withInformer)
|
||||
}
|
||||
|
||||
// Key is used as the key for associating information
|
||||
// with a context.Context.
|
||||
type Key struct{}
|
||||
|
||||
func withInformer(ctx context.Context) (context.Context, controller.Informer) {
|
||||
f := factory.Get(ctx)
|
||||
inf := f.Core().V1().LimitRanges()
|
||||
return context.WithValue(ctx, Key{}, inf), inf.Informer()
|
||||
}
|
||||
|
||||
// Get extracts the Kubernetes ConfigMap informer from the context.
|
||||
func Get(ctx context.Context) corev1.LimitRangeInformer {
|
||||
untyped := ctx.Value(Key{})
|
||||
if untyped == nil {
|
||||
logging.FromContext(ctx).Panicf(
|
||||
"Unable to fetch %T from context.", (corev1.LimitRangeInformer)(nil))
|
||||
}
|
||||
return untyped.(corev1.LimitRangeInformer)
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
/*
|
||||
Copyright 2019 The Knative Authors
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package limitrange
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"k8s.io/client-go/rest"
|
||||
|
||||
"knative.dev/pkg/controller"
|
||||
"knative.dev/pkg/injection"
|
||||
)
|
||||
|
||||
func TestGetPanic(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
defer func() {
|
||||
if r := recover(); r == nil {
|
||||
t.Error("Get() should have panicked")
|
||||
}
|
||||
}()
|
||||
|
||||
// Get before registration
|
||||
if empty := Get(ctx); empty != nil {
|
||||
t.Errorf("Unexpected informer: %v", empty)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegistration(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
// Check how many informers have registered.
|
||||
inffs := injection.Default.GetInformers()
|
||||
if want, got := 1, len(inffs); want != got {
|
||||
t.Errorf("GetInformers() = %d, wanted %d", want, got)
|
||||
}
|
||||
|
||||
// Setup the informers.
|
||||
var infs []controller.Informer
|
||||
ctx, infs = injection.Default.SetupInformers(ctx, &rest.Config{})
|
||||
|
||||
// We should see that a single informer was set up.
|
||||
if want, got := 1, len(infs); want != got {
|
||||
t.Errorf("SetupInformers() = %d, wanted %d", want, got)
|
||||
}
|
||||
|
||||
// Get our informer from the context.
|
||||
if inf := Get(ctx); inf == nil {
|
||||
t.Error("Get() = nil, wanted non-nil")
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
Copyright 2019 The Knative Authors
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package fake
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"knative.dev/pkg/controller"
|
||||
"knative.dev/pkg/injection"
|
||||
"knative.dev/pkg/injection/informers/kubeinformers/corev1/resourcequota"
|
||||
"knative.dev/pkg/injection/informers/kubeinformers/factory/fake"
|
||||
)
|
||||
|
||||
var Get = resourcequota.Get
|
||||
|
||||
func init() {
|
||||
injection.Fake.RegisterInformer(withInformer)
|
||||
}
|
||||
|
||||
func withInformer(ctx context.Context) (context.Context, controller.Informer) {
|
||||
f := fake.Get(ctx)
|
||||
inf := f.Core().V1().ResourceQuotas()
|
||||
return context.WithValue(ctx, resourcequota.Key{}, inf), inf.Informer()
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
/*
|
||||
Copyright 2019 The Knative Authors
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package fake
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"k8s.io/client-go/rest"
|
||||
|
||||
"knative.dev/pkg/controller"
|
||||
"knative.dev/pkg/injection"
|
||||
)
|
||||
|
||||
func TestGetPanic(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
defer func() {
|
||||
if r := recover(); r == nil {
|
||||
t.Error("Get() should have panicked")
|
||||
}
|
||||
}()
|
||||
|
||||
// Get before registration
|
||||
if empty := Get(ctx); empty != nil {
|
||||
t.Errorf("Unexpected informer: %v", empty)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegistration(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
// Check how many informers have registered.
|
||||
inffs := injection.Fake.GetInformers()
|
||||
if want, got := 1, len(inffs); want != got {
|
||||
t.Errorf("GetInformers() = %d, wanted %d", want, got)
|
||||
}
|
||||
|
||||
// Setup the informers.
|
||||
var infs []controller.Informer
|
||||
ctx, infs = injection.Fake.SetupInformers(ctx, &rest.Config{})
|
||||
|
||||
// We should see that a single informer was set up.
|
||||
if want, got := 1, len(infs); want != got {
|
||||
t.Errorf("SetupInformers() = %d, wanted %d", want, got)
|
||||
}
|
||||
|
||||
// Get our informer from the context.
|
||||
if inf := Get(ctx); inf == nil {
|
||||
t.Error("Get() = nil, wanted non-nil")
|
||||
}
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
/*
|
||||
Copyright 2019 The Knative Authors
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package resourcequota
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
corev1 "k8s.io/client-go/informers/core/v1"
|
||||
|
||||
"knative.dev/pkg/controller"
|
||||
"knative.dev/pkg/injection"
|
||||
"knative.dev/pkg/injection/informers/kubeinformers/factory"
|
||||
"knative.dev/pkg/logging"
|
||||
)
|
||||
|
||||
func init() {
|
||||
injection.Default.RegisterInformer(withInformer)
|
||||
}
|
||||
|
||||
// Key is used as the key for associating information
|
||||
// with a context.Context.
|
||||
type Key struct{}
|
||||
|
||||
func withInformer(ctx context.Context) (context.Context, controller.Informer) {
|
||||
f := factory.Get(ctx)
|
||||
inf := f.Core().V1().ResourceQuotas()
|
||||
return context.WithValue(ctx, Key{}, inf), inf.Informer()
|
||||
}
|
||||
|
||||
// Get extracts the Kubernetes ResourceQuota informer from the context.
|
||||
func Get(ctx context.Context) corev1.ResourceQuotaInformer {
|
||||
untyped := ctx.Value(Key{})
|
||||
if untyped == nil {
|
||||
logging.FromContext(ctx).Panicf(
|
||||
"Unable to fetch %T from context.", (corev1.ResourceQuotaInformer)(nil))
|
||||
}
|
||||
return untyped.(corev1.ResourceQuotaInformer)
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
/*
|
||||
Copyright 2019 The Knative Authors
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package resourcequota
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"k8s.io/client-go/rest"
|
||||
|
||||
"knative.dev/pkg/controller"
|
||||
"knative.dev/pkg/injection"
|
||||
)
|
||||
|
||||
func TestGetPanic(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
defer func() {
|
||||
if r := recover(); r == nil {
|
||||
t.Error("Get() should have panicked")
|
||||
}
|
||||
}()
|
||||
|
||||
// Get before registration
|
||||
if empty := Get(ctx); empty != nil {
|
||||
t.Errorf("Unexpected informer: %v", empty)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegistration(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
// Check how many informers have registered.
|
||||
inffs := injection.Default.GetInformers()
|
||||
if want, got := 1, len(inffs); want != got {
|
||||
t.Errorf("GetInformers() = %d, wanted %d", want, got)
|
||||
}
|
||||
|
||||
// Setup the informers.
|
||||
var infs []controller.Informer
|
||||
ctx, infs = injection.Default.SetupInformers(ctx, &rest.Config{})
|
||||
|
||||
// We should see that a single informer was set up.
|
||||
if want, got := 1, len(infs); want != got {
|
||||
t.Errorf("SetupInformers() = %d, wanted %d", want, got)
|
||||
}
|
||||
|
||||
// Get our informer from the context.
|
||||
if inf := Get(ctx); inf == nil {
|
||||
t.Error("Get() = nil, wanted non-nil")
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue