...
1
16
17 package test
18
19 import (
20 "net"
21 "time"
22
23 "k8s.io/apimachinery/pkg/util/wait"
24 "k8s.io/client-go/informers"
25 coreinformers "k8s.io/client-go/informers/core/v1"
26 "k8s.io/client-go/kubernetes/fake"
27 "k8s.io/kubernetes/pkg/controller"
28 "k8s.io/kubernetes/pkg/controller/testutil"
29 netutils "k8s.io/utils/net"
30 )
31
32 const NodePollInterval = 10 * time.Millisecond
33
34 var AlwaysReady = func() bool { return true }
35
36
37
38 func MustParseCIDR(s string) *net.IPNet {
39 _, ret, err := netutils.ParseCIDRSloppy(s)
40 if err != nil {
41 panic(err)
42 }
43 return ret
44 }
45
46
47 func FakeNodeInformer(fakeNodeHandler *testutil.FakeNodeHandler) coreinformers.NodeInformer {
48 fakeClient := &fake.Clientset{}
49 fakeInformerFactory := informers.NewSharedInformerFactory(fakeClient, controller.NoResyncPeriodFunc())
50 fakeNodeInformer := fakeInformerFactory.Core().V1().Nodes()
51
52 for _, node := range fakeNodeHandler.Existing {
53 fakeNodeInformer.Informer().GetStore().Add(node)
54 }
55
56 return fakeNodeInformer
57 }
58
59 func WaitForUpdatedNodeWithTimeout(nodeHandler *testutil.FakeNodeHandler, number int, timeout time.Duration) error {
60 return wait.Poll(NodePollInterval, timeout, func() (bool, error) {
61 if len(nodeHandler.GetUpdatedNodesCopy()) >= number {
62 return true, nil
63 }
64 return false, nil
65 })
66 }
67
View as plain text