diff --git a/docs/website/versioned_docs/version-3.0.0/command-reference/logs.md b/docs/website/versioned_docs/version-3.0.0/command-reference/logs.md new file mode 100644 index 000000000..f20487e3c --- /dev/null +++ b/docs/website/versioned_docs/version-3.0.0/command-reference/logs.md @@ -0,0 +1,168 @@ +--- +title: odo logs +--- + +## Description + +`odo logs` is used to display the logs for all the containers odo created for the component under current working +directory. + +## Running the command + +If you haven't already done so, you must [initialize](../command-reference/init) your source code with the `odo +init` command. Next, run the `odo dev` command so that odo can create the resources on the Kubernetes cluster. + +Consider a devfile.yaml like below which was used to create inner loop resources using `odo dev`. Notice that +multiple containers have been named as `main` to show how `odo logs` would display logs when more than one +containers have the same name: +```yaml +metadata: + description: Stack with Node.js 14 + displayName: Node.js Runtime + icon: https://nodejs.org/static/images/logos/nodejs-new-pantone-black.svg + language: javascript + name: node + projectType: nodejs + tags: + - NodeJS + - Express + - ubi8 + version: 1.0.1 +schemaVersion: 2.0.0 +starterProjects: + - git: + remotes: + origin: https://github.com/odo-devfiles/nodejs-ex.git + name: nodejs-starter +commands: +- exec: + commandLine: npm install + component: runtime + group: + isDefault: true + kind: build + workingDir: ${PROJECT_SOURCE} + id: install +- exec: + commandLine: npm start + component: runtime + group: + isDefault: true + kind: run + workingDir: ${PROJECT_SOURCE} + id: run +- exec: + commandLine: npm run debug + component: runtime + group: + isDefault: true + kind: debug + workingDir: ${PROJECT_SOURCE} + id: debug +- exec: + commandLine: npm test + component: runtime + group: + isDefault: true + kind: test + workingDir: ${PROJECT_SOURCE} + id: test +components: +- container: + endpoints: + - name: http-3000 + targetPort: 3000 + image: registry.access.redhat.com/ubi8/nodejs-14:latest + memoryLimit: 1024Mi + mountSources: true + name: runtime +- name: infinitepodone + kubernetes: + inlined: | + apiVersion: v1 + kind: Pod + metadata: + name: infinitepodone + spec: + containers: + - name: main + image: docker.io/dharmit/infiniteloop +- name: infinitedeployment + kubernetes: + inlined: | + apiVersion: apps/v1 + kind: Deployment + metadata: + name: infinitedeployment + spec: + replicas: 1 + selector: + matchLabels: + app: infinite + template: + metadata: + labels: + app: infinite + spec: + containers: + - name: main + image: docker.io/dharmit/infiniteloop + ``` +When you do `odo dev`, odo creates pods for: +1. The component named `node` itself. Containers for this are created using `.components.container`. +2. Kubernetes component named `infinitepodone` +3. Kubernetes component named `infinitedeployment`. As can be seen under `.spec.template.spec.containers` for this + particular component, it creates one container for it. + +When you run `odo logs`, you should see logs from all these containers. Each line is prefixed with +`:` to easily distinguish which the container the logs belong to. Since we named multiple +containers in the `devfile.yaml` as `main`, `odo logs` has distinguished these containers as `main` and `main[1]`: +```shell +$ odo logs +main: Fri May 27 06:17:30 UTC 2022 - this is infinite for loop +main: Fri May 27 06:17:31 UTC 2022 - this is infinite for loop +main: Fri May 27 06:17:32 UTC 2022 - this is infinite for loop +main: Fri May 27 06:17:33 UTC 2022 - this is infinite for loop +main: Fri May 27 06:17:34 UTC 2022 - this is infinite for loop +main: Fri May 27 06:17:35 UTC 2022 - this is infinite for loop +main: Fri May 27 06:17:36 UTC 2022 - this is infinite for loop +main: Fri May 27 06:17:37 UTC 2022 - this is infinite for loop +main: Fri May 27 06:17:38 UTC 2022 - this is infinite for loop +main: Fri May 27 06:17:39 UTC 2022 - this is infinite for loop +main: Fri May 27 06:17:40 UTC 2022 - this is infinite for loop +main: Fri May 27 06:17:41 UTC 2022 - this is infinite for loop +main: Fri May 27 06:17:42 UTC 2022 - this is infinite for loop +main: Fri May 27 06:17:44 UTC 2022 - this is infinite for loop +main: Fri May 27 06:17:45 UTC 2022 - this is infinite for loop +main: Fri May 27 06:17:46 UTC 2022 - this is infinite for loop +main: Fri May 27 06:17:47 UTC 2022 - this is infinite for loop +runtime: time="2022-05-27T06:17:36Z" level=info msg="create process:devrun" +runtime: time="2022-05-27T06:17:36Z" level=info msg="create process:debugrun" +runtime: time="2022-05-27T06:17:36Z" level=info msg="try to start program" program=devrun +runtime: time="2022-05-27T06:17:36Z" level=info msg="success to start program" program=devrun +runtime: time="2022-05-27T06:17:37Z" level=debug msg="no auth required" +runtime: time="2022-05-27T06:17:37Z" level=debug msg="wait program exit" program=devrun +runtime: time="2022-05-27T06:17:37Z" level=info msg="program stopped with status:exit status 0" program=devrun +runtime: time="2022-05-27T06:17:37Z" level=info msg="Don't start the stopped program because its autorestart flag is false" program=devrun +runtime: time="2022-05-27T06:17:41Z" level=debug msg="no auth required" +runtime: time="2022-05-27T06:17:41Z" level=debug msg="succeed to find process:devrun" +runtime: time="2022-05-27T06:17:41Z" level=info msg="try to start program" program=devrun +runtime: time="2022-05-27T06:17:41Z" level=info msg="success to start program" program=devrun +runtime: ODO_COMMAND_RUN is npm start +runtime: Changing directory to ${PROJECT_SOURCE} +runtime: Executing command cd ${PROJECT_SOURCE} && npm start +runtime: +runtime: > nodejs-starter@1.0.0 start /projects +runtime: > node server.js +runtime: +runtime: App started on PORT 3000 +runtime: time="2022-05-27T06:17:42Z" level=debug msg="wait program exit" program=devrun +runtime: time="2022-05-27T06:17:43Z" level=debug msg="no auth required" +main1: Fri May 27 06:17:34 UTC 2022 - this is infinite for loop +main1: Fri May 27 06:17:35 UTC 2022 - this is infinite for loop +main1: Fri May 27 06:17:36 UTC 2022 - this is infinite for loop +main1: Fri May 27 06:17:37 UTC 2022 - this is infinite for loop +main1: Fri May 27 06:17:38 UTC 2022 - this is infinite for loop +main1: Fri May 27 06:17:39 UTC 2022 - this is infinite for loop +main1: Fri May 27 06:17:40 UTC 2022 - this is infinite for loop +``` \ No newline at end of file diff --git a/pkg/binding/mock.go b/pkg/binding/mock.go index 465fa6f36..4860b1bf2 100644 --- a/pkg/binding/mock.go +++ b/pkg/binding/mock.go @@ -5,155 +5,38 @@ package binding import ( + reflect "reflect" + parser "github.com/devfile/library/pkg/devfile/parser" gomock "github.com/golang/mock/gomock" api "github.com/redhat-developer/odo/pkg/api" unstructured "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - reflect "reflect" ) -// MockClient is a mock of Client interface +// MockClient is a mock of Client interface. type MockClient struct { ctrl *gomock.Controller recorder *MockClientMockRecorder } -// MockClientMockRecorder is the mock recorder for MockClient +// MockClientMockRecorder is the mock recorder for MockClient. type MockClientMockRecorder struct { mock *MockClient } -// NewMockClient creates a new mock instance +// NewMockClient creates a new mock instance. func NewMockClient(ctrl *gomock.Controller) *MockClient { mock := &MockClient{ctrl: ctrl} mock.recorder = &MockClientMockRecorder{mock} return mock } -// EXPECT returns an object that allows the caller to indicate expected use +// EXPECT returns an object that allows the caller to indicate expected use. func (m *MockClient) EXPECT() *MockClientMockRecorder { return m.recorder } -// GetFlags mocks base method -func (m *MockClient) GetFlags(flags map[string]string) map[string]string { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetFlags", flags) - ret0, _ := ret[0].(map[string]string) - return ret0 -} - -// GetFlags indicates an expected call of GetFlags -func (mr *MockClientMockRecorder) GetFlags(flags interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFlags", reflect.TypeOf((*MockClient)(nil).GetFlags), flags) -} - -// GetServiceInstances mocks base method -func (m *MockClient) GetServiceInstances() (map[string]unstructured.Unstructured, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetServiceInstances") - ret0, _ := ret[0].(map[string]unstructured.Unstructured) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetServiceInstances indicates an expected call of GetServiceInstances -func (mr *MockClientMockRecorder) GetServiceInstances() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServiceInstances", reflect.TypeOf((*MockClient)(nil).GetServiceInstances)) -} - -// GetBindingsFromDevfile mocks base method -func (m *MockClient) GetBindingsFromDevfile(devfileObj parser.DevfileObj, context string) ([]api.ServiceBinding, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetBindingsFromDevfile", devfileObj, context) - ret0, _ := ret[0].([]api.ServiceBinding) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetBindingsFromDevfile indicates an expected call of GetBindingsFromDevfile -func (mr *MockClientMockRecorder) GetBindingsFromDevfile(devfileObj, context interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBindingsFromDevfile", reflect.TypeOf((*MockClient)(nil).GetBindingsFromDevfile), devfileObj, context) -} - -// GetBindingFromCluster mocks base method -func (m *MockClient) GetBindingFromCluster(name string) (api.ServiceBinding, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetBindingFromCluster", name) - ret0, _ := ret[0].(api.ServiceBinding) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetBindingFromCluster indicates an expected call of GetBindingFromCluster -func (mr *MockClientMockRecorder) GetBindingFromCluster(name interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBindingFromCluster", reflect.TypeOf((*MockClient)(nil).GetBindingFromCluster), name) -} - -// ValidateAddBinding mocks base method -func (m *MockClient) ValidateAddBinding(flags map[string]string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ValidateAddBinding", flags) - ret0, _ := ret[0].(error) - return ret0 -} - -// ValidateAddBinding indicates an expected call of ValidateAddBinding -func (mr *MockClientMockRecorder) ValidateAddBinding(flags interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateAddBinding", reflect.TypeOf((*MockClient)(nil).ValidateAddBinding), flags) -} - -// SelectServiceInstance mocks base method -func (m *MockClient) SelectServiceInstance(flags map[string]string, serviceMap map[string]unstructured.Unstructured) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "SelectServiceInstance", flags, serviceMap) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// SelectServiceInstance indicates an expected call of SelectServiceInstance -func (mr *MockClientMockRecorder) SelectServiceInstance(flags, serviceMap interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SelectServiceInstance", reflect.TypeOf((*MockClient)(nil).SelectServiceInstance), flags, serviceMap) -} - -// AskBindingName mocks base method -func (m *MockClient) AskBindingName(serviceName, componentName string, flags map[string]string) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AskBindingName", serviceName, componentName, flags) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// AskBindingName indicates an expected call of AskBindingName -func (mr *MockClientMockRecorder) AskBindingName(serviceName, componentName, flags interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AskBindingName", reflect.TypeOf((*MockClient)(nil).AskBindingName), serviceName, componentName, flags) -} - -// AskBindAsFiles mocks base method -func (m *MockClient) AskBindAsFiles(flags map[string]string) (bool, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AskBindAsFiles", flags) - ret0, _ := ret[0].(bool) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// AskBindAsFiles indicates an expected call of AskBindAsFiles -func (mr *MockClientMockRecorder) AskBindAsFiles(flags interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AskBindAsFiles", reflect.TypeOf((*MockClient)(nil).AskBindAsFiles), flags) -} - -// AddBinding mocks base method +// AddBinding mocks base method. func (m *MockClient) AddBinding(bindingName string, bindAsFiles bool, unstructuredService unstructured.Unstructured, obj parser.DevfileObj) (parser.DevfileObj, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "AddBinding", bindingName, bindAsFiles, unstructuredService, obj) @@ -162,27 +45,102 @@ func (m *MockClient) AddBinding(bindingName string, bindAsFiles bool, unstructur return ret0, ret1 } -// AddBinding indicates an expected call of AddBinding +// AddBinding indicates an expected call of AddBinding. func (mr *MockClientMockRecorder) AddBinding(bindingName, bindAsFiles, unstructuredService, obj interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddBinding", reflect.TypeOf((*MockClient)(nil).AddBinding), bindingName, bindAsFiles, unstructuredService, obj) } -// ValidateRemoveBinding mocks base method -func (m *MockClient) ValidateRemoveBinding(flags map[string]string) error { +// AskBindAsFiles mocks base method. +func (m *MockClient) AskBindAsFiles(flags map[string]string) (bool, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ValidateRemoveBinding", flags) - ret0, _ := ret[0].(error) + ret := m.ctrl.Call(m, "AskBindAsFiles", flags) + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// AskBindAsFiles indicates an expected call of AskBindAsFiles. +func (mr *MockClientMockRecorder) AskBindAsFiles(flags interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AskBindAsFiles", reflect.TypeOf((*MockClient)(nil).AskBindAsFiles), flags) +} + +// AskBindingName mocks base method. +func (m *MockClient) AskBindingName(serviceName, componentName string, flags map[string]string) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "AskBindingName", serviceName, componentName, flags) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// AskBindingName indicates an expected call of AskBindingName. +func (mr *MockClientMockRecorder) AskBindingName(serviceName, componentName, flags interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AskBindingName", reflect.TypeOf((*MockClient)(nil).AskBindingName), serviceName, componentName, flags) +} + +// GetBindingFromCluster mocks base method. +func (m *MockClient) GetBindingFromCluster(name string) (api.ServiceBinding, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetBindingFromCluster", name) + ret0, _ := ret[0].(api.ServiceBinding) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetBindingFromCluster indicates an expected call of GetBindingFromCluster. +func (mr *MockClientMockRecorder) GetBindingFromCluster(name interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBindingFromCluster", reflect.TypeOf((*MockClient)(nil).GetBindingFromCluster), name) +} + +// GetBindingsFromDevfile mocks base method. +func (m *MockClient) GetBindingsFromDevfile(devfileObj parser.DevfileObj, context string) ([]api.ServiceBinding, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetBindingsFromDevfile", devfileObj, context) + ret0, _ := ret[0].([]api.ServiceBinding) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetBindingsFromDevfile indicates an expected call of GetBindingsFromDevfile. +func (mr *MockClientMockRecorder) GetBindingsFromDevfile(devfileObj, context interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBindingsFromDevfile", reflect.TypeOf((*MockClient)(nil).GetBindingsFromDevfile), devfileObj, context) +} + +// GetFlags mocks base method. +func (m *MockClient) GetFlags(flags map[string]string) map[string]string { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetFlags", flags) + ret0, _ := ret[0].(map[string]string) return ret0 } -// ValidateRemoveBinding indicates an expected call of ValidateRemoveBinding -func (mr *MockClientMockRecorder) ValidateRemoveBinding(flags interface{}) *gomock.Call { +// GetFlags indicates an expected call of GetFlags. +func (mr *MockClientMockRecorder) GetFlags(flags interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateRemoveBinding", reflect.TypeOf((*MockClient)(nil).ValidateRemoveBinding), flags) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFlags", reflect.TypeOf((*MockClient)(nil).GetFlags), flags) } -// RemoveBinding mocks base method +// GetServiceInstances mocks base method. +func (m *MockClient) GetServiceInstances() (map[string]unstructured.Unstructured, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetServiceInstances") + ret0, _ := ret[0].(map[string]unstructured.Unstructured) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetServiceInstances indicates an expected call of GetServiceInstances. +func (mr *MockClientMockRecorder) GetServiceInstances() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServiceInstances", reflect.TypeOf((*MockClient)(nil).GetServiceInstances)) +} + +// RemoveBinding mocks base method. func (m *MockClient) RemoveBinding(bindingName string, obj parser.DevfileObj) (parser.DevfileObj, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "RemoveBinding", bindingName, obj) @@ -191,8 +149,51 @@ func (m *MockClient) RemoveBinding(bindingName string, obj parser.DevfileObj) (p return ret0, ret1 } -// RemoveBinding indicates an expected call of RemoveBinding +// RemoveBinding indicates an expected call of RemoveBinding. func (mr *MockClientMockRecorder) RemoveBinding(bindingName, obj interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveBinding", reflect.TypeOf((*MockClient)(nil).RemoveBinding), bindingName, obj) } + +// SelectServiceInstance mocks base method. +func (m *MockClient) SelectServiceInstance(flags map[string]string, serviceMap map[string]unstructured.Unstructured) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SelectServiceInstance", flags, serviceMap) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// SelectServiceInstance indicates an expected call of SelectServiceInstance. +func (mr *MockClientMockRecorder) SelectServiceInstance(flags, serviceMap interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SelectServiceInstance", reflect.TypeOf((*MockClient)(nil).SelectServiceInstance), flags, serviceMap) +} + +// ValidateAddBinding mocks base method. +func (m *MockClient) ValidateAddBinding(flags map[string]string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ValidateAddBinding", flags) + ret0, _ := ret[0].(error) + return ret0 +} + +// ValidateAddBinding indicates an expected call of ValidateAddBinding. +func (mr *MockClientMockRecorder) ValidateAddBinding(flags interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateAddBinding", reflect.TypeOf((*MockClient)(nil).ValidateAddBinding), flags) +} + +// ValidateRemoveBinding mocks base method. +func (m *MockClient) ValidateRemoveBinding(flags map[string]string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ValidateRemoveBinding", flags) + ret0, _ := ret[0].(error) + return ret0 +} + +// ValidateRemoveBinding indicates an expected call of ValidateRemoveBinding. +func (mr *MockClientMockRecorder) ValidateRemoveBinding(flags interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateRemoveBinding", reflect.TypeOf((*MockClient)(nil).ValidateRemoveBinding), flags) +} diff --git a/pkg/component/component.go b/pkg/component/component.go index ff8819b98..abe144966 100644 --- a/pkg/component/component.go +++ b/pkg/component/component.go @@ -124,9 +124,6 @@ func Log(client kclient.ClientInterface, componentName string, appName string, f // We then return a list of "components" intended for listing / output purposes specifically for commands such as: // `odo list` // that are both odo and non-odo components. -// -// We then return a list of "components" intended for listing / output purposes specifically for commands such as: -// `odo list` func ListAllClusterComponents(client kclient.ClientInterface, namespace string) ([]api.ComponentAbstract, error) { // Get all the dynamic resources available @@ -155,8 +152,8 @@ func ListAllClusterComponents(client kclient.ClientInterface, namespace string) } // Figure out the correct name to use - // if there is no instance label, we SKIP the resource as - // it is not a component essential for Kubernetes. + // if there is no instance label (app.kubernetes.io/instance), + // we SKIP the resource as it is not a component essential for Kubernetes. name := odolabels.GetComponentName(labels) if name == "" { continue diff --git a/pkg/kclient/binding.go b/pkg/kclient/binding.go index 1237aac70..c68c923f7 100644 --- a/pkg/kclient/binding.go +++ b/pkg/kclient/binding.go @@ -54,7 +54,7 @@ func (c *Client) GetBindableKinds() (bindingApi.BindableKinds, error) { return bindableKind, nil } -// GetBindableKindStatusRestMapping retuns a list of *meta.RESTMapping of all the bindable kind operator CRD +// GetBindableKindStatusRestMapping returns a list of *meta.RESTMapping of all the bindable kind operator CRD func (c Client) GetBindableKindStatusRestMapping(bindableKindStatuses []bindingApi.BindableKindsStatus) ([]*meta.RESTMapping, error) { var result []*meta.RESTMapping for _, bks := range bindableKindStatuses { diff --git a/pkg/kclient/interface.go b/pkg/kclient/interface.go index aae4a65a6..9c932aa29 100644 --- a/pkg/kclient/interface.go +++ b/pkg/kclient/interface.go @@ -29,6 +29,14 @@ type ClientInterface interface { // GetAllResourcesFromSelector returns all resources of any kind (including CRs) matching the given label selector GetAllResourcesFromSelector(selector string, ns string) ([]unstructured.Unstructured, error) + // binding.go + IsServiceBindingSupported() (bool, error) + GetBindableKinds() (bindingApi.BindableKinds, error) + GetBindableKindStatusRestMapping(bindableKindStatuses []bindingApi.BindableKindsStatus) ([]*meta.RESTMapping, error) + GetBindingServiceBinding(name string) (bindingApi.ServiceBinding, error) + GetSpecServiceBinding(name string) (specApi.ServiceBinding, error) + NewServiceBindingServiceObject(unstructuredService unstructured.Unstructured, bindingName string) (bindingApi.Service, error) + // deployment.go GetDeploymentByName(name string) (*appsv1.Deployment, error) GetOneDeployment(componentName, appName string) (*appsv1.Deployment, error) @@ -87,14 +95,6 @@ type ClientInterface interface { GetOperatorGVRList() ([]meta.RESTMapping, error) ConvertUnstructuredToResource(u unstructured.Unstructured, obj interface{}) error - // binding.go - IsServiceBindingSupported() (bool, error) - GetBindableKinds() (bindingApi.BindableKinds, error) - GetBindableKindStatusRestMapping(bindableKindStatuses []bindingApi.BindableKindsStatus) ([]*meta.RESTMapping, error) - GetBindingServiceBinding(name string) (bindingApi.ServiceBinding, error) - GetSpecServiceBinding(name string) (specApi.ServiceBinding, error) - NewServiceBindingServiceObject(unstructuredService unstructured.Unstructured, bindingName string) (bindingApi.Service, error) - // owner_reference.go TryWithBlockOwnerDeletion(ownerReference metav1.OwnerReference, exec func(ownerReference metav1.OwnerReference) error) error @@ -105,6 +105,7 @@ type ClientInterface interface { GetPodUsingComponentName(componentName string) (*corev1.Pod, error) GetOnePodFromSelector(selector string) (*corev1.Pod, error) GetPodLogs(podName, containerName string, followLog bool) (io.ReadCloser, error) + GetAllPodsInNamespace() (*corev1.PodList, error) // port_forwarding.go // SetupPortForwarding creates port-forwarding for the pod on the port pairs provided in the diff --git a/pkg/kclient/mock_Client.go b/pkg/kclient/mock_Client.go index 76d5f54b2..dd678e70d 100644 --- a/pkg/kclient/mock_Client.go +++ b/pkg/kclient/mock_Client.go @@ -5,13 +5,16 @@ package kclient import ( + io "io" + reflect "reflect" + time "time" + spec "github.com/go-openapi/spec" gomock "github.com/golang/mock/gomock" v1 "github.com/openshift/api/project/v1" v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1" v1alpha10 "github.com/redhat-developer/service-binding-operator/apis/binding/v1alpha1" v1alpha3 "github.com/redhat-developer/service-binding-operator/apis/spec/v1alpha3" - io "io" v10 "k8s.io/api/apps/v1" v11 "k8s.io/api/core/v1" meta "k8s.io/apimachinery/pkg/api/meta" @@ -23,168 +26,32 @@ import ( kubernetes "k8s.io/client-go/kubernetes" rest "k8s.io/client-go/rest" clientcmd "k8s.io/client-go/tools/clientcmd" - reflect "reflect" - time "time" ) -// MockClientInterface is a mock of ClientInterface interface +// MockClientInterface is a mock of ClientInterface interface. type MockClientInterface struct { ctrl *gomock.Controller recorder *MockClientInterfaceMockRecorder } -// MockClientInterfaceMockRecorder is the mock recorder for MockClientInterface +// MockClientInterfaceMockRecorder is the mock recorder for MockClientInterface. type MockClientInterfaceMockRecorder struct { mock *MockClientInterface } -// NewMockClientInterface creates a new mock instance +// NewMockClientInterface creates a new mock instance. func NewMockClientInterface(ctrl *gomock.Controller) *MockClientInterface { mock := &MockClientInterface{ctrl: ctrl} mock.recorder = &MockClientInterfaceMockRecorder{mock} return mock } -// EXPECT returns an object that allows the caller to indicate expected use +// EXPECT returns an object that allows the caller to indicate expected use. func (m *MockClientInterface) EXPECT() *MockClientInterfaceMockRecorder { return m.recorder } -// GetAllResourcesFromSelector mocks base method -func (m *MockClientInterface) GetAllResourcesFromSelector(selector, ns string) ([]unstructured.Unstructured, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAllResourcesFromSelector", selector, ns) - ret0, _ := ret[0].([]unstructured.Unstructured) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAllResourcesFromSelector indicates an expected call of GetAllResourcesFromSelector -func (mr *MockClientInterfaceMockRecorder) GetAllResourcesFromSelector(selector, ns interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllResourcesFromSelector", reflect.TypeOf((*MockClientInterface)(nil).GetAllResourcesFromSelector), selector, ns) -} - -// GetDeploymentByName mocks base method -func (m *MockClientInterface) GetDeploymentByName(name string) (*v10.Deployment, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDeploymentByName", name) - ret0, _ := ret[0].(*v10.Deployment) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetDeploymentByName indicates an expected call of GetDeploymentByName -func (mr *MockClientInterfaceMockRecorder) GetDeploymentByName(name interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeploymentByName", reflect.TypeOf((*MockClientInterface)(nil).GetDeploymentByName), name) -} - -// GetOneDeployment mocks base method -func (m *MockClientInterface) GetOneDeployment(componentName, appName string) (*v10.Deployment, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOneDeployment", componentName, appName) - ret0, _ := ret[0].(*v10.Deployment) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOneDeployment indicates an expected call of GetOneDeployment -func (mr *MockClientInterfaceMockRecorder) GetOneDeployment(componentName, appName interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOneDeployment", reflect.TypeOf((*MockClientInterface)(nil).GetOneDeployment), componentName, appName) -} - -// GetOneDeploymentFromSelector mocks base method -func (m *MockClientInterface) GetOneDeploymentFromSelector(selector string) (*v10.Deployment, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOneDeploymentFromSelector", selector) - ret0, _ := ret[0].(*v10.Deployment) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOneDeploymentFromSelector indicates an expected call of GetOneDeploymentFromSelector -func (mr *MockClientInterfaceMockRecorder) GetOneDeploymentFromSelector(selector interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOneDeploymentFromSelector", reflect.TypeOf((*MockClientInterface)(nil).GetOneDeploymentFromSelector), selector) -} - -// GetDeploymentFromSelector mocks base method -func (m *MockClientInterface) GetDeploymentFromSelector(selector string) ([]v10.Deployment, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDeploymentFromSelector", selector) - ret0, _ := ret[0].([]v10.Deployment) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetDeploymentFromSelector indicates an expected call of GetDeploymentFromSelector -func (mr *MockClientInterfaceMockRecorder) GetDeploymentFromSelector(selector interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeploymentFromSelector", reflect.TypeOf((*MockClientInterface)(nil).GetDeploymentFromSelector), selector) -} - -// WaitForPodDeletion mocks base method -func (m *MockClientInterface) WaitForPodDeletion(name string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "WaitForPodDeletion", name) - ret0, _ := ret[0].(error) - return ret0 -} - -// WaitForPodDeletion indicates an expected call of WaitForPodDeletion -func (mr *MockClientInterfaceMockRecorder) WaitForPodDeletion(name interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitForPodDeletion", reflect.TypeOf((*MockClientInterface)(nil).WaitForPodDeletion), name) -} - -// WaitForDeploymentRollout mocks base method -func (m *MockClientInterface) WaitForDeploymentRollout(deploymentName string) (*v10.Deployment, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "WaitForDeploymentRollout", deploymentName) - ret0, _ := ret[0].(*v10.Deployment) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// WaitForDeploymentRollout indicates an expected call of WaitForDeploymentRollout -func (mr *MockClientInterfaceMockRecorder) WaitForDeploymentRollout(deploymentName interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitForDeploymentRollout", reflect.TypeOf((*MockClientInterface)(nil).WaitForDeploymentRollout), deploymentName) -} - -// CreateDeployment mocks base method -func (m *MockClientInterface) CreateDeployment(deploy v10.Deployment) (*v10.Deployment, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateDeployment", deploy) - ret0, _ := ret[0].(*v10.Deployment) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateDeployment indicates an expected call of CreateDeployment -func (mr *MockClientInterfaceMockRecorder) CreateDeployment(deploy interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateDeployment", reflect.TypeOf((*MockClientInterface)(nil).CreateDeployment), deploy) -} - -// UpdateDeployment mocks base method -func (m *MockClientInterface) UpdateDeployment(deploy v10.Deployment) (*v10.Deployment, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateDeployment", deploy) - ret0, _ := ret[0].(*v10.Deployment) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateDeployment indicates an expected call of UpdateDeployment -func (mr *MockClientInterfaceMockRecorder) UpdateDeployment(deploy interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateDeployment", reflect.TypeOf((*MockClientInterface)(nil).UpdateDeployment), deploy) -} - -// ApplyDeployment mocks base method +// ApplyDeployment mocks base method. func (m *MockClientInterface) ApplyDeployment(deploy v10.Deployment) (*v10.Deployment, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ApplyDeployment", deploy) @@ -193,43 +60,54 @@ func (m *MockClientInterface) ApplyDeployment(deploy v10.Deployment) (*v10.Deplo return ret0, ret1 } -// ApplyDeployment indicates an expected call of ApplyDeployment +// ApplyDeployment indicates an expected call of ApplyDeployment. func (mr *MockClientInterfaceMockRecorder) ApplyDeployment(deploy interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ApplyDeployment", reflect.TypeOf((*MockClientInterface)(nil).ApplyDeployment), deploy) } -// GetDeploymentAPIVersion mocks base method -func (m *MockClientInterface) GetDeploymentAPIVersion() (schema.GroupVersionResource, error) { +// CollectEvents mocks base method. +func (m *MockClientInterface) CollectEvents(selector string, events map[string]v11.Event, quit <-chan int) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDeploymentAPIVersion") - ret0, _ := ret[0].(schema.GroupVersionResource) + m.ctrl.Call(m, "CollectEvents", selector, events, quit) +} + +// CollectEvents indicates an expected call of CollectEvents. +func (mr *MockClientInterfaceMockRecorder) CollectEvents(selector, events, quit interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CollectEvents", reflect.TypeOf((*MockClientInterface)(nil).CollectEvents), selector, events, quit) +} + +// ConvertUnstructuredToResource mocks base method. +func (m *MockClientInterface) ConvertUnstructuredToResource(u unstructured.Unstructured, obj interface{}) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ConvertUnstructuredToResource", u, obj) + ret0, _ := ret[0].(error) + return ret0 +} + +// ConvertUnstructuredToResource indicates an expected call of ConvertUnstructuredToResource. +func (mr *MockClientInterfaceMockRecorder) ConvertUnstructuredToResource(u, obj interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ConvertUnstructuredToResource", reflect.TypeOf((*MockClientInterface)(nil).ConvertUnstructuredToResource), u, obj) +} + +// CreateDeployment mocks base method. +func (m *MockClientInterface) CreateDeployment(deploy v10.Deployment) (*v10.Deployment, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateDeployment", deploy) + ret0, _ := ret[0].(*v10.Deployment) ret1, _ := ret[1].(error) return ret0, ret1 } -// GetDeploymentAPIVersion indicates an expected call of GetDeploymentAPIVersion -func (mr *MockClientInterfaceMockRecorder) GetDeploymentAPIVersion() *gomock.Call { +// CreateDeployment indicates an expected call of CreateDeployment. +func (mr *MockClientInterfaceMockRecorder) CreateDeployment(deploy interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeploymentAPIVersion", reflect.TypeOf((*MockClientInterface)(nil).GetDeploymentAPIVersion)) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateDeployment", reflect.TypeOf((*MockClientInterface)(nil).CreateDeployment), deploy) } -// IsDeploymentExtensionsV1Beta1 mocks base method -func (m *MockClientInterface) IsDeploymentExtensionsV1Beta1() (bool, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "IsDeploymentExtensionsV1Beta1") - ret0, _ := ret[0].(bool) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// IsDeploymentExtensionsV1Beta1 indicates an expected call of IsDeploymentExtensionsV1Beta1 -func (mr *MockClientInterfaceMockRecorder) IsDeploymentExtensionsV1Beta1() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsDeploymentExtensionsV1Beta1", reflect.TypeOf((*MockClientInterface)(nil).IsDeploymentExtensionsV1Beta1)) -} - -// CreateDynamicResource mocks base method +// CreateDynamicResource mocks base method. func (m *MockClientInterface) CreateDynamicResource(exampleCustomResource unstructured.Unstructured) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateDynamicResource", exampleCustomResource) @@ -237,265 +115,13 @@ func (m *MockClientInterface) CreateDynamicResource(exampleCustomResource unstru return ret0 } -// CreateDynamicResource indicates an expected call of CreateDynamicResource +// CreateDynamicResource indicates an expected call of CreateDynamicResource. func (mr *MockClientInterfaceMockRecorder) CreateDynamicResource(exampleCustomResource interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateDynamicResource", reflect.TypeOf((*MockClientInterface)(nil).CreateDynamicResource), exampleCustomResource) } -// ListDynamicResources mocks base method -func (m *MockClientInterface) ListDynamicResources(gvr schema.GroupVersionResource) (*unstructured.UnstructuredList, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListDynamicResources", gvr) - ret0, _ := ret[0].(*unstructured.UnstructuredList) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListDynamicResources indicates an expected call of ListDynamicResources -func (mr *MockClientInterfaceMockRecorder) ListDynamicResources(gvr interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDynamicResources", reflect.TypeOf((*MockClientInterface)(nil).ListDynamicResources), gvr) -} - -// GetDynamicResource mocks base method -func (m *MockClientInterface) GetDynamicResource(gvr schema.GroupVersionResource, name string) (*unstructured.Unstructured, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDynamicResource", gvr, name) - ret0, _ := ret[0].(*unstructured.Unstructured) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetDynamicResource indicates an expected call of GetDynamicResource -func (mr *MockClientInterfaceMockRecorder) GetDynamicResource(gvr, name interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDynamicResource", reflect.TypeOf((*MockClientInterface)(nil).GetDynamicResource), gvr, name) -} - -// UpdateDynamicResource mocks base method -func (m *MockClientInterface) UpdateDynamicResource(gvr schema.GroupVersionResource, name string, u *unstructured.Unstructured) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateDynamicResource", gvr, name, u) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateDynamicResource indicates an expected call of UpdateDynamicResource -func (mr *MockClientInterfaceMockRecorder) UpdateDynamicResource(gvr, name, u interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateDynamicResource", reflect.TypeOf((*MockClientInterface)(nil).UpdateDynamicResource), gvr, name, u) -} - -// DeleteDynamicResource mocks base method -func (m *MockClientInterface) DeleteDynamicResource(name string, gvr schema.GroupVersionResource, wait bool) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteDynamicResource", name, gvr, wait) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteDynamicResource indicates an expected call of DeleteDynamicResource -func (mr *MockClientInterfaceMockRecorder) DeleteDynamicResource(name, gvr, wait interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteDynamicResource", reflect.TypeOf((*MockClientInterface)(nil).DeleteDynamicResource), name, gvr, wait) -} - -// CollectEvents mocks base method -func (m *MockClientInterface) CollectEvents(selector string, events map[string]v11.Event, quit <-chan int) { - m.ctrl.T.Helper() - m.ctrl.Call(m, "CollectEvents", selector, events, quit) -} - -// CollectEvents indicates an expected call of CollectEvents -func (mr *MockClientInterfaceMockRecorder) CollectEvents(selector, events, quit interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CollectEvents", reflect.TypeOf((*MockClientInterface)(nil).CollectEvents), selector, events, quit) -} - -// GetClient mocks base method -func (m *MockClientInterface) GetClient() kubernetes.Interface { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetClient") - ret0, _ := ret[0].(kubernetes.Interface) - return ret0 -} - -// GetClient indicates an expected call of GetClient -func (mr *MockClientInterfaceMockRecorder) GetClient() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetClient", reflect.TypeOf((*MockClientInterface)(nil).GetClient)) -} - -// GetConfig mocks base method -func (m *MockClientInterface) GetConfig() clientcmd.ClientConfig { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetConfig") - ret0, _ := ret[0].(clientcmd.ClientConfig) - return ret0 -} - -// GetConfig indicates an expected call of GetConfig -func (mr *MockClientInterfaceMockRecorder) GetConfig() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetConfig", reflect.TypeOf((*MockClientInterface)(nil).GetConfig)) -} - -// GetClientConfig mocks base method -func (m *MockClientInterface) GetClientConfig() *rest.Config { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetClientConfig") - ret0, _ := ret[0].(*rest.Config) - return ret0 -} - -// GetClientConfig indicates an expected call of GetClientConfig -func (mr *MockClientInterfaceMockRecorder) GetClientConfig() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetClientConfig", reflect.TypeOf((*MockClientInterface)(nil).GetClientConfig)) -} - -// GetDynamicClient mocks base method -func (m *MockClientInterface) GetDynamicClient() dynamic.Interface { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDynamicClient") - ret0, _ := ret[0].(dynamic.Interface) - return ret0 -} - -// GetDynamicClient indicates an expected call of GetDynamicClient -func (mr *MockClientInterfaceMockRecorder) GetDynamicClient() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDynamicClient", reflect.TypeOf((*MockClientInterface)(nil).GetDynamicClient)) -} - -// GeneratePortForwardReq mocks base method -func (m *MockClientInterface) GeneratePortForwardReq(podName string) *rest.Request { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GeneratePortForwardReq", podName) - ret0, _ := ret[0].(*rest.Request) - return ret0 -} - -// GeneratePortForwardReq indicates an expected call of GeneratePortForwardReq -func (mr *MockClientInterfaceMockRecorder) GeneratePortForwardReq(podName interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GeneratePortForwardReq", reflect.TypeOf((*MockClientInterface)(nil).GeneratePortForwardReq), podName) -} - -// SetDiscoveryInterface mocks base method -func (m *MockClientInterface) SetDiscoveryInterface(client discovery.DiscoveryInterface) { - m.ctrl.T.Helper() - m.ctrl.Call(m, "SetDiscoveryInterface", client) -} - -// SetDiscoveryInterface indicates an expected call of SetDiscoveryInterface -func (mr *MockClientInterfaceMockRecorder) SetDiscoveryInterface(client interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetDiscoveryInterface", reflect.TypeOf((*MockClientInterface)(nil).SetDiscoveryInterface), client) -} - -// IsResourceSupported mocks base method -func (m *MockClientInterface) IsResourceSupported(apiGroup, apiVersion, resourceName string) (bool, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "IsResourceSupported", apiGroup, apiVersion, resourceName) - ret0, _ := ret[0].(bool) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// IsResourceSupported indicates an expected call of IsResourceSupported -func (mr *MockClientInterfaceMockRecorder) IsResourceSupported(apiGroup, apiVersion, resourceName interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsResourceSupported", reflect.TypeOf((*MockClientInterface)(nil).IsResourceSupported), apiGroup, apiVersion, resourceName) -} - -// IsSSASupported mocks base method -func (m *MockClientInterface) IsSSASupported() bool { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "IsSSASupported") - ret0, _ := ret[0].(bool) - return ret0 -} - -// IsSSASupported indicates an expected call of IsSSASupported -func (mr *MockClientInterfaceMockRecorder) IsSSASupported() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsSSASupported", reflect.TypeOf((*MockClientInterface)(nil).IsSSASupported)) -} - -// GetCurrentNamespace mocks base method -func (m *MockClientInterface) GetCurrentNamespace() string { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetCurrentNamespace") - ret0, _ := ret[0].(string) - return ret0 -} - -// GetCurrentNamespace indicates an expected call of GetCurrentNamespace -func (mr *MockClientInterfaceMockRecorder) GetCurrentNamespace() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCurrentNamespace", reflect.TypeOf((*MockClientInterface)(nil).GetCurrentNamespace)) -} - -// SetNamespace mocks base method -func (m *MockClientInterface) SetNamespace(ns string) { - m.ctrl.T.Helper() - m.ctrl.Call(m, "SetNamespace", ns) -} - -// SetNamespace indicates an expected call of SetNamespace -func (mr *MockClientInterfaceMockRecorder) SetNamespace(ns interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetNamespace", reflect.TypeOf((*MockClientInterface)(nil).SetNamespace), ns) -} - -// GetNamespaces mocks base method -func (m *MockClientInterface) GetNamespaces() ([]string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetNamespaces") - ret0, _ := ret[0].([]string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetNamespaces indicates an expected call of GetNamespaces -func (mr *MockClientInterfaceMockRecorder) GetNamespaces() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNamespaces", reflect.TypeOf((*MockClientInterface)(nil).GetNamespaces)) -} - -// GetNamespace mocks base method -func (m *MockClientInterface) GetNamespace(name string) (*v11.Namespace, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetNamespace", name) - ret0, _ := ret[0].(*v11.Namespace) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetNamespace indicates an expected call of GetNamespace -func (mr *MockClientInterfaceMockRecorder) GetNamespace(name interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNamespace", reflect.TypeOf((*MockClientInterface)(nil).GetNamespace), name) -} - -// GetNamespaceNormal mocks base method -func (m *MockClientInterface) GetNamespaceNormal(name string) (*v11.Namespace, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetNamespaceNormal", name) - ret0, _ := ret[0].(*v11.Namespace) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetNamespaceNormal indicates an expected call of GetNamespaceNormal -func (mr *MockClientInterfaceMockRecorder) GetNamespaceNormal(name interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNamespaceNormal", reflect.TypeOf((*MockClientInterface)(nil).GetNamespaceNormal), name) -} - -// CreateNamespace mocks base method +// CreateNamespace mocks base method. func (m *MockClientInterface) CreateNamespace(name string) (*v11.Namespace, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateNamespace", name) @@ -504,409 +130,13 @@ func (m *MockClientInterface) CreateNamespace(name string) (*v11.Namespace, erro return ret0, ret1 } -// CreateNamespace indicates an expected call of CreateNamespace +// CreateNamespace indicates an expected call of CreateNamespace. func (mr *MockClientInterfaceMockRecorder) CreateNamespace(name interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNamespace", reflect.TypeOf((*MockClientInterface)(nil).CreateNamespace), name) } -// DeleteNamespace mocks base method -func (m *MockClientInterface) DeleteNamespace(name string, wait bool) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteNamespace", name, wait) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteNamespace indicates an expected call of DeleteNamespace -func (mr *MockClientInterfaceMockRecorder) DeleteNamespace(name, wait interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNamespace", reflect.TypeOf((*MockClientInterface)(nil).DeleteNamespace), name, wait) -} - -// SetCurrentNamespace mocks base method -func (m *MockClientInterface) SetCurrentNamespace(namespace string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "SetCurrentNamespace", namespace) - ret0, _ := ret[0].(error) - return ret0 -} - -// SetCurrentNamespace indicates an expected call of SetCurrentNamespace -func (mr *MockClientInterfaceMockRecorder) SetCurrentNamespace(namespace interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCurrentNamespace", reflect.TypeOf((*MockClientInterface)(nil).SetCurrentNamespace), namespace) -} - -// WaitForServiceAccountInNamespace mocks base method -func (m *MockClientInterface) WaitForServiceAccountInNamespace(namespace, serviceAccountName string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "WaitForServiceAccountInNamespace", namespace, serviceAccountName) - ret0, _ := ret[0].(error) - return ret0 -} - -// WaitForServiceAccountInNamespace indicates an expected call of WaitForServiceAccountInNamespace -func (mr *MockClientInterfaceMockRecorder) WaitForServiceAccountInNamespace(namespace, serviceAccountName interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitForServiceAccountInNamespace", reflect.TypeOf((*MockClientInterface)(nil).WaitForServiceAccountInNamespace), namespace, serviceAccountName) -} - -// GetServerVersion mocks base method -func (m *MockClientInterface) GetServerVersion(timeout time.Duration) (*ServerInfo, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetServerVersion", timeout) - ret0, _ := ret[0].(*ServerInfo) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetServerVersion indicates an expected call of GetServerVersion -func (mr *MockClientInterfaceMockRecorder) GetServerVersion(timeout interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServerVersion", reflect.TypeOf((*MockClientInterface)(nil).GetServerVersion), timeout) -} - -// IsCSVSupported mocks base method -func (m *MockClientInterface) IsCSVSupported() (bool, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "IsCSVSupported") - ret0, _ := ret[0].(bool) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// IsCSVSupported indicates an expected call of IsCSVSupported -func (mr *MockClientInterfaceMockRecorder) IsCSVSupported() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsCSVSupported", reflect.TypeOf((*MockClientInterface)(nil).IsCSVSupported)) -} - -// ListClusterServiceVersions mocks base method -func (m *MockClientInterface) ListClusterServiceVersions() (*v1alpha1.ClusterServiceVersionList, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListClusterServiceVersions") - ret0, _ := ret[0].(*v1alpha1.ClusterServiceVersionList) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListClusterServiceVersions indicates an expected call of ListClusterServiceVersions -func (mr *MockClientInterfaceMockRecorder) ListClusterServiceVersions() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListClusterServiceVersions", reflect.TypeOf((*MockClientInterface)(nil).ListClusterServiceVersions)) -} - -// GetCustomResourcesFromCSV mocks base method -func (m *MockClientInterface) GetCustomResourcesFromCSV(csv *v1alpha1.ClusterServiceVersion) *[]v1alpha1.CRDDescription { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetCustomResourcesFromCSV", csv) - ret0, _ := ret[0].(*[]v1alpha1.CRDDescription) - return ret0 -} - -// GetCustomResourcesFromCSV indicates an expected call of GetCustomResourcesFromCSV -func (mr *MockClientInterfaceMockRecorder) GetCustomResourcesFromCSV(csv interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCustomResourcesFromCSV", reflect.TypeOf((*MockClientInterface)(nil).GetCustomResourcesFromCSV), csv) -} - -// GetCSVWithCR mocks base method -func (m *MockClientInterface) GetCSVWithCR(name string) (*v1alpha1.ClusterServiceVersion, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetCSVWithCR", name) - ret0, _ := ret[0].(*v1alpha1.ClusterServiceVersion) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetCSVWithCR indicates an expected call of GetCSVWithCR -func (mr *MockClientInterfaceMockRecorder) GetCSVWithCR(name interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCSVWithCR", reflect.TypeOf((*MockClientInterface)(nil).GetCSVWithCR), name) -} - -// GetResourceSpecDefinition mocks base method -func (m *MockClientInterface) GetResourceSpecDefinition(group, version, kind string) (*spec.Schema, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetResourceSpecDefinition", group, version, kind) - ret0, _ := ret[0].(*spec.Schema) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetResourceSpecDefinition indicates an expected call of GetResourceSpecDefinition -func (mr *MockClientInterfaceMockRecorder) GetResourceSpecDefinition(group, version, kind interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetResourceSpecDefinition", reflect.TypeOf((*MockClientInterface)(nil).GetResourceSpecDefinition), group, version, kind) -} - -// GetRestMappingFromUnstructured mocks base method -func (m *MockClientInterface) GetRestMappingFromUnstructured(arg0 unstructured.Unstructured) (*meta.RESTMapping, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetRestMappingFromUnstructured", arg0) - ret0, _ := ret[0].(*meta.RESTMapping) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetRestMappingFromUnstructured indicates an expected call of GetRestMappingFromUnstructured -func (mr *MockClientInterfaceMockRecorder) GetRestMappingFromUnstructured(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRestMappingFromUnstructured", reflect.TypeOf((*MockClientInterface)(nil).GetRestMappingFromUnstructured), arg0) -} - -// GetRestMappingFromGVK mocks base method -func (m *MockClientInterface) GetRestMappingFromGVK(gvk schema.GroupVersionKind) (*meta.RESTMapping, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetRestMappingFromGVK", gvk) - ret0, _ := ret[0].(*meta.RESTMapping) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetRestMappingFromGVK indicates an expected call of GetRestMappingFromGVK -func (mr *MockClientInterfaceMockRecorder) GetRestMappingFromGVK(gvk interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRestMappingFromGVK", reflect.TypeOf((*MockClientInterface)(nil).GetRestMappingFromGVK), gvk) -} - -// GetOperatorGVRList mocks base method -func (m *MockClientInterface) GetOperatorGVRList() ([]meta.RESTMapping, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOperatorGVRList") - ret0, _ := ret[0].([]meta.RESTMapping) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOperatorGVRList indicates an expected call of GetOperatorGVRList -func (mr *MockClientInterfaceMockRecorder) GetOperatorGVRList() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOperatorGVRList", reflect.TypeOf((*MockClientInterface)(nil).GetOperatorGVRList)) -} - -// ConvertUnstructuredToResource mocks base method -func (m *MockClientInterface) ConvertUnstructuredToResource(u unstructured.Unstructured, obj interface{}) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ConvertUnstructuredToResource", u, obj) - ret0, _ := ret[0].(error) - return ret0 -} - -// ConvertUnstructuredToResource indicates an expected call of ConvertUnstructuredToResource -func (mr *MockClientInterfaceMockRecorder) ConvertUnstructuredToResource(u, obj interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ConvertUnstructuredToResource", reflect.TypeOf((*MockClientInterface)(nil).ConvertUnstructuredToResource), u, obj) -} - -// IsServiceBindingSupported mocks base method -func (m *MockClientInterface) IsServiceBindingSupported() (bool, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "IsServiceBindingSupported") - ret0, _ := ret[0].(bool) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// IsServiceBindingSupported indicates an expected call of IsServiceBindingSupported -func (mr *MockClientInterfaceMockRecorder) IsServiceBindingSupported() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsServiceBindingSupported", reflect.TypeOf((*MockClientInterface)(nil).IsServiceBindingSupported)) -} - -// GetBindableKinds mocks base method -func (m *MockClientInterface) GetBindableKinds() (v1alpha10.BindableKinds, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetBindableKinds") - ret0, _ := ret[0].(v1alpha10.BindableKinds) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetBindableKinds indicates an expected call of GetBindableKinds -func (mr *MockClientInterfaceMockRecorder) GetBindableKinds() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBindableKinds", reflect.TypeOf((*MockClientInterface)(nil).GetBindableKinds)) -} - -// GetBindableKindStatusRestMapping mocks base method -func (m *MockClientInterface) GetBindableKindStatusRestMapping(bindableKindStatuses []v1alpha10.BindableKindsStatus) ([]*meta.RESTMapping, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetBindableKindStatusRestMapping", bindableKindStatuses) - ret0, _ := ret[0].([]*meta.RESTMapping) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetBindableKindStatusRestMapping indicates an expected call of GetBindableKindStatusRestMapping -func (mr *MockClientInterfaceMockRecorder) GetBindableKindStatusRestMapping(bindableKindStatuses interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBindableKindStatusRestMapping", reflect.TypeOf((*MockClientInterface)(nil).GetBindableKindStatusRestMapping), bindableKindStatuses) -} - -// GetBindingServiceBinding mocks base method -func (m *MockClientInterface) GetBindingServiceBinding(name string) (v1alpha10.ServiceBinding, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetBindingServiceBinding", name) - ret0, _ := ret[0].(v1alpha10.ServiceBinding) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetBindingServiceBinding indicates an expected call of GetBindingServiceBinding -func (mr *MockClientInterfaceMockRecorder) GetBindingServiceBinding(name interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBindingServiceBinding", reflect.TypeOf((*MockClientInterface)(nil).GetBindingServiceBinding), name) -} - -// GetSpecServiceBinding mocks base method -func (m *MockClientInterface) GetSpecServiceBinding(name string) (v1alpha3.ServiceBinding, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetSpecServiceBinding", name) - ret0, _ := ret[0].(v1alpha3.ServiceBinding) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetSpecServiceBinding indicates an expected call of GetSpecServiceBinding -func (mr *MockClientInterfaceMockRecorder) GetSpecServiceBinding(name interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSpecServiceBinding", reflect.TypeOf((*MockClientInterface)(nil).GetSpecServiceBinding), name) -} - -// NewServiceBindingServiceObject mocks base method -func (m *MockClientInterface) NewServiceBindingServiceObject(unstructuredService unstructured.Unstructured, bindingName string) (v1alpha10.Service, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "NewServiceBindingServiceObject", unstructuredService, bindingName) - ret0, _ := ret[0].(v1alpha10.Service) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// NewServiceBindingServiceObject indicates an expected call of NewServiceBindingServiceObject -func (mr *MockClientInterfaceMockRecorder) NewServiceBindingServiceObject(unstructuredService, bindingName interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewServiceBindingServiceObject", reflect.TypeOf((*MockClientInterface)(nil).NewServiceBindingServiceObject), unstructuredService, bindingName) -} - -// TryWithBlockOwnerDeletion mocks base method -func (m *MockClientInterface) TryWithBlockOwnerDeletion(ownerReference v12.OwnerReference, exec func(v12.OwnerReference) error) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "TryWithBlockOwnerDeletion", ownerReference, exec) - ret0, _ := ret[0].(error) - return ret0 -} - -// TryWithBlockOwnerDeletion indicates an expected call of TryWithBlockOwnerDeletion -func (mr *MockClientInterfaceMockRecorder) TryWithBlockOwnerDeletion(ownerReference, exec interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TryWithBlockOwnerDeletion", reflect.TypeOf((*MockClientInterface)(nil).TryWithBlockOwnerDeletion), ownerReference, exec) -} - -// WaitAndGetPodWithEvents mocks base method -func (m *MockClientInterface) WaitAndGetPodWithEvents(selector string, desiredPhase v11.PodPhase, pushTimeout time.Duration) (*v11.Pod, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "WaitAndGetPodWithEvents", selector, desiredPhase, pushTimeout) - ret0, _ := ret[0].(*v11.Pod) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// WaitAndGetPodWithEvents indicates an expected call of WaitAndGetPodWithEvents -func (mr *MockClientInterfaceMockRecorder) WaitAndGetPodWithEvents(selector, desiredPhase, pushTimeout interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitAndGetPodWithEvents", reflect.TypeOf((*MockClientInterface)(nil).WaitAndGetPodWithEvents), selector, desiredPhase, pushTimeout) -} - -// ExecCMDInContainer mocks base method -func (m *MockClientInterface) ExecCMDInContainer(containerName, podName string, cmd []string, stdout, stderr io.Writer, stdin io.Reader, tty bool) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ExecCMDInContainer", containerName, podName, cmd, stdout, stderr, stdin, tty) - ret0, _ := ret[0].(error) - return ret0 -} - -// ExecCMDInContainer indicates an expected call of ExecCMDInContainer -func (mr *MockClientInterfaceMockRecorder) ExecCMDInContainer(containerName, podName, cmd, stdout, stderr, stdin, tty interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExecCMDInContainer", reflect.TypeOf((*MockClientInterface)(nil).ExecCMDInContainer), containerName, podName, cmd, stdout, stderr, stdin, tty) -} - -// ExtractProjectToComponent mocks base method -func (m *MockClientInterface) ExtractProjectToComponent(containerName, podName, targetPath string, stdin io.Reader) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ExtractProjectToComponent", containerName, podName, targetPath, stdin) - ret0, _ := ret[0].(error) - return ret0 -} - -// ExtractProjectToComponent indicates an expected call of ExtractProjectToComponent -func (mr *MockClientInterfaceMockRecorder) ExtractProjectToComponent(containerName, podName, targetPath, stdin interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExtractProjectToComponent", reflect.TypeOf((*MockClientInterface)(nil).ExtractProjectToComponent), containerName, podName, targetPath, stdin) -} - -// GetPodUsingComponentName mocks base method -func (m *MockClientInterface) GetPodUsingComponentName(componentName string) (*v11.Pod, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPodUsingComponentName", componentName) - ret0, _ := ret[0].(*v11.Pod) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetPodUsingComponentName indicates an expected call of GetPodUsingComponentName -func (mr *MockClientInterfaceMockRecorder) GetPodUsingComponentName(componentName interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPodUsingComponentName", reflect.TypeOf((*MockClientInterface)(nil).GetPodUsingComponentName), componentName) -} - -// GetOnePodFromSelector mocks base method -func (m *MockClientInterface) GetOnePodFromSelector(selector string) (*v11.Pod, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOnePodFromSelector", selector) - ret0, _ := ret[0].(*v11.Pod) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOnePodFromSelector indicates an expected call of GetOnePodFromSelector -func (mr *MockClientInterfaceMockRecorder) GetOnePodFromSelector(selector interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOnePodFromSelector", reflect.TypeOf((*MockClientInterface)(nil).GetOnePodFromSelector), selector) -} - -// GetPodLogs mocks base method -func (m *MockClientInterface) GetPodLogs(podName, containerName string, followLog bool) (io.ReadCloser, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPodLogs", podName, containerName, followLog) - ret0, _ := ret[0].(io.ReadCloser) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetPodLogs indicates an expected call of GetPodLogs -func (mr *MockClientInterfaceMockRecorder) GetPodLogs(podName, containerName, followLog interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPodLogs", reflect.TypeOf((*MockClientInterface)(nil).GetPodLogs), podName, containerName, followLog) -} - -// SetupPortForwarding mocks base method -func (m *MockClientInterface) SetupPortForwarding(pod *v11.Pod, portPairs []string, out, errOut io.Writer) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "SetupPortForwarding", pod, portPairs, out, errOut) - ret0, _ := ret[0].(error) - return ret0 -} - -// SetupPortForwarding indicates an expected call of SetupPortForwarding -func (mr *MockClientInterfaceMockRecorder) SetupPortForwarding(pod, portPairs, out, errOut interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetupPortForwarding", reflect.TypeOf((*MockClientInterface)(nil).SetupPortForwarding), pod, portPairs, out, errOut) -} - -// CreateNewProject mocks base method +// CreateNewProject mocks base method. func (m *MockClientInterface) CreateNewProject(projectName string, wait bool) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateNewProject", projectName, wait) @@ -914,306 +144,13 @@ func (m *MockClientInterface) CreateNewProject(projectName string, wait bool) er return ret0 } -// CreateNewProject indicates an expected call of CreateNewProject +// CreateNewProject indicates an expected call of CreateNewProject. func (mr *MockClientInterfaceMockRecorder) CreateNewProject(projectName, wait interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNewProject", reflect.TypeOf((*MockClientInterface)(nil).CreateNewProject), projectName, wait) } -// DeleteProject mocks base method -func (m *MockClientInterface) DeleteProject(name string, wait bool) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteProject", name, wait) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteProject indicates an expected call of DeleteProject -func (mr *MockClientInterfaceMockRecorder) DeleteProject(name, wait interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteProject", reflect.TypeOf((*MockClientInterface)(nil).DeleteProject), name, wait) -} - -// GetCurrentProjectName mocks base method -func (m *MockClientInterface) GetCurrentProjectName() string { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetCurrentProjectName") - ret0, _ := ret[0].(string) - return ret0 -} - -// GetCurrentProjectName indicates an expected call of GetCurrentProjectName -func (mr *MockClientInterfaceMockRecorder) GetCurrentProjectName() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCurrentProjectName", reflect.TypeOf((*MockClientInterface)(nil).GetCurrentProjectName)) -} - -// GetProject mocks base method -func (m *MockClientInterface) GetProject(projectName string) (*v1.Project, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProject", projectName) - ret0, _ := ret[0].(*v1.Project) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetProject indicates an expected call of GetProject -func (mr *MockClientInterfaceMockRecorder) GetProject(projectName interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProject", reflect.TypeOf((*MockClientInterface)(nil).GetProject), projectName) -} - -// IsProjectSupported mocks base method -func (m *MockClientInterface) IsProjectSupported() (bool, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "IsProjectSupported") - ret0, _ := ret[0].(bool) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// IsProjectSupported indicates an expected call of IsProjectSupported -func (mr *MockClientInterfaceMockRecorder) IsProjectSupported() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsProjectSupported", reflect.TypeOf((*MockClientInterface)(nil).IsProjectSupported)) -} - -// ListProjectNames mocks base method -func (m *MockClientInterface) ListProjectNames() ([]string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListProjectNames") - ret0, _ := ret[0].([]string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListProjectNames indicates an expected call of ListProjectNames -func (mr *MockClientInterfaceMockRecorder) ListProjectNames() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListProjectNames", reflect.TypeOf((*MockClientInterface)(nil).ListProjectNames)) -} - -// CreateTLSSecret mocks base method -func (m *MockClientInterface) CreateTLSSecret(tlsCertificate, tlsPrivKey []byte, objectMeta v12.ObjectMeta) (*v11.Secret, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateTLSSecret", tlsCertificate, tlsPrivKey, objectMeta) - ret0, _ := ret[0].(*v11.Secret) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateTLSSecret indicates an expected call of CreateTLSSecret -func (mr *MockClientInterfaceMockRecorder) CreateTLSSecret(tlsCertificate, tlsPrivKey, objectMeta interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateTLSSecret", reflect.TypeOf((*MockClientInterface)(nil).CreateTLSSecret), tlsCertificate, tlsPrivKey, objectMeta) -} - -// GetSecret mocks base method -func (m *MockClientInterface) GetSecret(name, namespace string) (*v11.Secret, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetSecret", name, namespace) - ret0, _ := ret[0].(*v11.Secret) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetSecret indicates an expected call of GetSecret -func (mr *MockClientInterfaceMockRecorder) GetSecret(name, namespace interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecret", reflect.TypeOf((*MockClientInterface)(nil).GetSecret), name, namespace) -} - -// UpdateSecret mocks base method -func (m *MockClientInterface) UpdateSecret(secret *v11.Secret, namespace string) (*v11.Secret, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateSecret", secret, namespace) - ret0, _ := ret[0].(*v11.Secret) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateSecret indicates an expected call of UpdateSecret -func (mr *MockClientInterfaceMockRecorder) UpdateSecret(secret, namespace interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSecret", reflect.TypeOf((*MockClientInterface)(nil).UpdateSecret), secret, namespace) -} - -// DeleteSecret mocks base method -func (m *MockClientInterface) DeleteSecret(secretName, namespace string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteSecret", secretName, namespace) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteSecret indicates an expected call of DeleteSecret -func (mr *MockClientInterfaceMockRecorder) DeleteSecret(secretName, namespace interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSecret", reflect.TypeOf((*MockClientInterface)(nil).DeleteSecret), secretName, namespace) -} - -// CreateSecret mocks base method -func (m *MockClientInterface) CreateSecret(objectMeta v12.ObjectMeta, data map[string]string, ownerReference v12.OwnerReference) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateSecret", objectMeta, data, ownerReference) - ret0, _ := ret[0].(error) - return ret0 -} - -// CreateSecret indicates an expected call of CreateSecret -func (mr *MockClientInterfaceMockRecorder) CreateSecret(objectMeta, data, ownerReference interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecret", reflect.TypeOf((*MockClientInterface)(nil).CreateSecret), objectMeta, data, ownerReference) -} - -// CreateSecrets mocks base method -func (m *MockClientInterface) CreateSecrets(componentName string, commonObjectMeta v12.ObjectMeta, svc *v11.Service, ownerReference v12.OwnerReference) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateSecrets", componentName, commonObjectMeta, svc, ownerReference) - ret0, _ := ret[0].(error) - return ret0 -} - -// CreateSecrets indicates an expected call of CreateSecrets -func (mr *MockClientInterfaceMockRecorder) CreateSecrets(componentName, commonObjectMeta, svc, ownerReference interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecrets", reflect.TypeOf((*MockClientInterface)(nil).CreateSecrets), componentName, commonObjectMeta, svc, ownerReference) -} - -// ListSecrets mocks base method -func (m *MockClientInterface) ListSecrets(labelSelector string) ([]v11.Secret, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListSecrets", labelSelector) - ret0, _ := ret[0].([]v11.Secret) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListSecrets indicates an expected call of ListSecrets -func (mr *MockClientInterfaceMockRecorder) ListSecrets(labelSelector interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecrets", reflect.TypeOf((*MockClientInterface)(nil).ListSecrets), labelSelector) -} - -// WaitAndGetSecret mocks base method -func (m *MockClientInterface) WaitAndGetSecret(name, namespace string) (*v11.Secret, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "WaitAndGetSecret", name, namespace) - ret0, _ := ret[0].(*v11.Secret) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// WaitAndGetSecret indicates an expected call of WaitAndGetSecret -func (mr *MockClientInterfaceMockRecorder) WaitAndGetSecret(name, namespace interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitAndGetSecret", reflect.TypeOf((*MockClientInterface)(nil).WaitAndGetSecret), name, namespace) -} - -// CreateService mocks base method -func (m *MockClientInterface) CreateService(svc v11.Service) (*v11.Service, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateService", svc) - ret0, _ := ret[0].(*v11.Service) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateService indicates an expected call of CreateService -func (mr *MockClientInterfaceMockRecorder) CreateService(svc interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateService", reflect.TypeOf((*MockClientInterface)(nil).CreateService), svc) -} - -// UpdateService mocks base method -func (m *MockClientInterface) UpdateService(svc v11.Service) (*v11.Service, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateService", svc) - ret0, _ := ret[0].(*v11.Service) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// UpdateService indicates an expected call of UpdateService -func (mr *MockClientInterfaceMockRecorder) UpdateService(svc interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateService", reflect.TypeOf((*MockClientInterface)(nil).UpdateService), svc) -} - -// ListServices mocks base method -func (m *MockClientInterface) ListServices(selector string) ([]v11.Service, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListServices", selector) - ret0, _ := ret[0].([]v11.Service) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListServices indicates an expected call of ListServices -func (mr *MockClientInterfaceMockRecorder) ListServices(selector interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListServices", reflect.TypeOf((*MockClientInterface)(nil).ListServices), selector) -} - -// DeleteService mocks base method -func (m *MockClientInterface) DeleteService(serviceName string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteService", serviceName) - ret0, _ := ret[0].(error) - return ret0 -} - -// DeleteService indicates an expected call of DeleteService -func (mr *MockClientInterfaceMockRecorder) DeleteService(serviceName interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteService", reflect.TypeOf((*MockClientInterface)(nil).DeleteService), serviceName) -} - -// GetOneService mocks base method -func (m *MockClientInterface) GetOneService(componentName, appName string) (*v11.Service, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOneService", componentName, appName) - ret0, _ := ret[0].(*v11.Service) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOneService indicates an expected call of GetOneService -func (mr *MockClientInterfaceMockRecorder) GetOneService(componentName, appName interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOneService", reflect.TypeOf((*MockClientInterface)(nil).GetOneService), componentName, appName) -} - -// GetOneServiceFromSelector mocks base method -func (m *MockClientInterface) GetOneServiceFromSelector(selector string) (*v11.Service, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetOneServiceFromSelector", selector) - ret0, _ := ret[0].(*v11.Service) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetOneServiceFromSelector indicates an expected call of GetOneServiceFromSelector -func (mr *MockClientInterfaceMockRecorder) GetOneServiceFromSelector(selector interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOneServiceFromSelector", reflect.TypeOf((*MockClientInterface)(nil).GetOneServiceFromSelector), selector) -} - -// RunLogout mocks base method -func (m *MockClientInterface) RunLogout(stdout io.Writer) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RunLogout", stdout) - ret0, _ := ret[0].(error) - return ret0 -} - -// RunLogout indicates an expected call of RunLogout -func (mr *MockClientInterfaceMockRecorder) RunLogout(stdout interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RunLogout", reflect.TypeOf((*MockClientInterface)(nil).RunLogout), stdout) -} - -// CreatePVC mocks base method +// CreatePVC mocks base method. func (m *MockClientInterface) CreatePVC(pvc v11.PersistentVolumeClaim) (*v11.PersistentVolumeClaim, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreatePVC", pvc) @@ -1222,13 +159,99 @@ func (m *MockClientInterface) CreatePVC(pvc v11.PersistentVolumeClaim) (*v11.Per return ret0, ret1 } -// CreatePVC indicates an expected call of CreatePVC +// CreatePVC indicates an expected call of CreatePVC. func (mr *MockClientInterfaceMockRecorder) CreatePVC(pvc interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreatePVC", reflect.TypeOf((*MockClientInterface)(nil).CreatePVC), pvc) } -// DeletePVC mocks base method +// CreateSecret mocks base method. +func (m *MockClientInterface) CreateSecret(objectMeta v12.ObjectMeta, data map[string]string, ownerReference v12.OwnerReference) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateSecret", objectMeta, data, ownerReference) + ret0, _ := ret[0].(error) + return ret0 +} + +// CreateSecret indicates an expected call of CreateSecret. +func (mr *MockClientInterfaceMockRecorder) CreateSecret(objectMeta, data, ownerReference interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecret", reflect.TypeOf((*MockClientInterface)(nil).CreateSecret), objectMeta, data, ownerReference) +} + +// CreateSecrets mocks base method. +func (m *MockClientInterface) CreateSecrets(componentName string, commonObjectMeta v12.ObjectMeta, svc *v11.Service, ownerReference v12.OwnerReference) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateSecrets", componentName, commonObjectMeta, svc, ownerReference) + ret0, _ := ret[0].(error) + return ret0 +} + +// CreateSecrets indicates an expected call of CreateSecrets. +func (mr *MockClientInterfaceMockRecorder) CreateSecrets(componentName, commonObjectMeta, svc, ownerReference interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSecrets", reflect.TypeOf((*MockClientInterface)(nil).CreateSecrets), componentName, commonObjectMeta, svc, ownerReference) +} + +// CreateService mocks base method. +func (m *MockClientInterface) CreateService(svc v11.Service) (*v11.Service, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateService", svc) + ret0, _ := ret[0].(*v11.Service) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateService indicates an expected call of CreateService. +func (mr *MockClientInterfaceMockRecorder) CreateService(svc interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateService", reflect.TypeOf((*MockClientInterface)(nil).CreateService), svc) +} + +// CreateTLSSecret mocks base method. +func (m *MockClientInterface) CreateTLSSecret(tlsCertificate, tlsPrivKey []byte, objectMeta v12.ObjectMeta) (*v11.Secret, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateTLSSecret", tlsCertificate, tlsPrivKey, objectMeta) + ret0, _ := ret[0].(*v11.Secret) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateTLSSecret indicates an expected call of CreateTLSSecret. +func (mr *MockClientInterfaceMockRecorder) CreateTLSSecret(tlsCertificate, tlsPrivKey, objectMeta interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateTLSSecret", reflect.TypeOf((*MockClientInterface)(nil).CreateTLSSecret), tlsCertificate, tlsPrivKey, objectMeta) +} + +// DeleteDynamicResource mocks base method. +func (m *MockClientInterface) DeleteDynamicResource(name string, gvr schema.GroupVersionResource, wait bool) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteDynamicResource", name, gvr, wait) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteDynamicResource indicates an expected call of DeleteDynamicResource. +func (mr *MockClientInterfaceMockRecorder) DeleteDynamicResource(name, gvr, wait interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteDynamicResource", reflect.TypeOf((*MockClientInterface)(nil).DeleteDynamicResource), name, gvr, wait) +} + +// DeleteNamespace mocks base method. +func (m *MockClientInterface) DeleteNamespace(name string, wait bool) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteNamespace", name, wait) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteNamespace indicates an expected call of DeleteNamespace. +func (mr *MockClientInterfaceMockRecorder) DeleteNamespace(name, wait interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNamespace", reflect.TypeOf((*MockClientInterface)(nil).DeleteNamespace), name, wait) +} + +// DeletePVC mocks base method. func (m *MockClientInterface) DeletePVC(pvcName string) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeletePVC", pvcName) @@ -1236,72 +259,127 @@ func (m *MockClientInterface) DeletePVC(pvcName string) error { return ret0 } -// DeletePVC indicates an expected call of DeletePVC +// DeletePVC indicates an expected call of DeletePVC. func (mr *MockClientInterfaceMockRecorder) DeletePVC(pvcName interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeletePVC", reflect.TypeOf((*MockClientInterface)(nil).DeletePVC), pvcName) } -// ListPVCs mocks base method -func (m *MockClientInterface) ListPVCs(selector string) ([]v11.PersistentVolumeClaim, error) { +// DeleteProject mocks base method. +func (m *MockClientInterface) DeleteProject(name string, wait bool) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListPVCs", selector) - ret0, _ := ret[0].([]v11.PersistentVolumeClaim) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListPVCs indicates an expected call of ListPVCs -func (mr *MockClientInterfaceMockRecorder) ListPVCs(selector interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPVCs", reflect.TypeOf((*MockClientInterface)(nil).ListPVCs), selector) -} - -// ListPVCNames mocks base method -func (m *MockClientInterface) ListPVCNames(selector string) ([]string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListPVCNames", selector) - ret0, _ := ret[0].([]string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListPVCNames indicates an expected call of ListPVCNames -func (mr *MockClientInterfaceMockRecorder) ListPVCNames(selector interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPVCNames", reflect.TypeOf((*MockClientInterface)(nil).ListPVCNames), selector) -} - -// GetPVCFromName mocks base method -func (m *MockClientInterface) GetPVCFromName(pvcName string) (*v11.PersistentVolumeClaim, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPVCFromName", pvcName) - ret0, _ := ret[0].(*v11.PersistentVolumeClaim) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetPVCFromName indicates an expected call of GetPVCFromName -func (mr *MockClientInterfaceMockRecorder) GetPVCFromName(pvcName interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPVCFromName", reflect.TypeOf((*MockClientInterface)(nil).GetPVCFromName), pvcName) -} - -// UpdatePVCLabels mocks base method -func (m *MockClientInterface) UpdatePVCLabels(pvc *v11.PersistentVolumeClaim, labels map[string]string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdatePVCLabels", pvc, labels) + ret := m.ctrl.Call(m, "DeleteProject", name, wait) ret0, _ := ret[0].(error) return ret0 } -// UpdatePVCLabels indicates an expected call of UpdatePVCLabels -func (mr *MockClientInterfaceMockRecorder) UpdatePVCLabels(pvc, labels interface{}) *gomock.Call { +// DeleteProject indicates an expected call of DeleteProject. +func (mr *MockClientInterfaceMockRecorder) DeleteProject(name, wait interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePVCLabels", reflect.TypeOf((*MockClientInterface)(nil).UpdatePVCLabels), pvc, labels) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteProject", reflect.TypeOf((*MockClientInterface)(nil).DeleteProject), name, wait) } -// GetAndUpdateStorageOwnerReference mocks base method +// DeleteSecret mocks base method. +func (m *MockClientInterface) DeleteSecret(secretName, namespace string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteSecret", secretName, namespace) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteSecret indicates an expected call of DeleteSecret. +func (mr *MockClientInterfaceMockRecorder) DeleteSecret(secretName, namespace interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteSecret", reflect.TypeOf((*MockClientInterface)(nil).DeleteSecret), secretName, namespace) +} + +// DeleteService mocks base method. +func (m *MockClientInterface) DeleteService(serviceName string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteService", serviceName) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteService indicates an expected call of DeleteService. +func (mr *MockClientInterfaceMockRecorder) DeleteService(serviceName interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteService", reflect.TypeOf((*MockClientInterface)(nil).DeleteService), serviceName) +} + +// ExecCMDInContainer mocks base method. +func (m *MockClientInterface) ExecCMDInContainer(containerName, podName string, cmd []string, stdout, stderr io.Writer, stdin io.Reader, tty bool) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ExecCMDInContainer", containerName, podName, cmd, stdout, stderr, stdin, tty) + ret0, _ := ret[0].(error) + return ret0 +} + +// ExecCMDInContainer indicates an expected call of ExecCMDInContainer. +func (mr *MockClientInterfaceMockRecorder) ExecCMDInContainer(containerName, podName, cmd, stdout, stderr, stdin, tty interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExecCMDInContainer", reflect.TypeOf((*MockClientInterface)(nil).ExecCMDInContainer), containerName, podName, cmd, stdout, stderr, stdin, tty) +} + +// ExtractProjectToComponent mocks base method. +func (m *MockClientInterface) ExtractProjectToComponent(containerName, podName, targetPath string, stdin io.Reader) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ExtractProjectToComponent", containerName, podName, targetPath, stdin) + ret0, _ := ret[0].(error) + return ret0 +} + +// ExtractProjectToComponent indicates an expected call of ExtractProjectToComponent. +func (mr *MockClientInterfaceMockRecorder) ExtractProjectToComponent(containerName, podName, targetPath, stdin interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExtractProjectToComponent", reflect.TypeOf((*MockClientInterface)(nil).ExtractProjectToComponent), containerName, podName, targetPath, stdin) +} + +// GeneratePortForwardReq mocks base method. +func (m *MockClientInterface) GeneratePortForwardReq(podName string) *rest.Request { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GeneratePortForwardReq", podName) + ret0, _ := ret[0].(*rest.Request) + return ret0 +} + +// GeneratePortForwardReq indicates an expected call of GeneratePortForwardReq. +func (mr *MockClientInterfaceMockRecorder) GeneratePortForwardReq(podName interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GeneratePortForwardReq", reflect.TypeOf((*MockClientInterface)(nil).GeneratePortForwardReq), podName) +} + +// GetAllPodsInNamespace mocks base method. +func (m *MockClientInterface) GetAllPodsInNamespace() (*v11.PodList, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAllPodsInNamespace") + ret0, _ := ret[0].(*v11.PodList) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAllPodsInNamespace indicates an expected call of GetAllPodsInNamespace. +func (mr *MockClientInterfaceMockRecorder) GetAllPodsInNamespace() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllPodsInNamespace", reflect.TypeOf((*MockClientInterface)(nil).GetAllPodsInNamespace)) +} + +// GetAllResourcesFromSelector mocks base method. +func (m *MockClientInterface) GetAllResourcesFromSelector(selector, ns string) ([]unstructured.Unstructured, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAllResourcesFromSelector", selector, ns) + ret0, _ := ret[0].([]unstructured.Unstructured) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAllResourcesFromSelector indicates an expected call of GetAllResourcesFromSelector. +func (mr *MockClientInterfaceMockRecorder) GetAllResourcesFromSelector(selector, ns interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllResourcesFromSelector", reflect.TypeOf((*MockClientInterface)(nil).GetAllResourcesFromSelector), selector, ns) +} + +// GetAndUpdateStorageOwnerReference mocks base method. func (m *MockClientInterface) GetAndUpdateStorageOwnerReference(pvc *v11.PersistentVolumeClaim, ownerReference ...v12.OwnerReference) error { m.ctrl.T.Helper() varargs := []interface{}{pvc} @@ -1313,14 +391,894 @@ func (m *MockClientInterface) GetAndUpdateStorageOwnerReference(pvc *v11.Persist return ret0 } -// GetAndUpdateStorageOwnerReference indicates an expected call of GetAndUpdateStorageOwnerReference +// GetAndUpdateStorageOwnerReference indicates an expected call of GetAndUpdateStorageOwnerReference. func (mr *MockClientInterfaceMockRecorder) GetAndUpdateStorageOwnerReference(pvc interface{}, ownerReference ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{pvc}, ownerReference...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAndUpdateStorageOwnerReference", reflect.TypeOf((*MockClientInterface)(nil).GetAndUpdateStorageOwnerReference), varargs...) } -// UpdateStorageOwnerReference mocks base method +// GetBindableKindStatusRestMapping mocks base method. +func (m *MockClientInterface) GetBindableKindStatusRestMapping(bindableKindStatuses []v1alpha10.BindableKindsStatus) ([]*meta.RESTMapping, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetBindableKindStatusRestMapping", bindableKindStatuses) + ret0, _ := ret[0].([]*meta.RESTMapping) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetBindableKindStatusRestMapping indicates an expected call of GetBindableKindStatusRestMapping. +func (mr *MockClientInterfaceMockRecorder) GetBindableKindStatusRestMapping(bindableKindStatuses interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBindableKindStatusRestMapping", reflect.TypeOf((*MockClientInterface)(nil).GetBindableKindStatusRestMapping), bindableKindStatuses) +} + +// GetBindableKinds mocks base method. +func (m *MockClientInterface) GetBindableKinds() (v1alpha10.BindableKinds, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetBindableKinds") + ret0, _ := ret[0].(v1alpha10.BindableKinds) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetBindableKinds indicates an expected call of GetBindableKinds. +func (mr *MockClientInterfaceMockRecorder) GetBindableKinds() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBindableKinds", reflect.TypeOf((*MockClientInterface)(nil).GetBindableKinds)) +} + +// GetBindingServiceBinding mocks base method. +func (m *MockClientInterface) GetBindingServiceBinding(name string) (v1alpha10.ServiceBinding, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetBindingServiceBinding", name) + ret0, _ := ret[0].(v1alpha10.ServiceBinding) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetBindingServiceBinding indicates an expected call of GetBindingServiceBinding. +func (mr *MockClientInterfaceMockRecorder) GetBindingServiceBinding(name interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBindingServiceBinding", reflect.TypeOf((*MockClientInterface)(nil).GetBindingServiceBinding), name) +} + +// GetCSVWithCR mocks base method. +func (m *MockClientInterface) GetCSVWithCR(name string) (*v1alpha1.ClusterServiceVersion, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetCSVWithCR", name) + ret0, _ := ret[0].(*v1alpha1.ClusterServiceVersion) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetCSVWithCR indicates an expected call of GetCSVWithCR. +func (mr *MockClientInterfaceMockRecorder) GetCSVWithCR(name interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCSVWithCR", reflect.TypeOf((*MockClientInterface)(nil).GetCSVWithCR), name) +} + +// GetClient mocks base method. +func (m *MockClientInterface) GetClient() kubernetes.Interface { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetClient") + ret0, _ := ret[0].(kubernetes.Interface) + return ret0 +} + +// GetClient indicates an expected call of GetClient. +func (mr *MockClientInterfaceMockRecorder) GetClient() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetClient", reflect.TypeOf((*MockClientInterface)(nil).GetClient)) +} + +// GetClientConfig mocks base method. +func (m *MockClientInterface) GetClientConfig() *rest.Config { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetClientConfig") + ret0, _ := ret[0].(*rest.Config) + return ret0 +} + +// GetClientConfig indicates an expected call of GetClientConfig. +func (mr *MockClientInterfaceMockRecorder) GetClientConfig() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetClientConfig", reflect.TypeOf((*MockClientInterface)(nil).GetClientConfig)) +} + +// GetConfig mocks base method. +func (m *MockClientInterface) GetConfig() clientcmd.ClientConfig { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetConfig") + ret0, _ := ret[0].(clientcmd.ClientConfig) + return ret0 +} + +// GetConfig indicates an expected call of GetConfig. +func (mr *MockClientInterfaceMockRecorder) GetConfig() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetConfig", reflect.TypeOf((*MockClientInterface)(nil).GetConfig)) +} + +// GetCurrentNamespace mocks base method. +func (m *MockClientInterface) GetCurrentNamespace() string { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetCurrentNamespace") + ret0, _ := ret[0].(string) + return ret0 +} + +// GetCurrentNamespace indicates an expected call of GetCurrentNamespace. +func (mr *MockClientInterfaceMockRecorder) GetCurrentNamespace() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCurrentNamespace", reflect.TypeOf((*MockClientInterface)(nil).GetCurrentNamespace)) +} + +// GetCurrentProjectName mocks base method. +func (m *MockClientInterface) GetCurrentProjectName() string { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetCurrentProjectName") + ret0, _ := ret[0].(string) + return ret0 +} + +// GetCurrentProjectName indicates an expected call of GetCurrentProjectName. +func (mr *MockClientInterfaceMockRecorder) GetCurrentProjectName() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCurrentProjectName", reflect.TypeOf((*MockClientInterface)(nil).GetCurrentProjectName)) +} + +// GetCustomResourcesFromCSV mocks base method. +func (m *MockClientInterface) GetCustomResourcesFromCSV(csv *v1alpha1.ClusterServiceVersion) *[]v1alpha1.CRDDescription { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetCustomResourcesFromCSV", csv) + ret0, _ := ret[0].(*[]v1alpha1.CRDDescription) + return ret0 +} + +// GetCustomResourcesFromCSV indicates an expected call of GetCustomResourcesFromCSV. +func (mr *MockClientInterfaceMockRecorder) GetCustomResourcesFromCSV(csv interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCustomResourcesFromCSV", reflect.TypeOf((*MockClientInterface)(nil).GetCustomResourcesFromCSV), csv) +} + +// GetDeploymentAPIVersion mocks base method. +func (m *MockClientInterface) GetDeploymentAPIVersion() (schema.GroupVersionResource, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetDeploymentAPIVersion") + ret0, _ := ret[0].(schema.GroupVersionResource) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDeploymentAPIVersion indicates an expected call of GetDeploymentAPIVersion. +func (mr *MockClientInterfaceMockRecorder) GetDeploymentAPIVersion() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeploymentAPIVersion", reflect.TypeOf((*MockClientInterface)(nil).GetDeploymentAPIVersion)) +} + +// GetDeploymentByName mocks base method. +func (m *MockClientInterface) GetDeploymentByName(name string) (*v10.Deployment, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetDeploymentByName", name) + ret0, _ := ret[0].(*v10.Deployment) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDeploymentByName indicates an expected call of GetDeploymentByName. +func (mr *MockClientInterfaceMockRecorder) GetDeploymentByName(name interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeploymentByName", reflect.TypeOf((*MockClientInterface)(nil).GetDeploymentByName), name) +} + +// GetDeploymentFromSelector mocks base method. +func (m *MockClientInterface) GetDeploymentFromSelector(selector string) ([]v10.Deployment, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetDeploymentFromSelector", selector) + ret0, _ := ret[0].([]v10.Deployment) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDeploymentFromSelector indicates an expected call of GetDeploymentFromSelector. +func (mr *MockClientInterfaceMockRecorder) GetDeploymentFromSelector(selector interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeploymentFromSelector", reflect.TypeOf((*MockClientInterface)(nil).GetDeploymentFromSelector), selector) +} + +// GetDynamicClient mocks base method. +func (m *MockClientInterface) GetDynamicClient() dynamic.Interface { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetDynamicClient") + ret0, _ := ret[0].(dynamic.Interface) + return ret0 +} + +// GetDynamicClient indicates an expected call of GetDynamicClient. +func (mr *MockClientInterfaceMockRecorder) GetDynamicClient() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDynamicClient", reflect.TypeOf((*MockClientInterface)(nil).GetDynamicClient)) +} + +// GetDynamicResource mocks base method. +func (m *MockClientInterface) GetDynamicResource(gvr schema.GroupVersionResource, name string) (*unstructured.Unstructured, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetDynamicResource", gvr, name) + ret0, _ := ret[0].(*unstructured.Unstructured) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDynamicResource indicates an expected call of GetDynamicResource. +func (mr *MockClientInterfaceMockRecorder) GetDynamicResource(gvr, name interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDynamicResource", reflect.TypeOf((*MockClientInterface)(nil).GetDynamicResource), gvr, name) +} + +// GetNamespace mocks base method. +func (m *MockClientInterface) GetNamespace(name string) (*v11.Namespace, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetNamespace", name) + ret0, _ := ret[0].(*v11.Namespace) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetNamespace indicates an expected call of GetNamespace. +func (mr *MockClientInterfaceMockRecorder) GetNamespace(name interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNamespace", reflect.TypeOf((*MockClientInterface)(nil).GetNamespace), name) +} + +// GetNamespaceNormal mocks base method. +func (m *MockClientInterface) GetNamespaceNormal(name string) (*v11.Namespace, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetNamespaceNormal", name) + ret0, _ := ret[0].(*v11.Namespace) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetNamespaceNormal indicates an expected call of GetNamespaceNormal. +func (mr *MockClientInterfaceMockRecorder) GetNamespaceNormal(name interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNamespaceNormal", reflect.TypeOf((*MockClientInterface)(nil).GetNamespaceNormal), name) +} + +// GetNamespaces mocks base method. +func (m *MockClientInterface) GetNamespaces() ([]string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetNamespaces") + ret0, _ := ret[0].([]string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetNamespaces indicates an expected call of GetNamespaces. +func (mr *MockClientInterfaceMockRecorder) GetNamespaces() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNamespaces", reflect.TypeOf((*MockClientInterface)(nil).GetNamespaces)) +} + +// GetOneDeployment mocks base method. +func (m *MockClientInterface) GetOneDeployment(componentName, appName string) (*v10.Deployment, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOneDeployment", componentName, appName) + ret0, _ := ret[0].(*v10.Deployment) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOneDeployment indicates an expected call of GetOneDeployment. +func (mr *MockClientInterfaceMockRecorder) GetOneDeployment(componentName, appName interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOneDeployment", reflect.TypeOf((*MockClientInterface)(nil).GetOneDeployment), componentName, appName) +} + +// GetOneDeploymentFromSelector mocks base method. +func (m *MockClientInterface) GetOneDeploymentFromSelector(selector string) (*v10.Deployment, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOneDeploymentFromSelector", selector) + ret0, _ := ret[0].(*v10.Deployment) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOneDeploymentFromSelector indicates an expected call of GetOneDeploymentFromSelector. +func (mr *MockClientInterfaceMockRecorder) GetOneDeploymentFromSelector(selector interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOneDeploymentFromSelector", reflect.TypeOf((*MockClientInterface)(nil).GetOneDeploymentFromSelector), selector) +} + +// GetOnePodFromSelector mocks base method. +func (m *MockClientInterface) GetOnePodFromSelector(selector string) (*v11.Pod, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOnePodFromSelector", selector) + ret0, _ := ret[0].(*v11.Pod) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOnePodFromSelector indicates an expected call of GetOnePodFromSelector. +func (mr *MockClientInterfaceMockRecorder) GetOnePodFromSelector(selector interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOnePodFromSelector", reflect.TypeOf((*MockClientInterface)(nil).GetOnePodFromSelector), selector) +} + +// GetOneService mocks base method. +func (m *MockClientInterface) GetOneService(componentName, appName string) (*v11.Service, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOneService", componentName, appName) + ret0, _ := ret[0].(*v11.Service) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOneService indicates an expected call of GetOneService. +func (mr *MockClientInterfaceMockRecorder) GetOneService(componentName, appName interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOneService", reflect.TypeOf((*MockClientInterface)(nil).GetOneService), componentName, appName) +} + +// GetOneServiceFromSelector mocks base method. +func (m *MockClientInterface) GetOneServiceFromSelector(selector string) (*v11.Service, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOneServiceFromSelector", selector) + ret0, _ := ret[0].(*v11.Service) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOneServiceFromSelector indicates an expected call of GetOneServiceFromSelector. +func (mr *MockClientInterfaceMockRecorder) GetOneServiceFromSelector(selector interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOneServiceFromSelector", reflect.TypeOf((*MockClientInterface)(nil).GetOneServiceFromSelector), selector) +} + +// GetOperatorGVRList mocks base method. +func (m *MockClientInterface) GetOperatorGVRList() ([]meta.RESTMapping, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOperatorGVRList") + ret0, _ := ret[0].([]meta.RESTMapping) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetOperatorGVRList indicates an expected call of GetOperatorGVRList. +func (mr *MockClientInterfaceMockRecorder) GetOperatorGVRList() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOperatorGVRList", reflect.TypeOf((*MockClientInterface)(nil).GetOperatorGVRList)) +} + +// GetPVCFromName mocks base method. +func (m *MockClientInterface) GetPVCFromName(pvcName string) (*v11.PersistentVolumeClaim, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetPVCFromName", pvcName) + ret0, _ := ret[0].(*v11.PersistentVolumeClaim) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetPVCFromName indicates an expected call of GetPVCFromName. +func (mr *MockClientInterfaceMockRecorder) GetPVCFromName(pvcName interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPVCFromName", reflect.TypeOf((*MockClientInterface)(nil).GetPVCFromName), pvcName) +} + +// GetPodLogs mocks base method. +func (m *MockClientInterface) GetPodLogs(podName, containerName string, followLog bool) (io.ReadCloser, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetPodLogs", podName, containerName, followLog) + ret0, _ := ret[0].(io.ReadCloser) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetPodLogs indicates an expected call of GetPodLogs. +func (mr *MockClientInterfaceMockRecorder) GetPodLogs(podName, containerName, followLog interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPodLogs", reflect.TypeOf((*MockClientInterface)(nil).GetPodLogs), podName, containerName, followLog) +} + +// GetPodUsingComponentName mocks base method. +func (m *MockClientInterface) GetPodUsingComponentName(componentName string) (*v11.Pod, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetPodUsingComponentName", componentName) + ret0, _ := ret[0].(*v11.Pod) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetPodUsingComponentName indicates an expected call of GetPodUsingComponentName. +func (mr *MockClientInterfaceMockRecorder) GetPodUsingComponentName(componentName interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPodUsingComponentName", reflect.TypeOf((*MockClientInterface)(nil).GetPodUsingComponentName), componentName) +} + +// GetProject mocks base method. +func (m *MockClientInterface) GetProject(projectName string) (*v1.Project, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProject", projectName) + ret0, _ := ret[0].(*v1.Project) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProject indicates an expected call of GetProject. +func (mr *MockClientInterfaceMockRecorder) GetProject(projectName interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProject", reflect.TypeOf((*MockClientInterface)(nil).GetProject), projectName) +} + +// GetReplicaSetByName mocks base method. +func (m *MockClientInterface) GetReplicaSetByName(name string) (*v10.ReplicaSet, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetReplicaSetByName", name) + ret0, _ := ret[0].(*v10.ReplicaSet) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetReplicaSetByName indicates an expected call of GetReplicaSetByName. +func (mr *MockClientInterfaceMockRecorder) GetReplicaSetByName(name interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetReplicaSetByName", reflect.TypeOf((*MockClientInterface)(nil).GetReplicaSetByName), name) +} + +// GetResourceSpecDefinition mocks base method. +func (m *MockClientInterface) GetResourceSpecDefinition(group, version, kind string) (*spec.Schema, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetResourceSpecDefinition", group, version, kind) + ret0, _ := ret[0].(*spec.Schema) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetResourceSpecDefinition indicates an expected call of GetResourceSpecDefinition. +func (mr *MockClientInterfaceMockRecorder) GetResourceSpecDefinition(group, version, kind interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetResourceSpecDefinition", reflect.TypeOf((*MockClientInterface)(nil).GetResourceSpecDefinition), group, version, kind) +} + +// GetRestMappingFromGVK mocks base method. +func (m *MockClientInterface) GetRestMappingFromGVK(gvk schema.GroupVersionKind) (*meta.RESTMapping, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetRestMappingFromGVK", gvk) + ret0, _ := ret[0].(*meta.RESTMapping) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetRestMappingFromGVK indicates an expected call of GetRestMappingFromGVK. +func (mr *MockClientInterfaceMockRecorder) GetRestMappingFromGVK(gvk interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRestMappingFromGVK", reflect.TypeOf((*MockClientInterface)(nil).GetRestMappingFromGVK), gvk) +} + +// GetRestMappingFromUnstructured mocks base method. +func (m *MockClientInterface) GetRestMappingFromUnstructured(arg0 unstructured.Unstructured) (*meta.RESTMapping, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetRestMappingFromUnstructured", arg0) + ret0, _ := ret[0].(*meta.RESTMapping) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetRestMappingFromUnstructured indicates an expected call of GetRestMappingFromUnstructured. +func (mr *MockClientInterfaceMockRecorder) GetRestMappingFromUnstructured(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRestMappingFromUnstructured", reflect.TypeOf((*MockClientInterface)(nil).GetRestMappingFromUnstructured), arg0) +} + +// GetSecret mocks base method. +func (m *MockClientInterface) GetSecret(name, namespace string) (*v11.Secret, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetSecret", name, namespace) + ret0, _ := ret[0].(*v11.Secret) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetSecret indicates an expected call of GetSecret. +func (mr *MockClientInterfaceMockRecorder) GetSecret(name, namespace interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecret", reflect.TypeOf((*MockClientInterface)(nil).GetSecret), name, namespace) +} + +// GetServerVersion mocks base method. +func (m *MockClientInterface) GetServerVersion(timeout time.Duration) (*ServerInfo, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetServerVersion", timeout) + ret0, _ := ret[0].(*ServerInfo) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetServerVersion indicates an expected call of GetServerVersion. +func (mr *MockClientInterfaceMockRecorder) GetServerVersion(timeout interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServerVersion", reflect.TypeOf((*MockClientInterface)(nil).GetServerVersion), timeout) +} + +// GetSpecServiceBinding mocks base method. +func (m *MockClientInterface) GetSpecServiceBinding(name string) (v1alpha3.ServiceBinding, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetSpecServiceBinding", name) + ret0, _ := ret[0].(v1alpha3.ServiceBinding) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetSpecServiceBinding indicates an expected call of GetSpecServiceBinding. +func (mr *MockClientInterfaceMockRecorder) GetSpecServiceBinding(name interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSpecServiceBinding", reflect.TypeOf((*MockClientInterface)(nil).GetSpecServiceBinding), name) +} + +// IsCSVSupported mocks base method. +func (m *MockClientInterface) IsCSVSupported() (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "IsCSVSupported") + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// IsCSVSupported indicates an expected call of IsCSVSupported. +func (mr *MockClientInterfaceMockRecorder) IsCSVSupported() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsCSVSupported", reflect.TypeOf((*MockClientInterface)(nil).IsCSVSupported)) +} + +// IsDeploymentExtensionsV1Beta1 mocks base method. +func (m *MockClientInterface) IsDeploymentExtensionsV1Beta1() (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "IsDeploymentExtensionsV1Beta1") + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// IsDeploymentExtensionsV1Beta1 indicates an expected call of IsDeploymentExtensionsV1Beta1. +func (mr *MockClientInterfaceMockRecorder) IsDeploymentExtensionsV1Beta1() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsDeploymentExtensionsV1Beta1", reflect.TypeOf((*MockClientInterface)(nil).IsDeploymentExtensionsV1Beta1)) +} + +// IsProjectSupported mocks base method. +func (m *MockClientInterface) IsProjectSupported() (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "IsProjectSupported") + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// IsProjectSupported indicates an expected call of IsProjectSupported. +func (mr *MockClientInterfaceMockRecorder) IsProjectSupported() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsProjectSupported", reflect.TypeOf((*MockClientInterface)(nil).IsProjectSupported)) +} + +// IsResourceSupported mocks base method. +func (m *MockClientInterface) IsResourceSupported(apiGroup, apiVersion, resourceName string) (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "IsResourceSupported", apiGroup, apiVersion, resourceName) + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// IsResourceSupported indicates an expected call of IsResourceSupported. +func (mr *MockClientInterfaceMockRecorder) IsResourceSupported(apiGroup, apiVersion, resourceName interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsResourceSupported", reflect.TypeOf((*MockClientInterface)(nil).IsResourceSupported), apiGroup, apiVersion, resourceName) +} + +// IsSSASupported mocks base method. +func (m *MockClientInterface) IsSSASupported() bool { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "IsSSASupported") + ret0, _ := ret[0].(bool) + return ret0 +} + +// IsSSASupported indicates an expected call of IsSSASupported. +func (mr *MockClientInterfaceMockRecorder) IsSSASupported() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsSSASupported", reflect.TypeOf((*MockClientInterface)(nil).IsSSASupported)) +} + +// IsServiceBindingSupported mocks base method. +func (m *MockClientInterface) IsServiceBindingSupported() (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "IsServiceBindingSupported") + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// IsServiceBindingSupported indicates an expected call of IsServiceBindingSupported. +func (mr *MockClientInterfaceMockRecorder) IsServiceBindingSupported() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsServiceBindingSupported", reflect.TypeOf((*MockClientInterface)(nil).IsServiceBindingSupported)) +} + +// ListClusterServiceVersions mocks base method. +func (m *MockClientInterface) ListClusterServiceVersions() (*v1alpha1.ClusterServiceVersionList, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListClusterServiceVersions") + ret0, _ := ret[0].(*v1alpha1.ClusterServiceVersionList) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListClusterServiceVersions indicates an expected call of ListClusterServiceVersions. +func (mr *MockClientInterfaceMockRecorder) ListClusterServiceVersions() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListClusterServiceVersions", reflect.TypeOf((*MockClientInterface)(nil).ListClusterServiceVersions)) +} + +// ListDynamicResources mocks base method. +func (m *MockClientInterface) ListDynamicResources(gvr schema.GroupVersionResource) (*unstructured.UnstructuredList, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListDynamicResources", gvr) + ret0, _ := ret[0].(*unstructured.UnstructuredList) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListDynamicResources indicates an expected call of ListDynamicResources. +func (mr *MockClientInterfaceMockRecorder) ListDynamicResources(gvr interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDynamicResources", reflect.TypeOf((*MockClientInterface)(nil).ListDynamicResources), gvr) +} + +// ListPVCNames mocks base method. +func (m *MockClientInterface) ListPVCNames(selector string) ([]string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListPVCNames", selector) + ret0, _ := ret[0].([]string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListPVCNames indicates an expected call of ListPVCNames. +func (mr *MockClientInterfaceMockRecorder) ListPVCNames(selector interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPVCNames", reflect.TypeOf((*MockClientInterface)(nil).ListPVCNames), selector) +} + +// ListPVCs mocks base method. +func (m *MockClientInterface) ListPVCs(selector string) ([]v11.PersistentVolumeClaim, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListPVCs", selector) + ret0, _ := ret[0].([]v11.PersistentVolumeClaim) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListPVCs indicates an expected call of ListPVCs. +func (mr *MockClientInterfaceMockRecorder) ListPVCs(selector interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPVCs", reflect.TypeOf((*MockClientInterface)(nil).ListPVCs), selector) +} + +// ListProjectNames mocks base method. +func (m *MockClientInterface) ListProjectNames() ([]string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListProjectNames") + ret0, _ := ret[0].([]string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListProjectNames indicates an expected call of ListProjectNames. +func (mr *MockClientInterfaceMockRecorder) ListProjectNames() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListProjectNames", reflect.TypeOf((*MockClientInterface)(nil).ListProjectNames)) +} + +// ListSecrets mocks base method. +func (m *MockClientInterface) ListSecrets(labelSelector string) ([]v11.Secret, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListSecrets", labelSelector) + ret0, _ := ret[0].([]v11.Secret) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListSecrets indicates an expected call of ListSecrets. +func (mr *MockClientInterfaceMockRecorder) ListSecrets(labelSelector interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSecrets", reflect.TypeOf((*MockClientInterface)(nil).ListSecrets), labelSelector) +} + +// ListServices mocks base method. +func (m *MockClientInterface) ListServices(selector string) ([]v11.Service, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListServices", selector) + ret0, _ := ret[0].([]v11.Service) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListServices indicates an expected call of ListServices. +func (mr *MockClientInterfaceMockRecorder) ListServices(selector interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListServices", reflect.TypeOf((*MockClientInterface)(nil).ListServices), selector) +} + +// NewServiceBindingServiceObject mocks base method. +func (m *MockClientInterface) NewServiceBindingServiceObject(unstructuredService unstructured.Unstructured, bindingName string) (v1alpha10.Service, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "NewServiceBindingServiceObject", unstructuredService, bindingName) + ret0, _ := ret[0].(v1alpha10.Service) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// NewServiceBindingServiceObject indicates an expected call of NewServiceBindingServiceObject. +func (mr *MockClientInterfaceMockRecorder) NewServiceBindingServiceObject(unstructuredService, bindingName interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewServiceBindingServiceObject", reflect.TypeOf((*MockClientInterface)(nil).NewServiceBindingServiceObject), unstructuredService, bindingName) +} + +// RunLogout mocks base method. +func (m *MockClientInterface) RunLogout(stdout io.Writer) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "RunLogout", stdout) + ret0, _ := ret[0].(error) + return ret0 +} + +// RunLogout indicates an expected call of RunLogout. +func (mr *MockClientInterfaceMockRecorder) RunLogout(stdout interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RunLogout", reflect.TypeOf((*MockClientInterface)(nil).RunLogout), stdout) +} + +// SetCurrentNamespace mocks base method. +func (m *MockClientInterface) SetCurrentNamespace(namespace string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SetCurrentNamespace", namespace) + ret0, _ := ret[0].(error) + return ret0 +} + +// SetCurrentNamespace indicates an expected call of SetCurrentNamespace. +func (mr *MockClientInterfaceMockRecorder) SetCurrentNamespace(namespace interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCurrentNamespace", reflect.TypeOf((*MockClientInterface)(nil).SetCurrentNamespace), namespace) +} + +// SetDiscoveryInterface mocks base method. +func (m *MockClientInterface) SetDiscoveryInterface(client discovery.DiscoveryInterface) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetDiscoveryInterface", client) +} + +// SetDiscoveryInterface indicates an expected call of SetDiscoveryInterface. +func (mr *MockClientInterfaceMockRecorder) SetDiscoveryInterface(client interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetDiscoveryInterface", reflect.TypeOf((*MockClientInterface)(nil).SetDiscoveryInterface), client) +} + +// SetNamespace mocks base method. +func (m *MockClientInterface) SetNamespace(ns string) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetNamespace", ns) +} + +// SetNamespace indicates an expected call of SetNamespace. +func (mr *MockClientInterfaceMockRecorder) SetNamespace(ns interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetNamespace", reflect.TypeOf((*MockClientInterface)(nil).SetNamespace), ns) +} + +// SetupPortForwarding mocks base method. +func (m *MockClientInterface) SetupPortForwarding(pod *v11.Pod, portPairs []string, out, errOut io.Writer) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SetupPortForwarding", pod, portPairs, out, errOut) + ret0, _ := ret[0].(error) + return ret0 +} + +// SetupPortForwarding indicates an expected call of SetupPortForwarding. +func (mr *MockClientInterfaceMockRecorder) SetupPortForwarding(pod, portPairs, out, errOut interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetupPortForwarding", reflect.TypeOf((*MockClientInterface)(nil).SetupPortForwarding), pod, portPairs, out, errOut) +} + +// TryWithBlockOwnerDeletion mocks base method. +func (m *MockClientInterface) TryWithBlockOwnerDeletion(ownerReference v12.OwnerReference, exec func(v12.OwnerReference) error) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "TryWithBlockOwnerDeletion", ownerReference, exec) + ret0, _ := ret[0].(error) + return ret0 +} + +// TryWithBlockOwnerDeletion indicates an expected call of TryWithBlockOwnerDeletion. +func (mr *MockClientInterfaceMockRecorder) TryWithBlockOwnerDeletion(ownerReference, exec interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TryWithBlockOwnerDeletion", reflect.TypeOf((*MockClientInterface)(nil).TryWithBlockOwnerDeletion), ownerReference, exec) +} + +// UpdateDeployment mocks base method. +func (m *MockClientInterface) UpdateDeployment(deploy v10.Deployment) (*v10.Deployment, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateDeployment", deploy) + ret0, _ := ret[0].(*v10.Deployment) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateDeployment indicates an expected call of UpdateDeployment. +func (mr *MockClientInterfaceMockRecorder) UpdateDeployment(deploy interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateDeployment", reflect.TypeOf((*MockClientInterface)(nil).UpdateDeployment), deploy) +} + +// UpdateDynamicResource mocks base method. +func (m *MockClientInterface) UpdateDynamicResource(gvr schema.GroupVersionResource, name string, u *unstructured.Unstructured) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateDynamicResource", gvr, name, u) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdateDynamicResource indicates an expected call of UpdateDynamicResource. +func (mr *MockClientInterfaceMockRecorder) UpdateDynamicResource(gvr, name, u interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateDynamicResource", reflect.TypeOf((*MockClientInterface)(nil).UpdateDynamicResource), gvr, name, u) +} + +// UpdatePVCLabels mocks base method. +func (m *MockClientInterface) UpdatePVCLabels(pvc *v11.PersistentVolumeClaim, labels map[string]string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdatePVCLabels", pvc, labels) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdatePVCLabels indicates an expected call of UpdatePVCLabels. +func (mr *MockClientInterfaceMockRecorder) UpdatePVCLabels(pvc, labels interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePVCLabels", reflect.TypeOf((*MockClientInterface)(nil).UpdatePVCLabels), pvc, labels) +} + +// UpdateSecret mocks base method. +func (m *MockClientInterface) UpdateSecret(secret *v11.Secret, namespace string) (*v11.Secret, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateSecret", secret, namespace) + ret0, _ := ret[0].(*v11.Secret) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateSecret indicates an expected call of UpdateSecret. +func (mr *MockClientInterfaceMockRecorder) UpdateSecret(secret, namespace interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSecret", reflect.TypeOf((*MockClientInterface)(nil).UpdateSecret), secret, namespace) +} + +// UpdateService mocks base method. +func (m *MockClientInterface) UpdateService(svc v11.Service) (*v11.Service, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateService", svc) + ret0, _ := ret[0].(*v11.Service) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateService indicates an expected call of UpdateService. +func (mr *MockClientInterfaceMockRecorder) UpdateService(svc interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateService", reflect.TypeOf((*MockClientInterface)(nil).UpdateService), svc) +} + +// UpdateStorageOwnerReference mocks base method. func (m *MockClientInterface) UpdateStorageOwnerReference(pvc *v11.PersistentVolumeClaim, ownerReference ...v12.OwnerReference) error { m.ctrl.T.Helper() varargs := []interface{}{pvc} @@ -1332,9 +1290,82 @@ func (m *MockClientInterface) UpdateStorageOwnerReference(pvc *v11.PersistentVol return ret0 } -// UpdateStorageOwnerReference indicates an expected call of UpdateStorageOwnerReference +// UpdateStorageOwnerReference indicates an expected call of UpdateStorageOwnerReference. func (mr *MockClientInterfaceMockRecorder) UpdateStorageOwnerReference(pvc interface{}, ownerReference ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{pvc}, ownerReference...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateStorageOwnerReference", reflect.TypeOf((*MockClientInterface)(nil).UpdateStorageOwnerReference), varargs...) } + +// WaitAndGetPodWithEvents mocks base method. +func (m *MockClientInterface) WaitAndGetPodWithEvents(selector string, desiredPhase v11.PodPhase, pushTimeout time.Duration) (*v11.Pod, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "WaitAndGetPodWithEvents", selector, desiredPhase, pushTimeout) + ret0, _ := ret[0].(*v11.Pod) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// WaitAndGetPodWithEvents indicates an expected call of WaitAndGetPodWithEvents. +func (mr *MockClientInterfaceMockRecorder) WaitAndGetPodWithEvents(selector, desiredPhase, pushTimeout interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitAndGetPodWithEvents", reflect.TypeOf((*MockClientInterface)(nil).WaitAndGetPodWithEvents), selector, desiredPhase, pushTimeout) +} + +// WaitAndGetSecret mocks base method. +func (m *MockClientInterface) WaitAndGetSecret(name, namespace string) (*v11.Secret, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "WaitAndGetSecret", name, namespace) + ret0, _ := ret[0].(*v11.Secret) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// WaitAndGetSecret indicates an expected call of WaitAndGetSecret. +func (mr *MockClientInterfaceMockRecorder) WaitAndGetSecret(name, namespace interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitAndGetSecret", reflect.TypeOf((*MockClientInterface)(nil).WaitAndGetSecret), name, namespace) +} + +// WaitForDeploymentRollout mocks base method. +func (m *MockClientInterface) WaitForDeploymentRollout(deploymentName string) (*v10.Deployment, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "WaitForDeploymentRollout", deploymentName) + ret0, _ := ret[0].(*v10.Deployment) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// WaitForDeploymentRollout indicates an expected call of WaitForDeploymentRollout. +func (mr *MockClientInterfaceMockRecorder) WaitForDeploymentRollout(deploymentName interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitForDeploymentRollout", reflect.TypeOf((*MockClientInterface)(nil).WaitForDeploymentRollout), deploymentName) +} + +// WaitForPodDeletion mocks base method. +func (m *MockClientInterface) WaitForPodDeletion(name string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "WaitForPodDeletion", name) + ret0, _ := ret[0].(error) + return ret0 +} + +// WaitForPodDeletion indicates an expected call of WaitForPodDeletion. +func (mr *MockClientInterfaceMockRecorder) WaitForPodDeletion(name interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitForPodDeletion", reflect.TypeOf((*MockClientInterface)(nil).WaitForPodDeletion), name) +} + +// WaitForServiceAccountInNamespace mocks base method. +func (m *MockClientInterface) WaitForServiceAccountInNamespace(namespace, serviceAccountName string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "WaitForServiceAccountInNamespace", namespace, serviceAccountName) + ret0, _ := ret[0].(error) + return ret0 +} + +// WaitForServiceAccountInNamespace indicates an expected call of WaitForServiceAccountInNamespace. +func (mr *MockClientInterfaceMockRecorder) WaitForServiceAccountInNamespace(namespace, serviceAccountName interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitForServiceAccountInNamespace", reflect.TypeOf((*MockClientInterface)(nil).WaitForServiceAccountInNamespace), namespace, serviceAccountName) +} diff --git a/pkg/kclient/pods.go b/pkg/kclient/pods.go index 7c62142ca..3be013a8a 100644 --- a/pkg/kclient/pods.go +++ b/pkg/kclient/pods.go @@ -242,3 +242,7 @@ func (c *Client) GetPodLogs(podName, containerName string, followLog bool) (io.R return rd, err } + +func (c *Client) GetAllPodsInNamespace() (*corev1.PodList, error) { + return c.KubeClient.CoreV1().Pods(c.Namespace).List(context.TODO(), metav1.ListOptions{}) +} diff --git a/pkg/log/status.go b/pkg/log/status.go index a72de3613..f79f1097b 100644 --- a/pkg/log/status.go +++ b/pkg/log/status.go @@ -43,6 +43,8 @@ const suffixSpacing = " " const prefixSpacing = " " var mu sync.Mutex +var colors = []color.Attribute{color.FgRed, color.FgGreen, color.FgYellow, color.FgBlue, color.FgMagenta, color.FgCyan, color.FgWhite} +var colorCounter = 0 // Status is used to track ongoing status in a CLI, with a nice loading spinner // when attached to a terminal @@ -517,3 +519,10 @@ func getSpacingString() string { } return "•" } + +// ColorPicker picks a color from colors slice defined at the starting of this file +// It increments the colorCounter variable so that next iteration returns a different color +func ColorPicker() color.Attribute { + colorCounter++ + return colors[(colorCounter)%len(colors)] +} diff --git a/pkg/logs/interface.go b/pkg/logs/interface.go new file mode 100644 index 000000000..c96a6af4b --- /dev/null +++ b/pkg/logs/interface.go @@ -0,0 +1,9 @@ +package logs + +import "io" + +type Client interface { + // DevModeLogs gets logs for the provided component name and namespace. A component could have multiple pods and + // containers running on the cluster. It returns a slice of maps where container name is the key and its logs are the value + DevModeLogs(componentName string, namespace string) ([]map[string]io.ReadCloser, error) +} diff --git a/pkg/logs/logs.go b/pkg/logs/logs.go new file mode 100644 index 000000000..9c309ae9b --- /dev/null +++ b/pkg/logs/logs.go @@ -0,0 +1,108 @@ +package logs + +import ( + "io" + + "k8s.io/apimachinery/pkg/runtime/schema" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + + "github.com/redhat-developer/odo/pkg/kclient" + odolabels "github.com/redhat-developer/odo/pkg/labels" + corev1 "k8s.io/api/core/v1" +) + +type LogsClient struct { + kubernetesClient kclient.ClientInterface +} + +func NewLogsClient(kubernetesClient kclient.ClientInterface) *LogsClient { + return &LogsClient{ + kubernetesClient: kubernetesClient, + } +} + +var _ Client = (*LogsClient)(nil) + +func (o *LogsClient) DevModeLogs(componentName string, namespace string) ([]map[string]io.ReadCloser, error) { + // get all resources in the namespace which are running in Dev mode + selector := odolabels.Builder().WithComponentName(componentName).WithMode(odolabels.ComponentDevMode).Selector() + resources, err := o.kubernetesClient.GetAllResourcesFromSelector(selector, namespace) + if err != nil { + return nil, err + } + + // get all pods in the namespace + podList, err := o.kubernetesClient.GetAllPodsInNamespace() + if err != nil { + return nil, err + } + + // match pod ownerReference (if any) with resources running in Dev mode + var pods []corev1.Pod + for _, pod := range podList.Items { + for _, owner := range pod.GetOwnerReferences() { + match, err := o.matchOwnerReferenceWithResources(owner, resources) + if err != nil { + return nil, err + } else if match { + pods = append(pods, pod) + break // because we don't need to check other owner references of the pod anymore + } + } + } + + // get all containers from the pods of interest + podContainersMap := map[string][]corev1.Container{} + for _, pod := range pods { + for _, container := range pod.Spec.Containers { + if _, ok := podContainersMap[pod.Name]; !ok { + podContainersMap[pod.Name] = []corev1.Container{container} + } else { + podContainersMap[pod.Name] = append(podContainersMap[pod.Name], container) + } + } + } + + // get logs of all containers + logs := []map[string]io.ReadCloser{} + + for pod, containers := range podContainersMap { + for _, container := range containers { + containerLogs, err := o.kubernetesClient.GetPodLogs(pod, container.Name, false) + if err != nil { + return nil, err + } + logs = append(logs, map[string]io.ReadCloser{container.Name: containerLogs}) + } + } + + return logs, nil +} + +// matchOwnerReferenceWithResources recursively checks if the owner reference passed to it matches any of the resources +// This is useful when trying to find if a pod is owned by any of the ReplicaSet or Deployment in the cluster. +func (o *LogsClient) matchOwnerReferenceWithResources(owner metav1.OwnerReference, resources []unstructured.Unstructured) (bool, error) { + // first, check if ownerReference belongs to any of the resources + for _, resource := range resources { + if resource.GetUID() != "" && owner.UID != "" && resource.GetUID() == owner.UID { + return true, nil + } + } + // second, get the resource indicated by ownerReference and check its ownerReferences field + restMapping, err := o.kubernetesClient.GetRestMappingFromGVK(schema.FromAPIVersionAndKind(owner.APIVersion, owner.Kind)) + if err != nil { + return false, err + } + resource, err := o.kubernetesClient.GetDynamicResource(restMapping.Resource, owner.Name) + if err != nil { + return false, err + } + ownerReferences := resource.GetOwnerReferences() + // recursively check if ownerReference matches any of the resources' UID + for _, ownerReference := range ownerReferences { + return o.matchOwnerReferenceWithResources(ownerReference, resources) + } + return false, nil +} diff --git a/pkg/logs/logs_test.go b/pkg/logs/logs_test.go new file mode 100644 index 000000000..534ae23f3 --- /dev/null +++ b/pkg/logs/logs_test.go @@ -0,0 +1,205 @@ +package logs + +import ( + "fmt" + "testing" + + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime/schema" + + "github.com/golang/mock/gomock" + + "github.com/redhat-developer/odo/pkg/kclient" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" +) + +func fakePod(name string) unstructured.Unstructured { + return unstructured.Unstructured{Object: map[string]interface{}{ + "apiVersion": "v1", + "kind": "Pod", + "metadata": map[string]interface{}{ + "name": fmt.Sprintf("pod-%s", name), + "uid": fmt.Sprintf("pod-%s", name), + }, + "spec": map[string]interface{}{ + "containers": map[string]interface{}{ + "name": fmt.Sprintf("%s-1", name), + "image": "image", + }, + }, + }} +} + +func fakeDeployment(name string) unstructured.Unstructured { + return unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": map[string]interface{}{ + "name": fmt.Sprintf("deployment-%s", name), + "uid": fmt.Sprintf("deployment-%s", name), + }, + "spec": map[string]interface{}{ + "selector": map[string]interface{}{ + "matchLabels": map[string]interface{}{ + "app": "test", + }, + }, + "template": map[string]interface{}{ + "metadata": map[string]interface{}{ + "labels": map[string]interface{}{ + "app": "test", + }, + }, + "spec": fakePod(name), + }, + }, + }, + } +} + +func generateOwnerRefernce(object unstructured.Unstructured) metav1.OwnerReference { + return metav1.OwnerReference{ + APIVersion: object.GetAPIVersion(), + Kind: object.GetKind(), + Name: object.GetName(), + UID: object.GetUID(), + } +} + +func TestLogsClient_matchOwnerReferenceWithResources_PodsWithOwnerInResources(t *testing.T) { + type args struct { + resources func() []unstructured.Unstructured + } + tests := []struct { + name string + args args + want bool + wantErr bool + }{ + { + name: "Case 1: pod owned by a deployment", + args: args{ + resources: func() []unstructured.Unstructured { + pod := fakePod("pod") + deployment := fakeDeployment("deployment") + deployOwnerRef := generateOwnerRefernce(deployment) + pod.SetOwnerReferences([]metav1.OwnerReference{deployOwnerRef}) + return []unstructured.Unstructured{pod, deployment} + }, + }, + want: true, + wantErr: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + ctrl := gomock.NewController(t) + kubernetesClient := kclient.NewMockClientInterface(ctrl) + o := &LogsClient{ + kubernetesClient: kubernetesClient, + } + + got, err := o.matchOwnerReferenceWithResources(tt.args.resources()[0].GetOwnerReferences()[0], tt.args.resources()) + if (err != nil) != tt.wantErr { + t.Errorf("matchOwnerReferenceWithResources() error = %v, wantErr %v", err, tt.wantErr) + return + } + if got != tt.want { + t.Errorf("matchOwnerReferenceWithResources() got = %v, want %v", got, tt.want) + } + }) + } +} + +func TestLogsClient_matchOwnerReferenceWithResources_PodsWithNoOwnerInResources(t *testing.T) { + // pod and deployment that are not a part of args.resources + independentDeploy := fakeDeployment("independent-deploy") + independentPod := fakePod("independent-pod") + independentPod.SetOwnerReferences([]metav1.OwnerReference{generateOwnerRefernce(independentDeploy)}) + + type args struct { + resources func() []unstructured.Unstructured + } + tests := []struct { + name string + args args + gvk *meta.RESTMapping + resource *unstructured.Unstructured + want bool + wantErr bool + }{ + { + name: "Case 1: Pod not owned by anything in `resources` slice", + args: args{ + resources: func() []unstructured.Unstructured { + pod := fakePod("pod") + deployment := fakeDeployment("deployment") + deployOwnerRef := generateOwnerRefernce(deployment) + pod.SetOwnerReferences([]metav1.OwnerReference{deployOwnerRef}) + return []unstructured.Unstructured{pod, deployment} + }, + }, + gvk: &meta.RESTMapping{ + Resource: schema.GroupVersionResource{ + Group: "apps", + Version: "v1", + Resource: "deployments", + }, + GroupVersionKind: schema.GroupVersionKind{ + Group: "apps", + Version: "v1", + Kind: "Deployment", + }, + }, + resource: &unstructured.Unstructured{Object: map[string]interface{}{ + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": map[string]interface{}{ + "namespace": independentDeploy.GetNamespace(), + "name": independentDeploy.GetName(), + "uid": independentDeploy.GetUID(), + }, + "spec": map[string]interface{}{ + "selector": map[string]interface{}{ + "matchLabels": map[string]interface{}{ + "app": "test", + }, + }, + "template": map[string]interface{}{ + "metadata": map[string]interface{}{ + "labels": map[string]interface{}{ + "app": "test", + }, + }, + "spec": fakePod(independentDeploy.GetName()), + }, + }, + }}, + want: false, + wantErr: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + ctrl := gomock.NewController(t) + kubernetesClient := kclient.NewMockClientInterface(ctrl) + kubernetesClient.EXPECT().GetRestMappingFromGVK( + schema.FromAPIVersionAndKind(independentDeploy.GetAPIVersion(), independentDeploy.GetKind())).Return(tt.gvk, nil).AnyTimes() + kubernetesClient.EXPECT().GetDynamicResource(tt.gvk.Resource, independentDeploy.GetName()).Return(tt.resource, nil).AnyTimes() + + o := &LogsClient{ + kubernetesClient: kubernetesClient, + } + got, err := o.matchOwnerReferenceWithResources(independentPod.GetOwnerReferences()[0], tt.args.resources()) + if (err != nil) != tt.wantErr { + t.Errorf("matchOwnerReferenceWithResources() error = %v, wantErr %v", err, tt.wantErr) + return + } + if got != tt.want { + t.Errorf("matchOwnerReferenceWithResources() got = %v, want %v", got, tt.want) + } + }) + } +} diff --git a/pkg/odo/cli/cli.go b/pkg/odo/cli/cli.go index 9daebf81e..c9cc0c33c 100644 --- a/pkg/odo/cli/cli.go +++ b/pkg/odo/cli/cli.go @@ -8,6 +8,8 @@ import ( "strings" "unicode" + "github.com/redhat-developer/odo/pkg/odo/cli/logs" + "github.com/redhat-developer/odo/pkg/odo/cli/add" "github.com/redhat-developer/odo/pkg/odo/cli/alizer" "github.com/redhat-developer/odo/pkg/odo/cli/build_images" @@ -182,6 +184,7 @@ func odoRootCmd(name, fullName string) *cobra.Command { registry.NewCmdRegistry(registry.RecommendedCommandName, util.GetFullName(fullName, registry.RecommendedCommandName)), create.NewCmdCreate(create.RecommendedCommandName, util.GetFullName(fullName, create.RecommendedCommandName)), set.NewCmdSet(set.RecommendedCommandName, util.GetFullName(fullName, set.RecommendedCommandName)), + logs.NewCmdLogs(logs.RecommendedCommandName, util.GetFullName(fullName, logs.RecommendedCommandName)), ) // Add all subcommands to base commands diff --git a/pkg/odo/cli/logs/logs.go b/pkg/odo/cli/logs/logs.go new file mode 100644 index 000000000..e129d9f6a --- /dev/null +++ b/pkg/odo/cli/logs/logs.go @@ -0,0 +1,158 @@ +package logs + +import ( + "bufio" + "context" + "errors" + "fmt" + "io" + "os" + "strconv" + + "github.com/fatih/color" + + "github.com/redhat-developer/odo/pkg/log" + + "github.com/redhat-developer/odo/pkg/devfile/location" + odoutil "github.com/redhat-developer/odo/pkg/odo/util" + + "github.com/redhat-developer/odo/pkg/odo/cmdline" + "github.com/redhat-developer/odo/pkg/odo/genericclioptions" + "github.com/redhat-developer/odo/pkg/odo/genericclioptions/clientset" + "github.com/spf13/cobra" + ktemplates "k8s.io/kubectl/pkg/util/templates" +) + +const RecommendedCommandName = "logs" + +type LogsOptions struct { + // context + Context *genericclioptions.Context + // clients + clientset *clientset.Clientset + + // variables + componentName string + contextDir string + out io.Writer +} + +func NewLogsOptions() *LogsOptions { + return &LogsOptions{ + out: log.GetStdout(), + } +} + +var logsExample = ktemplates.Examples(` + # Show logs of all containers + %[1]s +`) + +func (o *LogsOptions) SetClientset(clientset *clientset.Clientset) { + o.clientset = clientset +} + +func (o *LogsOptions) Complete(cmdline cmdline.Cmdline, args []string) error { + var err error + o.contextDir, err = os.Getwd() + if err != nil { + return err + } + isEmptyDir, err := location.DirIsEmpty(o.clientset.FS, o.contextDir) + if err != nil { + return err + } + if isEmptyDir { + return errors.New("this command cannot run in an empty directory, run the command in a directory containing source code or initialize using 'odo init'") + } + + o.Context, err = genericclioptions.New(genericclioptions.NewCreateParameters(cmdline).NeedDevfile("")) + if err != nil { + return fmt.Errorf("unable to create context: %v", err) + } + + o.componentName = o.Context.EnvSpecificInfo.GetDevfileObj().GetMetadataName() + + o.clientset.KubernetesClient.SetNamespace(o.Context.GetProject()) + + return nil +} + +func (o *LogsOptions) Validate() error { + return nil +} + +func (o *LogsOptions) Run(ctx context.Context) error { + containersLogs, err := o.clientset.LogsClient.DevModeLogs(o.componentName, o.Context.GetProject()) + if err != nil { + return err + } + + uniqueContainerNames := map[string]struct{}{} + for _, entry := range containersLogs { + for container, logs := range entry { + uniqueName := getUniqueContainerName(container, uniqueContainerNames) + uniqueContainerNames[uniqueName] = struct{}{} + err = printLogs(uniqueName, logs, o.out) + if err != nil { + return err + } + } + } + return nil +} + +func getUniqueContainerName(name string, uniqueNames map[string]struct{}) string { + if _, ok := uniqueNames[name]; ok { + // name already present in uniqueNames; find another name + // first check if last character in name is a number; if so increment it, else append name with 1 + last, err := strconv.Atoi(string(name[len(name)-1])) + if err == nil { + last++ + name = fmt.Sprintf("%s[%d]", name[:len(name)-1], last) + } else { + last = 1 + name = fmt.Sprintf("%s[%d]", name, last) + } + return getUniqueContainerName(name, uniqueNames) + } + return name +} + +// printLogs prints the logs of the containers with container name prefixed to the log message +func printLogs(containerName string, rd io.ReadCloser, out io.Writer) error { + color.Set(log.ColorPicker()) + defer color.Unset() + scanner := bufio.NewScanner(rd) + scanner.Split(bufio.ScanLines) + + for scanner.Scan() { + line := scanner.Text() + _, err := fmt.Fprintln(out, containerName+": "+line) + if err != nil { + return err + } + } + + return nil +} + +func NewCmdLogs(name, fullname string) *cobra.Command { + o := NewLogsOptions() + logsCmd := &cobra.Command{ + Use: name, + Short: "Show logs of all containers of the component", + Long: `odo logs shows logs of all containers of the component running in the Dev mode. +It prefixes each log message with the container name.`, + Example: fmt.Sprintf(logsExample, fullname), + Args: cobra.MaximumNArgs(0), + Run: func(cmd *cobra.Command, args []string) { + genericclioptions.GenericRun(o, cmd, args) + }, + } + + clientset.Add(logsCmd, clientset.LOGS, clientset.FILESYSTEM) + logsCmd.Annotations["command"] = "main" + logsCmd.SetUsageTemplate(odoutil.CmdUsageTemplate) + return logsCmd +} diff --git a/pkg/odo/genericclioptions/clientset/clientset.go b/pkg/odo/genericclioptions/clientset/clientset.go index a04d6647a..4531b9412 100644 --- a/pkg/odo/genericclioptions/clientset/clientset.go +++ b/pkg/odo/genericclioptions/clientset/clientset.go @@ -12,6 +12,7 @@ package clientset import ( + "github.com/redhat-developer/odo/pkg/logs" "github.com/spf13/cobra" "github.com/redhat-developer/odo/pkg/alizer" @@ -33,6 +34,8 @@ import ( const ( // ALIZER instantiates client for pkg/alizer ALIZER = "DEP_ALIZER" + // BINDING instantiates client for pkg/binding + BINDING = "DEP_BINDING" // DELETE_COMPONENT instantiates client for pkg/component/delete DELETE_COMPONENT = "DEP_DELETE_COMPONENT" // DEPLOY instantiates client for pkg/deploy @@ -47,6 +50,8 @@ const ( KUBERNETES_NULLABLE = "DEP_KUBERNETES_NULLABLE" // KUBERNETES instantiates client for pkg/kclient KUBERNETES = "DEP_KUBERNETES" + // LOGS instantiates client for pkg/logs + LOGS = "DEP_LOGS" // PREFERENCE instantiates client for pkg/preference PREFERENCE = "DEP_PREFERENCE" // PROJECT instantiates client for pkg/project @@ -57,8 +62,6 @@ const ( STATE = "DEP_STATE" // WATCH instantiates client for pkg/watch WATCH = "DEP_WATCH" - // BINDING instantiates client for pkg/binding - BINDING = "DEP_BINDING" /* Add key for new package here */ ) @@ -70,6 +73,7 @@ var subdeps map[string][]string = map[string][]string{ DEPLOY: {KUBERNETES}, DEV: {WATCH}, INIT: {ALIZER, FILESYSTEM, PREFERENCE, REGISTRY}, + LOGS: {KUBERNETES}, PROJECT: {KUBERNETES_NULLABLE}, REGISTRY: {FILESYSTEM, PREFERENCE}, STATE: {FILESYSTEM}, @@ -86,6 +90,7 @@ type Clientset struct { FS filesystem.Filesystem InitClient _init.Client KubernetesClient kclient.ClientInterface + LogsClient logs.Client PreferenceClient preference.Client ProjectClient project.Client RegistryClient registry.Client @@ -151,6 +156,9 @@ func Fetch(command *cobra.Command) (*Clientset, error) { if isDefined(command, INIT) { dep.InitClient = _init.NewInitClient(dep.FS, dep.PreferenceClient, dep.RegistryClient, dep.AlizerClient) } + if isDefined(command, LOGS) { + dep.LogsClient = logs.NewLogsClient(dep.KubernetesClient) + } if isDefined(command, PROJECT) { dep.ProjectClient = project.NewClient(dep.KubernetesClient) } diff --git a/tests/integration/devfile/cmd_logs_test.go b/tests/integration/devfile/cmd_logs_test.go new file mode 100644 index 000000000..7297736dc --- /dev/null +++ b/tests/integration/devfile/cmd_logs_test.go @@ -0,0 +1,53 @@ +package devfile + +import ( + "path/filepath" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + "github.com/onsi/gomega/gexec" + "github.com/redhat-developer/odo/tests/helper" +) + +var _ = Describe("odo logs command tests", func() { + var componentName string + var commonVar helper.CommonVar + + var _ = BeforeEach(func() { + commonVar = helper.CommonBeforeEach() + componentName = helper.RandString(6) + helper.Chdir(commonVar.Context) + Expect(helper.VerifyFileExists(".odo/env/env.yaml")).To(BeFalse()) + }) + + var _ = AfterEach(func() { + helper.CommonAfterEach(commonVar) + }) + + When("directory is empty", func() { + + BeforeEach(func() { + Expect(helper.ListFilesInDir(commonVar.Context)).To(HaveLen(0)) + }) + + It("should error", func() { + output := helper.Cmd("odo", "logs").ShouldFail().Err() + Expect(output).To(ContainSubstring("this command cannot run in an empty directory")) + }) + }) + + When("component is created and odo logs is executed", func() { + BeforeEach(func() { + helper.CopyExample(filepath.Join("source", "devfiles", "nodejs", "project"), commonVar.Context) + helper.Cmd("odo", "init", "--name", componentName, "--devfile-path", helper.GetExamplePath("source", "devfiles", "nodejs", "devfile.yaml")).ShouldPass() + Expect(helper.VerifyFileExists(".odo/env/env.yaml")).To(BeFalse()) + }) + It("should successfully show logs of the running component", func() { + err := helper.RunDevMode(func(session *gexec.Session, outContents []byte, errContents []byte, ports map[string]string) { + out := helper.Cmd("odo", "logs").ShouldPass().Out() + Expect(out).To(ContainSubstring("runtime: App started on PORT 3000")) + }) + Expect(err).ToNot(HaveOccurred()) + }) + }) +})