func NewLimitVerifier(client kclient.LimitRangesNamespacer) LimitVerifier { lw := &cache.ListWatch{ ListFunc: func(options kapi.ListOptions) (runtime.Object, error) { return client.LimitRanges(kapi.NamespaceAll).List(options) }, WatchFunc: func(options kapi.ListOptions) (watch.Interface, error) { return client.LimitRanges(kapi.NamespaceAll).Watch(options) }, } indexer, reflector := cache.NewNamespaceKeyedIndexerAndReflector(lw, &kapi.LimitRange{}, 0) reflector.Run() return &limitVerifier{ client: client, indexer: indexer, } }
// GetLimitRangeListChannel returns a pair of channels to a LimitRange list and errors that // both must be read numReads times. func GetLimitRangeListChannel(client client.LimitRangesNamespacer, nsQuery *NamespaceQuery, numReads int) LimitRangeListChannel { channel := LimitRangeListChannel{ List: make(chan *api.LimitRangeList, numReads), Error: make(chan error, numReads), } go func() { list, err := client.LimitRanges(nsQuery.ToRequestParam()).List(listEverything) for i := 0; i < numReads; i++ { channel.List <- list channel.Error <- err } }() return channel }