in pkg/client/kubeclient_mock.go [81:159]
func NewKubeClientMock(err bool) *KubeClientMock {
kubeMock := &KubeClientMock{
deleteFn: func(pod *v1.Pod) error {
if err {
return fmt.Errorf("error deleting pod")
}
log.Log(log.Test).Info("pod deleted",
zap.String("PodName", pod.Name))
return nil
},
createFn: func(pod *v1.Pod) (*v1.Pod, error) {
if err {
return pod, fmt.Errorf("error creating pod")
}
log.Log(log.Test).Info("pod created",
zap.String("PodName", pod.Name))
return pod, nil
},
updateFn: func(pod *v1.Pod, podMutator func(*v1.Pod)) (*v1.Pod, error) {
if err {
return pod, fmt.Errorf("error updating pod")
}
podMutator(pod)
log.Log(log.Test).Info("pod updated",
zap.String("PodName", pod.Name))
return pod, nil
},
updateStatusFn: func(pod *v1.Pod) (*v1.Pod, error) {
if err {
return pod, fmt.Errorf("error updating pod status")
}
log.Log(log.Test).Info("pod status updated",
zap.String("PodName", pod.Name))
return pod, nil
},
getFn: func(podName string) (*v1.Pod, error) {
if err {
return nil, fmt.Errorf("error getting pod")
}
log.Log(log.Test).Info("Getting pod",
zap.String("PodName", podName))
return nil, nil
},
clientSet: fake.NewSimpleClientset(),
pods: make(map[string]*v1.Pod),
lock: sync.RWMutex{},
bindStats: &BindStats{
HostBindings: make([]HostBinding, 0, 1024),
},
}
kubeMock.bindFn = func(pod *v1.Pod, hostID string) error {
stats := kubeMock.bindStats
if err {
stats.Errors++
return fmt.Errorf("binding error")
}
log.Log(log.Test).Info("pod bound",
zap.String("PodName", pod.Name))
now := time.Now()
if stats.FirstPod == nil {
stats.FirstPod = pod
stats.First = now
}
stats.Last = now
stats.LastPod = pod
stats.HostBindings = append(stats.HostBindings, HostBinding{
pod: pod,
time: now,
host: hostID,
})
stats.Success++
return nil
}
return kubeMock
}