66 lines
1.5 KiB
Go
66 lines
1.5 KiB
Go
package kubernetes
|
|
|
|
import (
|
|
"k8s.io/client-go/pkg/api/v1"
|
|
"k8s.io/client-go/pkg/apis/extensions/v1beta1"
|
|
)
|
|
|
|
type clientMock struct {
|
|
ingresses []*v1beta1.Ingress
|
|
services []*v1.Service
|
|
secrets []*v1.Secret
|
|
endpoints []*v1.Endpoints
|
|
watchChan chan interface{}
|
|
|
|
apiServiceError error
|
|
apiSecretError error
|
|
apiEndpointsError error
|
|
}
|
|
|
|
func (c clientMock) GetIngresses() []*v1beta1.Ingress {
|
|
return c.ingresses
|
|
}
|
|
|
|
func (c clientMock) GetService(namespace, name string) (*v1.Service, bool, error) {
|
|
if c.apiServiceError != nil {
|
|
return nil, false, c.apiServiceError
|
|
}
|
|
|
|
for _, service := range c.services {
|
|
if service.Namespace == namespace && service.Name == name {
|
|
return service, true, nil
|
|
}
|
|
}
|
|
return nil, false, nil
|
|
}
|
|
|
|
func (c clientMock) GetEndpoints(namespace, name string) (*v1.Endpoints, bool, error) {
|
|
if c.apiEndpointsError != nil {
|
|
return nil, false, c.apiEndpointsError
|
|
}
|
|
|
|
for _, endpoints := range c.endpoints {
|
|
if endpoints.Namespace == namespace && endpoints.Name == name {
|
|
return endpoints, true, nil
|
|
}
|
|
}
|
|
|
|
return &v1.Endpoints{}, false, nil
|
|
}
|
|
|
|
func (c clientMock) GetSecret(namespace, name string) (*v1.Secret, bool, error) {
|
|
if c.apiSecretError != nil {
|
|
return nil, false, c.apiSecretError
|
|
}
|
|
|
|
for _, secret := range c.secrets {
|
|
if secret.Namespace == namespace && secret.Name == name {
|
|
return secret, true, nil
|
|
}
|
|
}
|
|
return nil, false, nil
|
|
}
|
|
|
|
func (c clientMock) WatchAll(namespaces Namespaces, labelString string, stopCh <-chan struct{}) (<-chan interface{}, error) {
|
|
return c.watchChan, nil
|
|
}
|