mirror of https://github.com/k3s-io/k3s
103 lines
2.8 KiB
Go
103 lines
2.8 KiB
Go
/*
|
|
Copyright 2016 The Kubernetes 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 cache
|
|
|
|
// FakeStore lets you define custom functions for store operations
|
|
type FakeCustomStore struct {
|
|
AddFunc func(obj interface{}) error
|
|
UpdateFunc func(obj interface{}) error
|
|
DeleteFunc func(obj interface{}) error
|
|
ListFunc func() []interface{}
|
|
ListKeysFunc func() []string
|
|
GetFunc func(obj interface{}) (item interface{}, exists bool, err error)
|
|
GetByKeyFunc func(key string) (item interface{}, exists bool, err error)
|
|
ReplaceFunc func(list []interface{}, resourceVerion string) error
|
|
ResyncFunc func() error
|
|
}
|
|
|
|
// Add calls the custom Add function if defined
|
|
func (f *FakeCustomStore) Add(obj interface{}) error {
|
|
if f.AddFunc != nil {
|
|
return f.AddFunc(obj)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Update calls the custom Update function if defined
|
|
func (f *FakeCustomStore) Update(obj interface{}) error {
|
|
if f.UpdateFunc != nil {
|
|
return f.Update(obj)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Delete calls the custom Delete function if defined
|
|
func (f *FakeCustomStore) Delete(obj interface{}) error {
|
|
if f.DeleteFunc != nil {
|
|
return f.DeleteFunc(obj)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// List calls the custom List function if defined
|
|
func (f *FakeCustomStore) List() []interface{} {
|
|
if f.ListFunc != nil {
|
|
return f.ListFunc()
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// ListKeys calls the custom ListKeys function if defined
|
|
func (f *FakeCustomStore) ListKeys() []string {
|
|
if f.ListKeysFunc != nil {
|
|
return f.ListKeysFunc()
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Get calls the custom Get function if defined
|
|
func (f *FakeCustomStore) Get(obj interface{}) (item interface{}, exists bool, err error) {
|
|
if f.GetFunc != nil {
|
|
return f.GetFunc(obj)
|
|
}
|
|
return nil, false, nil
|
|
}
|
|
|
|
// GetByKey calls the custom GetByKey function if defined
|
|
func (f *FakeCustomStore) GetByKey(key string) (item interface{}, exists bool, err error) {
|
|
if f.GetByKeyFunc != nil {
|
|
return f.GetByKeyFunc(key)
|
|
}
|
|
return nil, false, nil
|
|
}
|
|
|
|
// Replace calls the custom Replace function if defined
|
|
func (f *FakeCustomStore) Replace(list []interface{}, resourceVersion string) error {
|
|
if f.ReplaceFunc != nil {
|
|
return f.ReplaceFunc(list, resourceVersion)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Resync calls the custom Resync function if defined
|
|
func (f *FakeCustomStore) Resync() error {
|
|
if f.ResyncFunc != nil {
|
|
return f.ResyncFunc()
|
|
}
|
|
return nil
|
|
}
|