mirror of https://github.com/knative/client.git
Add command for creation of a plain trigger (#541)
This commit is contained in:
parent
0ca6f14d4a
commit
7def9f49eb
|
|
@ -28,5 +28,6 @@ Manage your Knative building blocks:
|
||||||
* [kn route](kn_route.md) - Route command group
|
* [kn route](kn_route.md) - Route command group
|
||||||
* [kn service](kn_service.md) - Service command group
|
* [kn service](kn_service.md) - Service command group
|
||||||
* [kn source](kn_source.md) - Event source command group
|
* [kn source](kn_source.md) - Event source command group
|
||||||
|
* [kn trigger](kn_trigger.md) - Trigger command group
|
||||||
* [kn version](kn_version.md) - Prints the client version
|
* [kn version](kn_version.md) - Prints the client version
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
## kn trigger
|
||||||
|
|
||||||
|
Trigger command group
|
||||||
|
|
||||||
|
### Synopsis
|
||||||
|
|
||||||
|
Trigger command group
|
||||||
|
|
||||||
|
```
|
||||||
|
kn trigger [flags]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Options
|
||||||
|
|
||||||
|
```
|
||||||
|
-h, --help help for trigger
|
||||||
|
```
|
||||||
|
|
||||||
|
### Options inherited from parent commands
|
||||||
|
|
||||||
|
```
|
||||||
|
--config string kn config file (default is $HOME/.kn/config.yaml)
|
||||||
|
--kubeconfig string kubectl config file (default is $HOME/.kube/config)
|
||||||
|
--log-http log http traffic
|
||||||
|
```
|
||||||
|
|
||||||
|
### SEE ALSO
|
||||||
|
|
||||||
|
* [kn](kn.md) - Knative client
|
||||||
|
* [kn trigger create](kn_trigger_create.md) - Create a trigger
|
||||||
|
* [kn trigger delete](kn_trigger_delete.md) - Delete a trigger.
|
||||||
|
* [kn trigger describe](kn_trigger_describe.md) - Describe a trigger.
|
||||||
|
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
## kn trigger create
|
||||||
|
|
||||||
|
Create a trigger
|
||||||
|
|
||||||
|
### Synopsis
|
||||||
|
|
||||||
|
Create a trigger
|
||||||
|
|
||||||
|
```
|
||||||
|
kn trigger create NAME --broker BROKER --filter KEY=VALUE --sink SINK [flags]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
# Create a trigger 'mytrigger' to declare a subscription to events with attribute 'type=dev.knative.foo' from default broker. The subscriber is service 'mysvc'
|
||||||
|
kn trigger create mytrigger --broker default --filter type=dev.knative.foo --sink svc:mysvc
|
||||||
|
```
|
||||||
|
|
||||||
|
### Options
|
||||||
|
|
||||||
|
```
|
||||||
|
--broker string Name of the Broker which the trigger associates with. (default "default")
|
||||||
|
--filter []string Key-value pair for exact CloudEvent attribute matching against incoming events, e.g type=dev.knative.foo
|
||||||
|
-h, --help help for create
|
||||||
|
-n, --namespace string Specify the namespace to operate in.
|
||||||
|
-s, --sink string Addressable sink for events
|
||||||
|
```
|
||||||
|
|
||||||
|
### Options inherited from parent commands
|
||||||
|
|
||||||
|
```
|
||||||
|
--config string kn config file (default is $HOME/.kn/config.yaml)
|
||||||
|
--kubeconfig string kubectl config file (default is $HOME/.kube/config)
|
||||||
|
--log-http log http traffic
|
||||||
|
```
|
||||||
|
|
||||||
|
### SEE ALSO
|
||||||
|
|
||||||
|
* [kn trigger](kn_trigger.md) - Trigger command group
|
||||||
|
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
## kn trigger delete
|
||||||
|
|
||||||
|
Delete a trigger.
|
||||||
|
|
||||||
|
### Synopsis
|
||||||
|
|
||||||
|
Delete a trigger.
|
||||||
|
|
||||||
|
```
|
||||||
|
kn trigger delete NAME [flags]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
# Delete a trigger 'mytrigger' in default namespace
|
||||||
|
kn trigger delete mytrigger
|
||||||
|
```
|
||||||
|
|
||||||
|
### Options
|
||||||
|
|
||||||
|
```
|
||||||
|
-h, --help help for delete
|
||||||
|
-n, --namespace string Specify the namespace to operate in.
|
||||||
|
```
|
||||||
|
|
||||||
|
### Options inherited from parent commands
|
||||||
|
|
||||||
|
```
|
||||||
|
--config string kn config file (default is $HOME/.kn/config.yaml)
|
||||||
|
--kubeconfig string kubectl config file (default is $HOME/.kube/config)
|
||||||
|
--log-http log http traffic
|
||||||
|
```
|
||||||
|
|
||||||
|
### SEE ALSO
|
||||||
|
|
||||||
|
* [kn trigger](kn_trigger.md) - Trigger command group
|
||||||
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
## kn trigger describe
|
||||||
|
|
||||||
|
Describe a trigger.
|
||||||
|
|
||||||
|
### Synopsis
|
||||||
|
|
||||||
|
Describe a trigger.
|
||||||
|
|
||||||
|
```
|
||||||
|
kn trigger describe NAME [flags]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
# Describe a trigger with name 'my-trigger'
|
||||||
|
kn trigger describe my-trigger
|
||||||
|
```
|
||||||
|
|
||||||
|
### Options
|
||||||
|
|
||||||
|
```
|
||||||
|
-h, --help help for describe
|
||||||
|
-n, --namespace string Specify the namespace to operate in.
|
||||||
|
-v, --verbose More output.
|
||||||
|
```
|
||||||
|
|
||||||
|
### Options inherited from parent commands
|
||||||
|
|
||||||
|
```
|
||||||
|
--config string kn config file (default is $HOME/.kn/config.yaml)
|
||||||
|
--kubeconfig string kubectl config file (default is $HOME/.kube/config)
|
||||||
|
--log-http log http traffic
|
||||||
|
```
|
||||||
|
|
||||||
|
### SEE ALSO
|
||||||
|
|
||||||
|
* [kn trigger](kn_trigger.md) - Trigger command group
|
||||||
|
|
||||||
|
|
@ -0,0 +1,84 @@
|
||||||
|
// Copyright © 2019 The Knative Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
apis_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
|
kn_errors "knative.dev/client/pkg/errors"
|
||||||
|
"knative.dev/eventing/pkg/apis/eventing/v1alpha1"
|
||||||
|
client_v1alpha1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1"
|
||||||
|
)
|
||||||
|
|
||||||
|
// KnEventingClient to Eventing Sources. All methods are relative to the
|
||||||
|
// namespace specified during construction
|
||||||
|
type KnEventingClient interface {
|
||||||
|
// Namespace in which this client is operating for
|
||||||
|
Namespace() string
|
||||||
|
// CreateTrigger is used to create an instance of trigger
|
||||||
|
CreateTrigger(trigger *v1alpha1.Trigger) (*v1alpha1.Trigger, error)
|
||||||
|
// DeleteTrigger is used to delete an instance of trigger
|
||||||
|
DeleteTrigger(name string) error
|
||||||
|
// GetTrigger is used to get an instance of trigger
|
||||||
|
GetTrigger(name string) (*v1alpha1.Trigger, error)
|
||||||
|
}
|
||||||
|
|
||||||
|
// KnEventingClient is a combination of Sources client interface and namespace
|
||||||
|
// Temporarily help to add sources dependencies
|
||||||
|
// May be changed when adding real sources features
|
||||||
|
type knEventingClient struct {
|
||||||
|
client client_v1alpha1.EventingV1alpha1Interface
|
||||||
|
namespace string
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewKnEventingClient is to invoke Eventing Sources Client API to create object
|
||||||
|
func NewKnEventingClient(client client_v1alpha1.EventingV1alpha1Interface, namespace string) KnEventingClient {
|
||||||
|
return &knEventingClient{
|
||||||
|
client: client,
|
||||||
|
namespace: namespace,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//CreateTrigger is used to create an instance of trigger
|
||||||
|
func (c *knEventingClient) CreateTrigger(trigger *v1alpha1.Trigger) (*v1alpha1.Trigger, error) {
|
||||||
|
trigger, err := c.client.Triggers(c.namespace).Create(trigger)
|
||||||
|
if err != nil {
|
||||||
|
return nil, kn_errors.GetError(err)
|
||||||
|
}
|
||||||
|
return trigger, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
//DeleteTrigger is used to delete an instance of trigger
|
||||||
|
func (c *knEventingClient) DeleteTrigger(name string) error {
|
||||||
|
err := c.client.Triggers(c.namespace).Delete(name, &apis_v1.DeleteOptions{})
|
||||||
|
if err != nil {
|
||||||
|
return kn_errors.GetError(err)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
//GetTrigger is used to get an instance of trigger
|
||||||
|
func (c *knEventingClient) GetTrigger(name string) (*v1alpha1.Trigger, error) {
|
||||||
|
trigger, err := c.client.Triggers(c.namespace).Get(name, apis_v1.GetOptions{})
|
||||||
|
if err != nil {
|
||||||
|
return nil, kn_errors.GetError(err)
|
||||||
|
}
|
||||||
|
return trigger, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return the client's namespace
|
||||||
|
func (c *knEventingClient) Namespace() string {
|
||||||
|
return c.namespace
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,97 @@
|
||||||
|
// Copyright © 2019 The Knative Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"knative.dev/client/pkg/util/mock"
|
||||||
|
"knative.dev/eventing/pkg/apis/eventing/v1alpha1"
|
||||||
|
)
|
||||||
|
|
||||||
|
// MockKnEventingClient is a combine of test object and recorder
|
||||||
|
type MockKnEventingClient struct {
|
||||||
|
t *testing.T
|
||||||
|
recorder *EventingRecorder
|
||||||
|
namespace string
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewMockKnEventingClient returns a new mock instance which you need to record for
|
||||||
|
func NewMockKnEventingClient(t *testing.T, ns ...string) *MockKnEventingClient {
|
||||||
|
namespace := "default"
|
||||||
|
if len(ns) > 0 {
|
||||||
|
namespace = ns[0]
|
||||||
|
}
|
||||||
|
return &MockKnEventingClient{
|
||||||
|
t: t,
|
||||||
|
recorder: &EventingRecorder{mock.NewRecorder(t, namespace)},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure that the interface is implemented
|
||||||
|
var _ KnEventingClient = &MockKnEventingClient{}
|
||||||
|
|
||||||
|
// EventingRecorder is recorder for eventing objects
|
||||||
|
type EventingRecorder struct {
|
||||||
|
r *mock.Recorder
|
||||||
|
}
|
||||||
|
|
||||||
|
// Recorder returns the recorder for registering API calls
|
||||||
|
func (c *MockKnEventingClient) Recorder() *EventingRecorder {
|
||||||
|
return c.recorder
|
||||||
|
}
|
||||||
|
|
||||||
|
// Namespace of this client
|
||||||
|
func (c *MockKnEventingClient) Namespace() string {
|
||||||
|
return c.recorder.r.Namespace()
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateTrigger records a call for CreateCronJobSource with the expected error
|
||||||
|
func (sr *EventingRecorder) CreateTrigger(trigger interface{}, err error) {
|
||||||
|
sr.r.Add("CreateTrigger", []interface{}{trigger}, []interface{}{trigger, err})
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateTrigger performs a previously recorded action, failing if non has been registered
|
||||||
|
func (c *MockKnEventingClient) CreateTrigger(trigger *v1alpha1.Trigger) (*v1alpha1.Trigger, error) {
|
||||||
|
call := c.recorder.r.VerifyCall("CreateTrigger", trigger)
|
||||||
|
return call.Result[0].(*v1alpha1.Trigger), mock.ErrorOrNil(call.Result[1])
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetTrigger records a call for GetTrigger with the expected object or error. Either trigger or err should be nil
|
||||||
|
func (sr *EventingRecorder) GetTrigger(name interface{}, trigger *v1alpha1.Trigger, err error) {
|
||||||
|
sr.r.Add("GetTrigger", []interface{}{name}, []interface{}{trigger, err})
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetTrigger performs a previously recorded action, failing if non has been registered
|
||||||
|
func (c *MockKnEventingClient) GetTrigger(name string) (*v1alpha1.Trigger, error) {
|
||||||
|
call := c.recorder.r.VerifyCall("GetTrigger", name)
|
||||||
|
return call.Result[0].(*v1alpha1.Trigger), mock.ErrorOrNil(call.Result[1])
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteTrigger records a call for DeleteTrigger with the expected error (nil if none)
|
||||||
|
func (sr *EventingRecorder) DeleteTrigger(name interface{}, err error) {
|
||||||
|
sr.r.Add("DeleteTrigger", []interface{}{name}, []interface{}{err})
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteTrigger performs a previously recorded action, failing if non has been registered
|
||||||
|
func (c *MockKnEventingClient) DeleteTrigger(name string) error {
|
||||||
|
call := c.recorder.r.VerifyCall("DeleteTrigger", name)
|
||||||
|
return mock.ErrorOrNil(call.Result[0])
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates whether every recorded action has been called
|
||||||
|
func (sr *EventingRecorder) Validate() {
|
||||||
|
sr.r.CheckThatAllRecordedMethodsHaveBeenCalled()
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
// Copyright © 2019 The Knative Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"knative.dev/eventing/pkg/apis/eventing/v1alpha1"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestMockKnClient(t *testing.T) {
|
||||||
|
|
||||||
|
client := NewMockKnEventingClient(t)
|
||||||
|
|
||||||
|
recorder := client.Recorder()
|
||||||
|
|
||||||
|
// Record all services
|
||||||
|
recorder.GetTrigger("hello", nil, nil)
|
||||||
|
recorder.CreateTrigger(&v1alpha1.Trigger{}, nil)
|
||||||
|
recorder.DeleteTrigger("hello", nil)
|
||||||
|
|
||||||
|
// Call all service
|
||||||
|
client.GetTrigger("hello")
|
||||||
|
client.CreateTrigger(&v1alpha1.Trigger{})
|
||||||
|
client.DeleteTrigger("hello")
|
||||||
|
|
||||||
|
// Validate
|
||||||
|
recorder.Validate()
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,128 @@
|
||||||
|
// Copyright © 2019 The Knative Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"gotest.tools/assert"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
client_testing "k8s.io/client-go/testing"
|
||||||
|
"knative.dev/eventing/pkg/apis/eventing/v1alpha1"
|
||||||
|
"knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/fake"
|
||||||
|
)
|
||||||
|
|
||||||
|
var testNamespace = "test-ns"
|
||||||
|
|
||||||
|
func setup() (fakeSvr fake.FakeEventingV1alpha1, client KnEventingClient) {
|
||||||
|
fakeE := fake.FakeEventingV1alpha1{Fake: &client_testing.Fake{}}
|
||||||
|
cli := NewKnEventingClient(&fakeE, testNamespace)
|
||||||
|
return fakeE, cli
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestDeleteTrigger(t *testing.T) {
|
||||||
|
var name = "new-trigger"
|
||||||
|
server, client := setup()
|
||||||
|
|
||||||
|
server.AddReactor("delete", "triggers",
|
||||||
|
func(a client_testing.Action) (bool, runtime.Object, error) {
|
||||||
|
name := a.(client_testing.DeleteAction).GetName()
|
||||||
|
if name == "errorTrigger" {
|
||||||
|
return true, nil, fmt.Errorf("error while deleting trigger %s", name)
|
||||||
|
}
|
||||||
|
return true, nil, nil
|
||||||
|
})
|
||||||
|
|
||||||
|
err := client.DeleteTrigger(name)
|
||||||
|
assert.NilError(t, err)
|
||||||
|
|
||||||
|
err = client.DeleteTrigger("errorTrigger")
|
||||||
|
assert.ErrorContains(t, err, "errorTrigger")
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCreateTrigger(t *testing.T) {
|
||||||
|
var name = "new-trigger"
|
||||||
|
server, client := setup()
|
||||||
|
|
||||||
|
objNew := newTrigger(name)
|
||||||
|
|
||||||
|
server.AddReactor("create", "triggers",
|
||||||
|
func(a client_testing.Action) (bool, runtime.Object, error) {
|
||||||
|
assert.Equal(t, testNamespace, a.GetNamespace())
|
||||||
|
name := a.(client_testing.CreateAction).GetObject().(metav1.Object).GetName()
|
||||||
|
if name == objNew.Name {
|
||||||
|
objNew.Generation = 2
|
||||||
|
return true, objNew, nil
|
||||||
|
}
|
||||||
|
return true, nil, fmt.Errorf("error while creating trigger %s", name)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("create trigger without error", func(t *testing.T) {
|
||||||
|
ins, err := client.CreateTrigger(objNew)
|
||||||
|
assert.NilError(t, err)
|
||||||
|
assert.Equal(t, ins.Name, name)
|
||||||
|
assert.Equal(t, ins.Namespace, testNamespace)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("create trigger with an error returns an error object", func(t *testing.T) {
|
||||||
|
_, err := client.CreateTrigger(newTrigger("unknown"))
|
||||||
|
assert.ErrorContains(t, err, "unknown")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestGetTrigger(t *testing.T) {
|
||||||
|
var name = "mytrigger"
|
||||||
|
server, client := setup()
|
||||||
|
|
||||||
|
server.AddReactor("get", "triggers",
|
||||||
|
func(a client_testing.Action) (bool, runtime.Object, error) {
|
||||||
|
name := a.(client_testing.GetAction).GetName()
|
||||||
|
if name == "errorTrigger" {
|
||||||
|
return true, nil, fmt.Errorf("error while getting trigger %s", name)
|
||||||
|
}
|
||||||
|
return true, newTrigger(name), nil
|
||||||
|
})
|
||||||
|
|
||||||
|
trigger, err := client.GetTrigger(name)
|
||||||
|
assert.NilError(t, err)
|
||||||
|
assert.Equal(t, trigger.Name, name)
|
||||||
|
assert.Equal(t, trigger.Spec.Broker, "default")
|
||||||
|
|
||||||
|
_, err = client.GetTrigger("errorTrigger")
|
||||||
|
assert.ErrorContains(t, err, "errorTrigger")
|
||||||
|
}
|
||||||
|
|
||||||
|
func newTrigger(name string) *v1alpha1.Trigger {
|
||||||
|
obj := &v1alpha1.Trigger{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: name,
|
||||||
|
Namespace: testNamespace,
|
||||||
|
},
|
||||||
|
Spec: v1alpha1.TriggerSpec{
|
||||||
|
Broker: "default",
|
||||||
|
Filter: &v1alpha1.TriggerFilter{
|
||||||
|
Attributes: &v1alpha1.TriggerFilterAttributes{
|
||||||
|
"type": "foo",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
obj.Name = name
|
||||||
|
obj.Namespace = testNamespace
|
||||||
|
return obj
|
||||||
|
}
|
||||||
|
|
@ -33,6 +33,8 @@ import (
|
||||||
dynamic_fake "k8s.io/client-go/dynamic/fake"
|
dynamic_fake "k8s.io/client-go/dynamic/fake"
|
||||||
dynamic_kn "knative.dev/client/pkg/dynamic"
|
dynamic_kn "knative.dev/client/pkg/dynamic"
|
||||||
sources_client "knative.dev/client/pkg/eventing/sources/v1alpha1"
|
sources_client "knative.dev/client/pkg/eventing/sources/v1alpha1"
|
||||||
|
eventing_client "knative.dev/client/pkg/eventing/v1alpha1"
|
||||||
|
eventing_fake "knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/fake"
|
||||||
sources_fake "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1alpha1/fake"
|
sources_fake "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1alpha1/fake"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -78,6 +80,25 @@ func CreateSourcesTestKnCommand(cmd *cobra.Command, knParams *KnParams) (*cobra.
|
||||||
return knCommand, fakeEventing, buf
|
return knCommand, fakeEventing, buf
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CreateEventingTestKnCommand helper for creating test commands
|
||||||
|
func CreateEventingTestKnCommand(cmd *cobra.Command, knParams *KnParams) (*cobra.Command, *eventing_fake.FakeEventingV1alpha1, *bytes.Buffer) {
|
||||||
|
buf := new(bytes.Buffer)
|
||||||
|
// create fake serving client because the sink of source depends on serving client
|
||||||
|
fakeServing := &fake.FakeServingV1alpha1{&client_testing.Fake{}}
|
||||||
|
knParams.NewServingClient = func(namespace string) (v1alpha1.KnServingClient, error) {
|
||||||
|
return v1alpha1.NewKnServingClient(fakeServing, FakeNamespace), nil
|
||||||
|
}
|
||||||
|
// create fake sources client
|
||||||
|
fakeEventing := &eventing_fake.FakeEventingV1alpha1{&client_testing.Fake{}}
|
||||||
|
knParams.Output = buf
|
||||||
|
knParams.NewEventingClient = func(namespace string) (eventing_client.KnEventingClient, error) {
|
||||||
|
return eventing_client.NewKnEventingClient(fakeEventing, FakeNamespace), nil
|
||||||
|
}
|
||||||
|
knParams.fixedCurrentNamespace = FakeNamespace
|
||||||
|
knCommand := NewKnTestCommand(cmd, knParams)
|
||||||
|
return knCommand, fakeEventing, buf
|
||||||
|
}
|
||||||
|
|
||||||
// CreateDynamicTestKnCommand helper for creating test commands using dynamic client
|
// CreateDynamicTestKnCommand helper for creating test commands using dynamic client
|
||||||
func CreateDynamicTestKnCommand(cmd *cobra.Command, knParams *KnParams, objects ...runtime.Object) (*cobra.Command, *dynamic_fake.FakeDynamicClient, *bytes.Buffer) {
|
func CreateDynamicTestKnCommand(cmd *cobra.Command, knParams *KnParams, objects ...runtime.Object) (*cobra.Command, *dynamic_fake.FakeDynamicClient, *bytes.Buffer) {
|
||||||
buf := new(bytes.Buffer)
|
buf := new(bytes.Buffer)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,115 @@
|
||||||
|
// Copyright © 2019 The Knative Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package trigger
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"knative.dev/client/pkg/kn/commands"
|
||||||
|
"knative.dev/client/pkg/kn/commands/flags"
|
||||||
|
"knative.dev/eventing/pkg/apis/eventing/v1alpha1"
|
||||||
|
duckv1 "knative.dev/pkg/apis/duck/v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewTriggerCreateCommand to create trigger create command
|
||||||
|
func NewTriggerCreateCommand(p *commands.KnParams) *cobra.Command {
|
||||||
|
var triggerUpdateFlags TriggerUpdateFlags
|
||||||
|
var sinkFlags flags.SinkFlags
|
||||||
|
|
||||||
|
cmd := &cobra.Command{
|
||||||
|
Use: "create NAME --broker BROKER --filter KEY=VALUE --sink SINK",
|
||||||
|
Short: "Create a trigger",
|
||||||
|
Example: `
|
||||||
|
# Create a trigger 'mytrigger' to declare a subscription to events with attribute 'type=dev.knative.foo' from default broker. The subscriber is service 'mysvc'
|
||||||
|
kn trigger create mytrigger --broker default --filter type=dev.knative.foo --sink svc:mysvc`,
|
||||||
|
|
||||||
|
RunE: func(cmd *cobra.Command, args []string) (err error) {
|
||||||
|
if len(args) != 1 {
|
||||||
|
return errors.New("'trigger create' requires the name of the trigger as single argument")
|
||||||
|
}
|
||||||
|
name := args[0]
|
||||||
|
|
||||||
|
namespace, err := p.GetNamespace(cmd)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
eventingClient, err := p.NewEventingClient(namespace)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
servingClient, err := p.NewServingClient(namespace)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
objectRef, err := sinkFlags.ResolveSink(servingClient)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf(
|
||||||
|
"cannot create trigger '%s' in namespace '%s' "+
|
||||||
|
"because %s", name, namespace, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
trigger := constructTrigger(name, namespace, triggerUpdateFlags)
|
||||||
|
trigger.Spec.Subscriber = &duckv1.Destination{
|
||||||
|
Ref: objectRef.Ref,
|
||||||
|
URI: objectRef.URI,
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = eventingClient.CreateTrigger(trigger)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf(
|
||||||
|
"cannot create trigger '%s' in namespace '%s' "+
|
||||||
|
"because %s", name, namespace, err)
|
||||||
|
}
|
||||||
|
fmt.Fprintf(cmd.OutOrStdout(), "Trigger '%s' successfully created in namespace '%s'.\n", args[0], namespace)
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
}
|
||||||
|
commands.AddNamespaceFlags(cmd.Flags(), false)
|
||||||
|
triggerUpdateFlags.Add(cmd)
|
||||||
|
sinkFlags.Add(cmd)
|
||||||
|
cmd.MarkFlagRequired("schedule")
|
||||||
|
|
||||||
|
return cmd
|
||||||
|
}
|
||||||
|
|
||||||
|
// constructTrigger is to create an instance of v1alpha1.Trigger
|
||||||
|
func constructTrigger(name string, namespace string, flags TriggerUpdateFlags) *v1alpha1.Trigger {
|
||||||
|
trigger := v1alpha1.Trigger{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: name,
|
||||||
|
Namespace: namespace,
|
||||||
|
},
|
||||||
|
Spec: v1alpha1.TriggerSpec{
|
||||||
|
Broker: flags.Broker,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
filters := flags.GetFilters()
|
||||||
|
if filters != nil {
|
||||||
|
triggerFilterAttributes := v1alpha1.TriggerFilterAttributes(filters)
|
||||||
|
trigger.Spec.Filter = &v1alpha1.TriggerFilter{
|
||||||
|
Attributes: &triggerFilterAttributes,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return &trigger
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,117 @@
|
||||||
|
// Copyright © 2019 The Knative Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package trigger
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"gotest.tools/assert"
|
||||||
|
corev1 "k8s.io/api/core/v1"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
eventing_client "knative.dev/client/pkg/eventing/v1alpha1"
|
||||||
|
knserving_client "knative.dev/client/pkg/serving/v1alpha1"
|
||||||
|
"knative.dev/client/pkg/util"
|
||||||
|
"knative.dev/eventing/pkg/apis/eventing/v1alpha1"
|
||||||
|
duckv1 "knative.dev/pkg/apis/duck/v1"
|
||||||
|
serving_v1alpha1 "knative.dev/serving/pkg/apis/serving/v1alpha1"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
triggerName = "foo"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestTriggerCreate(t *testing.T) {
|
||||||
|
eventingClient := eventing_client.NewMockKnEventingClient(t)
|
||||||
|
servingClient := knserving_client.NewMockKnServiceClient(t)
|
||||||
|
|
||||||
|
servingRecorder := servingClient.Recorder()
|
||||||
|
servingRecorder.GetService("mysvc", &serving_v1alpha1.Service{
|
||||||
|
TypeMeta: metav1.TypeMeta{Kind: "Service"},
|
||||||
|
ObjectMeta: metav1.ObjectMeta{Name: "mysvc"},
|
||||||
|
}, nil)
|
||||||
|
|
||||||
|
eventingRecorder := eventingClient.Recorder()
|
||||||
|
eventingRecorder.CreateTrigger(createTrigger(triggerName, map[string]string{"type": "dev.knative.foo"}, "mybroker", "mysvc"), nil)
|
||||||
|
|
||||||
|
out, err := executeTriggerCommand(eventingClient, servingClient, "create", triggerName, "--broker", "mybroker",
|
||||||
|
"--filter", "type=dev.knative.foo", "--sink", "svc:mysvc")
|
||||||
|
assert.NilError(t, err, "Trigger should be created")
|
||||||
|
util.ContainsAll(out, "Trigger", triggerName, "created", "namespace", "default")
|
||||||
|
|
||||||
|
eventingRecorder.Validate()
|
||||||
|
servingRecorder.Validate()
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNoSinkError(t *testing.T) {
|
||||||
|
eventingClient := eventing_client.NewMockKnEventingClient(t)
|
||||||
|
servingClient := knserving_client.NewMockKnServiceClient(t)
|
||||||
|
|
||||||
|
errorMsg := fmt.Sprintf("cannot create trigger '%s' in namespace 'default' because no Service mysvc found", triggerName)
|
||||||
|
servingRecorder := servingClient.Recorder()
|
||||||
|
servingRecorder.GetService("mysvc", nil, errors.New("no Service mysvc found"))
|
||||||
|
|
||||||
|
out, err := executeTriggerCommand(eventingClient, servingClient, "create", triggerName, "--broker", "mybroker",
|
||||||
|
"--filter", "type=dev.knative.foo", "--sink", "svc:mysvc")
|
||||||
|
assert.Error(t, err, errorMsg)
|
||||||
|
assert.Assert(t, util.ContainsAll(out, errorMsg, "Usage"))
|
||||||
|
servingRecorder.Validate()
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestTriggerCreateMultipleFilter(t *testing.T) {
|
||||||
|
eventingClient := eventing_client.NewMockKnEventingClient(t)
|
||||||
|
servingClient := knserving_client.NewMockKnServiceClient(t)
|
||||||
|
|
||||||
|
servingRecorder := servingClient.Recorder()
|
||||||
|
servingRecorder.GetService("mysvc", &serving_v1alpha1.Service{
|
||||||
|
TypeMeta: metav1.TypeMeta{Kind: "Service"},
|
||||||
|
ObjectMeta: metav1.ObjectMeta{Name: "mysvc"},
|
||||||
|
}, nil)
|
||||||
|
|
||||||
|
eventingRecorder := eventingClient.Recorder()
|
||||||
|
eventingRecorder.CreateTrigger(createTrigger(triggerName, map[string]string{"type": "dev.knative.foo", "source": "event.host"}, "mybroker", "mysvc"), nil)
|
||||||
|
|
||||||
|
out, err := executeTriggerCommand(eventingClient, servingClient, "create", triggerName, "--broker", "mybroker",
|
||||||
|
"--filter", "type=dev.knative.foo", "--filter", "source=event.host", "--sink", "svc:mysvc")
|
||||||
|
assert.NilError(t, err, "Trigger should be created")
|
||||||
|
util.ContainsAll(out, "Trigger", triggerName, "created", "namespace", "default")
|
||||||
|
|
||||||
|
eventingRecorder.Validate()
|
||||||
|
servingRecorder.Validate()
|
||||||
|
}
|
||||||
|
|
||||||
|
func createTrigger(name string, filters map[string]string, broker string, svcname string) *v1alpha1.Trigger {
|
||||||
|
triggerFilterAttributes := v1alpha1.TriggerFilterAttributes(filters)
|
||||||
|
wanted := &v1alpha1.Trigger{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: name,
|
||||||
|
Namespace: "default",
|
||||||
|
},
|
||||||
|
Spec: v1alpha1.TriggerSpec{
|
||||||
|
Broker: broker,
|
||||||
|
Filter: &v1alpha1.TriggerFilter{
|
||||||
|
Attributes: &triggerFilterAttributes,
|
||||||
|
},
|
||||||
|
Subscriber: &duckv1.Destination{
|
||||||
|
Ref: &corev1.ObjectReference{
|
||||||
|
Name: svcname,
|
||||||
|
Kind: "Service",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
return wanted
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
// Copyright © 2019 The Knative Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package trigger
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
"knative.dev/client/pkg/kn/commands"
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewTriggerDeleteCommand represent 'revision delete' command
|
||||||
|
func NewTriggerDeleteCommand(p *commands.KnParams) *cobra.Command {
|
||||||
|
TriggerDeleteCommand := &cobra.Command{
|
||||||
|
Use: "delete NAME",
|
||||||
|
Short: "Delete a trigger.",
|
||||||
|
Example: `
|
||||||
|
# Delete a trigger 'mytrigger' in default namespace
|
||||||
|
kn trigger delete mytrigger`,
|
||||||
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
if len(args) != 1 {
|
||||||
|
return errors.New("'trigger delete' requires the name of the trigger as single argument")
|
||||||
|
}
|
||||||
|
name := args[0]
|
||||||
|
|
||||||
|
namespace, err := p.GetNamespace(cmd)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
eventingClient, err := p.NewEventingClient(namespace)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = eventingClient.DeleteTrigger(name)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
fmt.Fprintf(cmd.OutOrStdout(), "Trigger '%s' deleted in namespace '%s'.\n", args[0], namespace)
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
}
|
||||||
|
commands.AddNamespaceFlags(TriggerDeleteCommand.Flags(), false)
|
||||||
|
return TriggerDeleteCommand
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
// Copyright © 2019 The Knative Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package trigger
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"gotest.tools/assert"
|
||||||
|
eventing_client "knative.dev/client/pkg/eventing/v1alpha1"
|
||||||
|
"knative.dev/client/pkg/util"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestTriggerDelete(t *testing.T) {
|
||||||
|
triggerName := "trigger-12345"
|
||||||
|
|
||||||
|
eventingClient := eventing_client.NewMockKnEventingClient(t)
|
||||||
|
eventingRecorder := eventingClient.Recorder()
|
||||||
|
eventingRecorder.DeleteTrigger(triggerName, nil)
|
||||||
|
|
||||||
|
out, err := executeTriggerCommand(eventingClient, nil, "delete", triggerName)
|
||||||
|
assert.NilError(t, err)
|
||||||
|
util.ContainsAll(out, "deleted", "testns", triggerName)
|
||||||
|
|
||||||
|
eventingRecorder.Validate()
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestTriggerDeleteWithError(t *testing.T) {
|
||||||
|
triggerName := "trigger-12345"
|
||||||
|
|
||||||
|
eventingClient := eventing_client.NewMockKnEventingClient(t)
|
||||||
|
eventingRecorder := eventingClient.Recorder()
|
||||||
|
eventingRecorder.DeleteTrigger(triggerName, errors.New(fmt.Sprintf("trigger %s not found", triggerName)))
|
||||||
|
|
||||||
|
out, err := executeTriggerCommand(eventingClient, nil, "delete", triggerName)
|
||||||
|
assert.ErrorContains(t, err, triggerName)
|
||||||
|
util.ContainsAll(out, "trigger", triggerName, "not found")
|
||||||
|
|
||||||
|
eventingRecorder.Validate()
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,119 @@
|
||||||
|
// Copyright © 2019 The Knative Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package trigger
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
|
"knative.dev/client/pkg/kn/commands"
|
||||||
|
"knative.dev/client/pkg/printers"
|
||||||
|
"knative.dev/eventing/pkg/apis/eventing/v1alpha1"
|
||||||
|
duckv1 "knative.dev/pkg/apis/duck/v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewTriggerDescribeCommand returns a new command for describe a trigger
|
||||||
|
func NewTriggerDescribeCommand(p *commands.KnParams) *cobra.Command {
|
||||||
|
|
||||||
|
triggerDescribe := &cobra.Command{
|
||||||
|
Use: "describe NAME",
|
||||||
|
Short: "Describe a trigger.",
|
||||||
|
Example: `
|
||||||
|
# Describe a trigger with name 'my-trigger'
|
||||||
|
kn trigger describe my-trigger`,
|
||||||
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
if len(args) != 1 {
|
||||||
|
return errors.New("'trigger describe' requires the name of the trigger as single argument")
|
||||||
|
}
|
||||||
|
name := args[0]
|
||||||
|
|
||||||
|
// get namespace
|
||||||
|
namespace, err := p.GetNamespace(cmd)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// get client
|
||||||
|
eventingClient, err := p.NewEventingClient(namespace)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
trigger, err := eventingClient.GetTrigger(name)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
out := cmd.OutOrStdout()
|
||||||
|
dw := printers.NewPrefixWriter(out)
|
||||||
|
|
||||||
|
printDetails, err := cmd.Flags().GetBool("verbose")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
writeTrigger(dw, trigger, printDetails)
|
||||||
|
dw.WriteLine()
|
||||||
|
if err := dw.Flush(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Revisions summary info
|
||||||
|
writeSink(dw, trigger.Spec.Subscriber)
|
||||||
|
dw.WriteLine()
|
||||||
|
if err := dw.Flush(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Condition info
|
||||||
|
commands.WriteConditions(dw, trigger.Status.Conditions, printDetails)
|
||||||
|
if err := dw.Flush(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
}
|
||||||
|
flags := triggerDescribe.Flags()
|
||||||
|
commands.AddNamespaceFlags(flags, false)
|
||||||
|
flags.BoolP("verbose", "v", false, "More output.")
|
||||||
|
|
||||||
|
return triggerDescribe
|
||||||
|
}
|
||||||
|
|
||||||
|
func writeSink(dw printers.PrefixWriter, sink *duckv1.Destination) {
|
||||||
|
subWriter := dw.WriteAttribute("Sink", "")
|
||||||
|
subWriter.WriteAttribute("Name", sink.Ref.Name)
|
||||||
|
subWriter.WriteAttribute("Namespace", sink.Ref.Namespace)
|
||||||
|
ref := sink.Ref
|
||||||
|
if ref != nil {
|
||||||
|
subWriter.WriteAttribute("Resource", fmt.Sprintf("%s (%s)", sink.Ref.Kind, sink.Ref.APIVersion))
|
||||||
|
}
|
||||||
|
uri := sink.URI
|
||||||
|
if uri != nil {
|
||||||
|
subWriter.WriteAttribute("URI", uri.String())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func writeTrigger(dw printers.PrefixWriter, trigger *v1alpha1.Trigger, printDetails bool) {
|
||||||
|
commands.WriteMetadata(dw, &trigger.ObjectMeta, printDetails)
|
||||||
|
dw.WriteAttribute("Broker", trigger.Spec.Broker)
|
||||||
|
subWriter := dw.WriteAttribute("Filter", "")
|
||||||
|
for key, value := range *trigger.Spec.Filter.Attributes {
|
||||||
|
subWriter.WriteAttribute(key, value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,89 @@
|
||||||
|
// Copyright © 2019 The Knative Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package trigger
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"gotest.tools/assert"
|
||||||
|
"gotest.tools/assert/cmp"
|
||||||
|
corev1 "k8s.io/api/core/v1"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
client_v1alpha1 "knative.dev/client/pkg/eventing/v1alpha1"
|
||||||
|
"knative.dev/client/pkg/util"
|
||||||
|
v1alpha1 "knative.dev/eventing/pkg/apis/eventing/v1alpha1"
|
||||||
|
duckv1 "knative.dev/pkg/apis/duck/v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSimpleDescribe(t *testing.T) {
|
||||||
|
client := client_v1alpha1.NewMockKnEventingClient(t, "mynamespace")
|
||||||
|
|
||||||
|
recorder := client.Recorder()
|
||||||
|
recorder.GetTrigger("testtrigger", getTrigger(), nil)
|
||||||
|
|
||||||
|
out, err := executeTriggerCommand(client, nil, "describe", "testtrigger")
|
||||||
|
assert.NilError(t, err)
|
||||||
|
|
||||||
|
assert.Assert(t, cmp.Regexp("Name:\\s+testtrigger", out))
|
||||||
|
assert.Assert(t, cmp.Regexp("Namespace:\\s+default", out))
|
||||||
|
|
||||||
|
assert.Assert(t, util.ContainsAll(out, "Broker:", "mybroker"))
|
||||||
|
assert.Assert(t, util.ContainsAll(out, "Filter:", "type", "foo.type.knative", "source", "src.eventing.knative"))
|
||||||
|
assert.Assert(t, util.ContainsAll(out, "Sink:", "Service", "myservicenamespace", "mysvc"))
|
||||||
|
|
||||||
|
// Validate that all recorded API methods have been called
|
||||||
|
recorder.Validate()
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestDescribeError(t *testing.T) {
|
||||||
|
client := client_v1alpha1.NewMockKnEventingClient(t, "mynamespace")
|
||||||
|
|
||||||
|
recorder := client.Recorder()
|
||||||
|
recorder.GetTrigger("testtrigger", nil, errors.New("triggers.eventing.knative.dev 'testtrigger' not found"))
|
||||||
|
|
||||||
|
_, err := executeTriggerCommand(client, nil, "describe", "testtrigger")
|
||||||
|
assert.ErrorContains(t, err, "testtrigger", "not found")
|
||||||
|
|
||||||
|
recorder.Validate()
|
||||||
|
}
|
||||||
|
|
||||||
|
func getTrigger() *v1alpha1.Trigger {
|
||||||
|
return &v1alpha1.Trigger{
|
||||||
|
TypeMeta: v1.TypeMeta{},
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: "testtrigger",
|
||||||
|
Namespace: "default",
|
||||||
|
},
|
||||||
|
Spec: v1alpha1.TriggerSpec{
|
||||||
|
Broker: "mybroker",
|
||||||
|
Filter: &v1alpha1.TriggerFilter{
|
||||||
|
Attributes: &v1alpha1.TriggerFilterAttributes{
|
||||||
|
"type": "foo.type.knative",
|
||||||
|
"source": "src.eventing.knative",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Subscriber: &duckv1.Destination{
|
||||||
|
Ref: &corev1.ObjectReference{
|
||||||
|
Kind: "Service",
|
||||||
|
Namespace: "myservicenamespace",
|
||||||
|
Name: "mysvc",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Status: v1alpha1.TriggerStatus{},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
// Copyright © 2019 The Knative Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package trigger
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
)
|
||||||
|
|
||||||
|
type filterArray []string
|
||||||
|
|
||||||
|
func (filters *filterArray) String() string {
|
||||||
|
str := ""
|
||||||
|
for _, filter := range *filters {
|
||||||
|
str = str + filter + " "
|
||||||
|
}
|
||||||
|
return str
|
||||||
|
}
|
||||||
|
|
||||||
|
func (filters *filterArray) Set(value string) error {
|
||||||
|
*filters = append(*filters, value)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (filters *filterArray) Type() string {
|
||||||
|
return "[]string"
|
||||||
|
}
|
||||||
|
|
||||||
|
// TriggerUpdateFlags are flags for create and update a trigger
|
||||||
|
type TriggerUpdateFlags struct {
|
||||||
|
Broker string
|
||||||
|
Filters filterArray
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetFilter to return a map type of filters
|
||||||
|
func (f *TriggerUpdateFlags) GetFilters() map[string]string {
|
||||||
|
filters := map[string]string{}
|
||||||
|
for _, item := range f.Filters {
|
||||||
|
parts := strings.Split(item, "=")
|
||||||
|
if len(parts) == 2 {
|
||||||
|
filters[parts[0]] = parts[1]
|
||||||
|
} else {
|
||||||
|
fmt.Printf("Ignore invalid filter %s", f)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return filters
|
||||||
|
}
|
||||||
|
|
||||||
|
//Add is to set parameters
|
||||||
|
func (f *TriggerUpdateFlags) Add(cmd *cobra.Command) {
|
||||||
|
cmd.Flags().StringVar(&f.Broker, "broker", "default", "Name of the Broker which the trigger associates with.")
|
||||||
|
cmd.Flags().Var(&f.Filters, "filter", "Key-value pair for exact CloudEvent attribute matching against incoming events, e.g type=dev.knative.foo")
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
// Copyright © 2019 The Knative Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package trigger
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"gotest.tools/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestGetFilter(t *testing.T) {
|
||||||
|
t.Run("get multiple filters", func(t *testing.T) {
|
||||||
|
createFlag := TriggerUpdateFlags{
|
||||||
|
Filters: filterArray{"type=abc.edf.ghi", "attr=value"},
|
||||||
|
}
|
||||||
|
created := createFlag.GetFilters()
|
||||||
|
wanted := map[string]string{
|
||||||
|
"type": "abc.edf.ghi",
|
||||||
|
"attr": "value",
|
||||||
|
}
|
||||||
|
assert.DeepEqual(t, wanted, created)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
// Copyright © 2019 The Knative Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package trigger
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
|
"knative.dev/client/pkg/kn/commands"
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewTriggerCommand to create trigger command group
|
||||||
|
func NewTriggerCommand(p *commands.KnParams) *cobra.Command {
|
||||||
|
triggerCmd := &cobra.Command{
|
||||||
|
Use: "trigger",
|
||||||
|
Short: "Trigger command group",
|
||||||
|
}
|
||||||
|
triggerCmd.AddCommand(NewTriggerCreateCommand(p))
|
||||||
|
triggerCmd.AddCommand(NewTriggerDeleteCommand(p))
|
||||||
|
triggerCmd.AddCommand(NewTriggerDescribeCommand(p))
|
||||||
|
return triggerCmd
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
// Copyright © 2019 The Knative Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package trigger
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
|
||||||
|
"k8s.io/client-go/tools/clientcmd"
|
||||||
|
|
||||||
|
eventc_v1alpha1 "knative.dev/client/pkg/eventing/v1alpha1"
|
||||||
|
"knative.dev/client/pkg/kn/commands"
|
||||||
|
serving_client_v1alpha1 "knative.dev/client/pkg/serving/v1alpha1"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Helper methods
|
||||||
|
var blankConfig clientcmd.ClientConfig
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
var err error
|
||||||
|
blankConfig, err = clientcmd.NewClientConfigFromBytes([]byte(`kind: Config
|
||||||
|
version: v1
|
||||||
|
users:
|
||||||
|
- name: u
|
||||||
|
clusters:
|
||||||
|
- name: c
|
||||||
|
cluster:
|
||||||
|
server: example.com
|
||||||
|
contexts:
|
||||||
|
- name: x
|
||||||
|
context:
|
||||||
|
user: u
|
||||||
|
cluster: c
|
||||||
|
current-context: x
|
||||||
|
`))
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func executeTriggerCommand(triggerClient eventc_v1alpha1.KnEventingClient, servingClient serving_client_v1alpha1.KnServingClient, args ...string) (string, error) {
|
||||||
|
knParams := &commands.KnParams{}
|
||||||
|
knParams.ClientConfig = blankConfig
|
||||||
|
|
||||||
|
output := new(bytes.Buffer)
|
||||||
|
knParams.Output = output
|
||||||
|
knParams.NewServingClient = func(namespace string) (serving_client_v1alpha1.KnServingClient, error) {
|
||||||
|
return servingClient, nil
|
||||||
|
}
|
||||||
|
knParams.NewEventingClient = func(namespace string) (eventc_v1alpha1.KnEventingClient, error) {
|
||||||
|
return triggerClient, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd := NewTriggerCommand(knParams)
|
||||||
|
cmd.SetArgs(args)
|
||||||
|
cmd.SetOutput(output)
|
||||||
|
|
||||||
|
err := cmd.Execute()
|
||||||
|
|
||||||
|
return output.String(), err
|
||||||
|
}
|
||||||
|
|
@ -24,11 +24,13 @@ import (
|
||||||
"k8s.io/client-go/rest"
|
"k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/tools/clientcmd"
|
"k8s.io/client-go/tools/clientcmd"
|
||||||
"knative.dev/client/pkg/util"
|
"knative.dev/client/pkg/util"
|
||||||
|
eventing "knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1"
|
||||||
eventing_sources "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1alpha1"
|
eventing_sources "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1alpha1"
|
||||||
serving_v1alpha1_client "knative.dev/serving/pkg/client/clientset/versioned/typed/serving/v1alpha1"
|
serving_v1alpha1_client "knative.dev/serving/pkg/client/clientset/versioned/typed/serving/v1alpha1"
|
||||||
|
|
||||||
dynamic_kn "knative.dev/client/pkg/dynamic"
|
dynamic_kn "knative.dev/client/pkg/dynamic"
|
||||||
sources_kn_v1alpha1 "knative.dev/client/pkg/eventing/sources/v1alpha1"
|
sources_kn_v1alpha1 "knative.dev/client/pkg/eventing/sources/v1alpha1"
|
||||||
|
eventing_kn_v1alpha1 "knative.dev/client/pkg/eventing/v1alpha1"
|
||||||
serving_kn_v1alpha1 "knative.dev/client/pkg/serving/v1alpha1"
|
serving_kn_v1alpha1 "knative.dev/client/pkg/serving/v1alpha1"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -51,6 +53,7 @@ type KnParams struct {
|
||||||
ClientConfig clientcmd.ClientConfig
|
ClientConfig clientcmd.ClientConfig
|
||||||
NewServingClient func(namespace string) (serving_kn_v1alpha1.KnServingClient, error)
|
NewServingClient func(namespace string) (serving_kn_v1alpha1.KnServingClient, error)
|
||||||
NewSourcesClient func(namespace string) (sources_kn_v1alpha1.KnSourcesClient, error)
|
NewSourcesClient func(namespace string) (sources_kn_v1alpha1.KnSourcesClient, error)
|
||||||
|
NewEventingClient func(namespace string) (eventing_kn_v1alpha1.KnEventingClient, error)
|
||||||
NewDynamicClient func(namespace string) (dynamic_kn.KnDynamicClient, error)
|
NewDynamicClient func(namespace string) (dynamic_kn.KnDynamicClient, error)
|
||||||
|
|
||||||
// General global options
|
// General global options
|
||||||
|
|
@ -69,6 +72,10 @@ func (params *KnParams) Initialize() {
|
||||||
params.NewSourcesClient = params.newSourcesClient
|
params.NewSourcesClient = params.newSourcesClient
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if params.NewEventingClient == nil {
|
||||||
|
params.NewEventingClient = params.newEventingClient
|
||||||
|
}
|
||||||
|
|
||||||
if params.NewDynamicClient == nil {
|
if params.NewDynamicClient == nil {
|
||||||
params.NewDynamicClient = params.newDynamicClient
|
params.NewDynamicClient = params.newDynamicClient
|
||||||
}
|
}
|
||||||
|
|
@ -94,6 +101,16 @@ func (params *KnParams) newSourcesClient(namespace string) (sources_kn_v1alpha1.
|
||||||
return sources_kn_v1alpha1.NewKnSourcesClient(client, namespace), nil
|
return sources_kn_v1alpha1.NewKnSourcesClient(client, namespace), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (params *KnParams) newEventingClient(namespace string) (eventing_kn_v1alpha1.KnEventingClient, error) {
|
||||||
|
restConfig, err := params.RestConfig()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
client, _ := eventing.NewForConfig(restConfig)
|
||||||
|
return eventing_kn_v1alpha1.NewKnEventingClient(client, namespace), nil
|
||||||
|
}
|
||||||
|
|
||||||
func (params *KnParams) newDynamicClient(namespace string) (dynamic_kn.KnDynamicClient, error) {
|
func (params *KnParams) newDynamicClient(namespace string) (dynamic_kn.KnDynamicClient, error) {
|
||||||
restConfig, err := params.RestConfig()
|
restConfig, err := params.RestConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ import (
|
||||||
"knative.dev/client/pkg/kn/commands/route"
|
"knative.dev/client/pkg/kn/commands/route"
|
||||||
"knative.dev/client/pkg/kn/commands/service"
|
"knative.dev/client/pkg/kn/commands/service"
|
||||||
"knative.dev/client/pkg/kn/commands/source"
|
"knative.dev/client/pkg/kn/commands/source"
|
||||||
|
"knative.dev/client/pkg/kn/commands/trigger"
|
||||||
"knative.dev/client/pkg/kn/commands/version"
|
"knative.dev/client/pkg/kn/commands/version"
|
||||||
"knative.dev/client/pkg/kn/flags"
|
"knative.dev/client/pkg/kn/flags"
|
||||||
)
|
)
|
||||||
|
|
@ -144,6 +145,7 @@ func NewKnCommand(params ...commands.KnParams) *cobra.Command {
|
||||||
rootCmd.AddCommand(completion.NewCompletionCommand(p))
|
rootCmd.AddCommand(completion.NewCompletionCommand(p))
|
||||||
rootCmd.AddCommand(version.NewVersionCommand(p))
|
rootCmd.AddCommand(version.NewVersionCommand(p))
|
||||||
rootCmd.AddCommand(source.NewSourceCommand(p))
|
rootCmd.AddCommand(source.NewSourceCommand(p))
|
||||||
|
rootCmd.AddCommand(trigger.NewTriggerCommand(p))
|
||||||
|
|
||||||
// Deal with empty and unknown sub command groups
|
// Deal with empty and unknown sub command groups
|
||||||
EmptyAndUnknownSubCommands(rootCmd)
|
EmptyAndUnknownSubCommands(rootCmd)
|
||||||
|
|
|
||||||
191
vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/broker.go
vendored
Normal file
191
vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/broker.go
vendored
Normal file
|
|
@ -0,0 +1,191 @@
|
||||||
|
/*
|
||||||
|
Copyright 2019 The Knative Authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by client-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
types "k8s.io/apimachinery/pkg/types"
|
||||||
|
watch "k8s.io/apimachinery/pkg/watch"
|
||||||
|
rest "k8s.io/client-go/rest"
|
||||||
|
v1alpha1 "knative.dev/eventing/pkg/apis/eventing/v1alpha1"
|
||||||
|
scheme "knative.dev/eventing/pkg/client/clientset/versioned/scheme"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BrokersGetter has a method to return a BrokerInterface.
|
||||||
|
// A group's client should implement this interface.
|
||||||
|
type BrokersGetter interface {
|
||||||
|
Brokers(namespace string) BrokerInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
// BrokerInterface has methods to work with Broker resources.
|
||||||
|
type BrokerInterface interface {
|
||||||
|
Create(*v1alpha1.Broker) (*v1alpha1.Broker, error)
|
||||||
|
Update(*v1alpha1.Broker) (*v1alpha1.Broker, error)
|
||||||
|
UpdateStatus(*v1alpha1.Broker) (*v1alpha1.Broker, error)
|
||||||
|
Delete(name string, options *v1.DeleteOptions) error
|
||||||
|
DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error
|
||||||
|
Get(name string, options v1.GetOptions) (*v1alpha1.Broker, error)
|
||||||
|
List(opts v1.ListOptions) (*v1alpha1.BrokerList, error)
|
||||||
|
Watch(opts v1.ListOptions) (watch.Interface, error)
|
||||||
|
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.Broker, err error)
|
||||||
|
BrokerExpansion
|
||||||
|
}
|
||||||
|
|
||||||
|
// brokers implements BrokerInterface
|
||||||
|
type brokers struct {
|
||||||
|
client rest.Interface
|
||||||
|
ns string
|
||||||
|
}
|
||||||
|
|
||||||
|
// newBrokers returns a Brokers
|
||||||
|
func newBrokers(c *EventingV1alpha1Client, namespace string) *brokers {
|
||||||
|
return &brokers{
|
||||||
|
client: c.RESTClient(),
|
||||||
|
ns: namespace,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get takes name of the broker, and returns the corresponding broker object, and an error if there is any.
|
||||||
|
func (c *brokers) Get(name string, options v1.GetOptions) (result *v1alpha1.Broker, err error) {
|
||||||
|
result = &v1alpha1.Broker{}
|
||||||
|
err = c.client.Get().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("brokers").
|
||||||
|
Name(name).
|
||||||
|
VersionedParams(&options, scheme.ParameterCodec).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// List takes label and field selectors, and returns the list of Brokers that match those selectors.
|
||||||
|
func (c *brokers) List(opts v1.ListOptions) (result *v1alpha1.BrokerList, err error) {
|
||||||
|
var timeout time.Duration
|
||||||
|
if opts.TimeoutSeconds != nil {
|
||||||
|
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||||
|
}
|
||||||
|
result = &v1alpha1.BrokerList{}
|
||||||
|
err = c.client.Get().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("brokers").
|
||||||
|
VersionedParams(&opts, scheme.ParameterCodec).
|
||||||
|
Timeout(timeout).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Watch returns a watch.Interface that watches the requested brokers.
|
||||||
|
func (c *brokers) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||||
|
var timeout time.Duration
|
||||||
|
if opts.TimeoutSeconds != nil {
|
||||||
|
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||||
|
}
|
||||||
|
opts.Watch = true
|
||||||
|
return c.client.Get().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("brokers").
|
||||||
|
VersionedParams(&opts, scheme.ParameterCodec).
|
||||||
|
Timeout(timeout).
|
||||||
|
Watch()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create takes the representation of a broker and creates it. Returns the server's representation of the broker, and an error, if there is any.
|
||||||
|
func (c *brokers) Create(broker *v1alpha1.Broker) (result *v1alpha1.Broker, err error) {
|
||||||
|
result = &v1alpha1.Broker{}
|
||||||
|
err = c.client.Post().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("brokers").
|
||||||
|
Body(broker).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update takes the representation of a broker and updates it. Returns the server's representation of the broker, and an error, if there is any.
|
||||||
|
func (c *brokers) Update(broker *v1alpha1.Broker) (result *v1alpha1.Broker, err error) {
|
||||||
|
result = &v1alpha1.Broker{}
|
||||||
|
err = c.client.Put().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("brokers").
|
||||||
|
Name(broker.Name).
|
||||||
|
Body(broker).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateStatus was generated because the type contains a Status member.
|
||||||
|
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
||||||
|
|
||||||
|
func (c *brokers) UpdateStatus(broker *v1alpha1.Broker) (result *v1alpha1.Broker, err error) {
|
||||||
|
result = &v1alpha1.Broker{}
|
||||||
|
err = c.client.Put().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("brokers").
|
||||||
|
Name(broker.Name).
|
||||||
|
SubResource("status").
|
||||||
|
Body(broker).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete takes name of the broker and deletes it. Returns an error if one occurs.
|
||||||
|
func (c *brokers) Delete(name string, options *v1.DeleteOptions) error {
|
||||||
|
return c.client.Delete().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("brokers").
|
||||||
|
Name(name).
|
||||||
|
Body(options).
|
||||||
|
Do().
|
||||||
|
Error()
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteCollection deletes a collection of objects.
|
||||||
|
func (c *brokers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||||
|
var timeout time.Duration
|
||||||
|
if listOptions.TimeoutSeconds != nil {
|
||||||
|
timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
|
||||||
|
}
|
||||||
|
return c.client.Delete().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("brokers").
|
||||||
|
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||||
|
Timeout(timeout).
|
||||||
|
Body(options).
|
||||||
|
Do().
|
||||||
|
Error()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Patch applies the patch and returns the patched broker.
|
||||||
|
func (c *brokers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.Broker, err error) {
|
||||||
|
result = &v1alpha1.Broker{}
|
||||||
|
err = c.client.Patch(pt).
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("brokers").
|
||||||
|
SubResource(subresources...).
|
||||||
|
Name(name).
|
||||||
|
Body(data).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
20
vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/doc.go
vendored
Normal file
20
vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/doc.go
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
/*
|
||||||
|
Copyright 2019 The Knative Authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by client-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
// This package has the automatically generated typed clients.
|
||||||
|
package v1alpha1
|
||||||
|
|
@ -0,0 +1,99 @@
|
||||||
|
/*
|
||||||
|
Copyright 2019 The Knative Authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by client-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
rest "k8s.io/client-go/rest"
|
||||||
|
v1alpha1 "knative.dev/eventing/pkg/apis/eventing/v1alpha1"
|
||||||
|
"knative.dev/eventing/pkg/client/clientset/versioned/scheme"
|
||||||
|
)
|
||||||
|
|
||||||
|
type EventingV1alpha1Interface interface {
|
||||||
|
RESTClient() rest.Interface
|
||||||
|
BrokersGetter
|
||||||
|
EventTypesGetter
|
||||||
|
TriggersGetter
|
||||||
|
}
|
||||||
|
|
||||||
|
// EventingV1alpha1Client is used to interact with features provided by the eventing.knative.dev group.
|
||||||
|
type EventingV1alpha1Client struct {
|
||||||
|
restClient rest.Interface
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *EventingV1alpha1Client) Brokers(namespace string) BrokerInterface {
|
||||||
|
return newBrokers(c, namespace)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *EventingV1alpha1Client) EventTypes(namespace string) EventTypeInterface {
|
||||||
|
return newEventTypes(c, namespace)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *EventingV1alpha1Client) Triggers(namespace string) TriggerInterface {
|
||||||
|
return newTriggers(c, namespace)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewForConfig creates a new EventingV1alpha1Client for the given config.
|
||||||
|
func NewForConfig(c *rest.Config) (*EventingV1alpha1Client, error) {
|
||||||
|
config := *c
|
||||||
|
if err := setConfigDefaults(&config); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
client, err := rest.RESTClientFor(&config)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &EventingV1alpha1Client{client}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewForConfigOrDie creates a new EventingV1alpha1Client for the given config and
|
||||||
|
// panics if there is an error in the config.
|
||||||
|
func NewForConfigOrDie(c *rest.Config) *EventingV1alpha1Client {
|
||||||
|
client, err := NewForConfig(c)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
return client
|
||||||
|
}
|
||||||
|
|
||||||
|
// New creates a new EventingV1alpha1Client for the given RESTClient.
|
||||||
|
func New(c rest.Interface) *EventingV1alpha1Client {
|
||||||
|
return &EventingV1alpha1Client{c}
|
||||||
|
}
|
||||||
|
|
||||||
|
func setConfigDefaults(config *rest.Config) error {
|
||||||
|
gv := v1alpha1.SchemeGroupVersion
|
||||||
|
config.GroupVersion = &gv
|
||||||
|
config.APIPath = "/apis"
|
||||||
|
config.NegotiatedSerializer = scheme.Codecs.WithoutConversion()
|
||||||
|
|
||||||
|
if config.UserAgent == "" {
|
||||||
|
config.UserAgent = rest.DefaultKubernetesUserAgent()
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// RESTClient returns a RESTClient that is used to communicate
|
||||||
|
// with API server by this client implementation.
|
||||||
|
func (c *EventingV1alpha1Client) RESTClient() rest.Interface {
|
||||||
|
if c == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return c.restClient
|
||||||
|
}
|
||||||
191
vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/eventtype.go
vendored
Normal file
191
vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/eventtype.go
vendored
Normal file
|
|
@ -0,0 +1,191 @@
|
||||||
|
/*
|
||||||
|
Copyright 2019 The Knative Authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by client-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
types "k8s.io/apimachinery/pkg/types"
|
||||||
|
watch "k8s.io/apimachinery/pkg/watch"
|
||||||
|
rest "k8s.io/client-go/rest"
|
||||||
|
v1alpha1 "knative.dev/eventing/pkg/apis/eventing/v1alpha1"
|
||||||
|
scheme "knative.dev/eventing/pkg/client/clientset/versioned/scheme"
|
||||||
|
)
|
||||||
|
|
||||||
|
// EventTypesGetter has a method to return a EventTypeInterface.
|
||||||
|
// A group's client should implement this interface.
|
||||||
|
type EventTypesGetter interface {
|
||||||
|
EventTypes(namespace string) EventTypeInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
// EventTypeInterface has methods to work with EventType resources.
|
||||||
|
type EventTypeInterface interface {
|
||||||
|
Create(*v1alpha1.EventType) (*v1alpha1.EventType, error)
|
||||||
|
Update(*v1alpha1.EventType) (*v1alpha1.EventType, error)
|
||||||
|
UpdateStatus(*v1alpha1.EventType) (*v1alpha1.EventType, error)
|
||||||
|
Delete(name string, options *v1.DeleteOptions) error
|
||||||
|
DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error
|
||||||
|
Get(name string, options v1.GetOptions) (*v1alpha1.EventType, error)
|
||||||
|
List(opts v1.ListOptions) (*v1alpha1.EventTypeList, error)
|
||||||
|
Watch(opts v1.ListOptions) (watch.Interface, error)
|
||||||
|
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.EventType, err error)
|
||||||
|
EventTypeExpansion
|
||||||
|
}
|
||||||
|
|
||||||
|
// eventTypes implements EventTypeInterface
|
||||||
|
type eventTypes struct {
|
||||||
|
client rest.Interface
|
||||||
|
ns string
|
||||||
|
}
|
||||||
|
|
||||||
|
// newEventTypes returns a EventTypes
|
||||||
|
func newEventTypes(c *EventingV1alpha1Client, namespace string) *eventTypes {
|
||||||
|
return &eventTypes{
|
||||||
|
client: c.RESTClient(),
|
||||||
|
ns: namespace,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get takes name of the eventType, and returns the corresponding eventType object, and an error if there is any.
|
||||||
|
func (c *eventTypes) Get(name string, options v1.GetOptions) (result *v1alpha1.EventType, err error) {
|
||||||
|
result = &v1alpha1.EventType{}
|
||||||
|
err = c.client.Get().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("eventtypes").
|
||||||
|
Name(name).
|
||||||
|
VersionedParams(&options, scheme.ParameterCodec).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// List takes label and field selectors, and returns the list of EventTypes that match those selectors.
|
||||||
|
func (c *eventTypes) List(opts v1.ListOptions) (result *v1alpha1.EventTypeList, err error) {
|
||||||
|
var timeout time.Duration
|
||||||
|
if opts.TimeoutSeconds != nil {
|
||||||
|
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||||
|
}
|
||||||
|
result = &v1alpha1.EventTypeList{}
|
||||||
|
err = c.client.Get().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("eventtypes").
|
||||||
|
VersionedParams(&opts, scheme.ParameterCodec).
|
||||||
|
Timeout(timeout).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Watch returns a watch.Interface that watches the requested eventTypes.
|
||||||
|
func (c *eventTypes) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||||
|
var timeout time.Duration
|
||||||
|
if opts.TimeoutSeconds != nil {
|
||||||
|
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||||
|
}
|
||||||
|
opts.Watch = true
|
||||||
|
return c.client.Get().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("eventtypes").
|
||||||
|
VersionedParams(&opts, scheme.ParameterCodec).
|
||||||
|
Timeout(timeout).
|
||||||
|
Watch()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create takes the representation of a eventType and creates it. Returns the server's representation of the eventType, and an error, if there is any.
|
||||||
|
func (c *eventTypes) Create(eventType *v1alpha1.EventType) (result *v1alpha1.EventType, err error) {
|
||||||
|
result = &v1alpha1.EventType{}
|
||||||
|
err = c.client.Post().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("eventtypes").
|
||||||
|
Body(eventType).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update takes the representation of a eventType and updates it. Returns the server's representation of the eventType, and an error, if there is any.
|
||||||
|
func (c *eventTypes) Update(eventType *v1alpha1.EventType) (result *v1alpha1.EventType, err error) {
|
||||||
|
result = &v1alpha1.EventType{}
|
||||||
|
err = c.client.Put().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("eventtypes").
|
||||||
|
Name(eventType.Name).
|
||||||
|
Body(eventType).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateStatus was generated because the type contains a Status member.
|
||||||
|
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
||||||
|
|
||||||
|
func (c *eventTypes) UpdateStatus(eventType *v1alpha1.EventType) (result *v1alpha1.EventType, err error) {
|
||||||
|
result = &v1alpha1.EventType{}
|
||||||
|
err = c.client.Put().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("eventtypes").
|
||||||
|
Name(eventType.Name).
|
||||||
|
SubResource("status").
|
||||||
|
Body(eventType).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete takes name of the eventType and deletes it. Returns an error if one occurs.
|
||||||
|
func (c *eventTypes) Delete(name string, options *v1.DeleteOptions) error {
|
||||||
|
return c.client.Delete().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("eventtypes").
|
||||||
|
Name(name).
|
||||||
|
Body(options).
|
||||||
|
Do().
|
||||||
|
Error()
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteCollection deletes a collection of objects.
|
||||||
|
func (c *eventTypes) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||||
|
var timeout time.Duration
|
||||||
|
if listOptions.TimeoutSeconds != nil {
|
||||||
|
timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
|
||||||
|
}
|
||||||
|
return c.client.Delete().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("eventtypes").
|
||||||
|
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||||
|
Timeout(timeout).
|
||||||
|
Body(options).
|
||||||
|
Do().
|
||||||
|
Error()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Patch applies the patch and returns the patched eventType.
|
||||||
|
func (c *eventTypes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.EventType, err error) {
|
||||||
|
result = &v1alpha1.EventType{}
|
||||||
|
err = c.client.Patch(pt).
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("eventtypes").
|
||||||
|
SubResource(subresources...).
|
||||||
|
Name(name).
|
||||||
|
Body(data).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
20
vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/fake/doc.go
vendored
Normal file
20
vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/fake/doc.go
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
/*
|
||||||
|
Copyright 2019 The Knative Authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by client-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
// Package fake has the automatically generated clients.
|
||||||
|
package fake
|
||||||
|
|
@ -0,0 +1,140 @@
|
||||||
|
/*
|
||||||
|
Copyright 2019 The Knative Authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by client-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package fake
|
||||||
|
|
||||||
|
import (
|
||||||
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
labels "k8s.io/apimachinery/pkg/labels"
|
||||||
|
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
types "k8s.io/apimachinery/pkg/types"
|
||||||
|
watch "k8s.io/apimachinery/pkg/watch"
|
||||||
|
testing "k8s.io/client-go/testing"
|
||||||
|
v1alpha1 "knative.dev/eventing/pkg/apis/eventing/v1alpha1"
|
||||||
|
)
|
||||||
|
|
||||||
|
// FakeBrokers implements BrokerInterface
|
||||||
|
type FakeBrokers struct {
|
||||||
|
Fake *FakeEventingV1alpha1
|
||||||
|
ns string
|
||||||
|
}
|
||||||
|
|
||||||
|
var brokersResource = schema.GroupVersionResource{Group: "eventing.knative.dev", Version: "v1alpha1", Resource: "brokers"}
|
||||||
|
|
||||||
|
var brokersKind = schema.GroupVersionKind{Group: "eventing.knative.dev", Version: "v1alpha1", Kind: "Broker"}
|
||||||
|
|
||||||
|
// Get takes name of the broker, and returns the corresponding broker object, and an error if there is any.
|
||||||
|
func (c *FakeBrokers) Get(name string, options v1.GetOptions) (result *v1alpha1.Broker, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewGetAction(brokersResource, c.ns, name), &v1alpha1.Broker{})
|
||||||
|
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*v1alpha1.Broker), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// List takes label and field selectors, and returns the list of Brokers that match those selectors.
|
||||||
|
func (c *FakeBrokers) List(opts v1.ListOptions) (result *v1alpha1.BrokerList, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewListAction(brokersResource, brokersKind, c.ns, opts), &v1alpha1.BrokerList{})
|
||||||
|
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
label, _, _ := testing.ExtractFromListOptions(opts)
|
||||||
|
if label == nil {
|
||||||
|
label = labels.Everything()
|
||||||
|
}
|
||||||
|
list := &v1alpha1.BrokerList{ListMeta: obj.(*v1alpha1.BrokerList).ListMeta}
|
||||||
|
for _, item := range obj.(*v1alpha1.BrokerList).Items {
|
||||||
|
if label.Matches(labels.Set(item.Labels)) {
|
||||||
|
list.Items = append(list.Items, item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Watch returns a watch.Interface that watches the requested brokers.
|
||||||
|
func (c *FakeBrokers) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||||
|
return c.Fake.
|
||||||
|
InvokesWatch(testing.NewWatchAction(brokersResource, c.ns, opts))
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create takes the representation of a broker and creates it. Returns the server's representation of the broker, and an error, if there is any.
|
||||||
|
func (c *FakeBrokers) Create(broker *v1alpha1.Broker) (result *v1alpha1.Broker, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewCreateAction(brokersResource, c.ns, broker), &v1alpha1.Broker{})
|
||||||
|
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*v1alpha1.Broker), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update takes the representation of a broker and updates it. Returns the server's representation of the broker, and an error, if there is any.
|
||||||
|
func (c *FakeBrokers) Update(broker *v1alpha1.Broker) (result *v1alpha1.Broker, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewUpdateAction(brokersResource, c.ns, broker), &v1alpha1.Broker{})
|
||||||
|
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*v1alpha1.Broker), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateStatus was generated because the type contains a Status member.
|
||||||
|
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
||||||
|
func (c *FakeBrokers) UpdateStatus(broker *v1alpha1.Broker) (*v1alpha1.Broker, error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewUpdateSubresourceAction(brokersResource, "status", c.ns, broker), &v1alpha1.Broker{})
|
||||||
|
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*v1alpha1.Broker), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete takes name of the broker and deletes it. Returns an error if one occurs.
|
||||||
|
func (c *FakeBrokers) Delete(name string, options *v1.DeleteOptions) error {
|
||||||
|
_, err := c.Fake.
|
||||||
|
Invokes(testing.NewDeleteAction(brokersResource, c.ns, name), &v1alpha1.Broker{})
|
||||||
|
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteCollection deletes a collection of objects.
|
||||||
|
func (c *FakeBrokers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||||
|
action := testing.NewDeleteCollectionAction(brokersResource, c.ns, listOptions)
|
||||||
|
|
||||||
|
_, err := c.Fake.Invokes(action, &v1alpha1.BrokerList{})
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Patch applies the patch and returns the patched broker.
|
||||||
|
func (c *FakeBrokers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.Broker, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewPatchSubresourceAction(brokersResource, c.ns, name, pt, data, subresources...), &v1alpha1.Broker{})
|
||||||
|
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*v1alpha1.Broker), err
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
/*
|
||||||
|
Copyright 2019 The Knative Authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by client-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package fake
|
||||||
|
|
||||||
|
import (
|
||||||
|
rest "k8s.io/client-go/rest"
|
||||||
|
testing "k8s.io/client-go/testing"
|
||||||
|
v1alpha1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1"
|
||||||
|
)
|
||||||
|
|
||||||
|
type FakeEventingV1alpha1 struct {
|
||||||
|
*testing.Fake
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *FakeEventingV1alpha1) Brokers(namespace string) v1alpha1.BrokerInterface {
|
||||||
|
return &FakeBrokers{c, namespace}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *FakeEventingV1alpha1) EventTypes(namespace string) v1alpha1.EventTypeInterface {
|
||||||
|
return &FakeEventTypes{c, namespace}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *FakeEventingV1alpha1) Triggers(namespace string) v1alpha1.TriggerInterface {
|
||||||
|
return &FakeTriggers{c, namespace}
|
||||||
|
}
|
||||||
|
|
||||||
|
// RESTClient returns a RESTClient that is used to communicate
|
||||||
|
// with API server by this client implementation.
|
||||||
|
func (c *FakeEventingV1alpha1) RESTClient() rest.Interface {
|
||||||
|
var ret *rest.RESTClient
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,140 @@
|
||||||
|
/*
|
||||||
|
Copyright 2019 The Knative Authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by client-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package fake
|
||||||
|
|
||||||
|
import (
|
||||||
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
labels "k8s.io/apimachinery/pkg/labels"
|
||||||
|
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
types "k8s.io/apimachinery/pkg/types"
|
||||||
|
watch "k8s.io/apimachinery/pkg/watch"
|
||||||
|
testing "k8s.io/client-go/testing"
|
||||||
|
v1alpha1 "knative.dev/eventing/pkg/apis/eventing/v1alpha1"
|
||||||
|
)
|
||||||
|
|
||||||
|
// FakeEventTypes implements EventTypeInterface
|
||||||
|
type FakeEventTypes struct {
|
||||||
|
Fake *FakeEventingV1alpha1
|
||||||
|
ns string
|
||||||
|
}
|
||||||
|
|
||||||
|
var eventtypesResource = schema.GroupVersionResource{Group: "eventing.knative.dev", Version: "v1alpha1", Resource: "eventtypes"}
|
||||||
|
|
||||||
|
var eventtypesKind = schema.GroupVersionKind{Group: "eventing.knative.dev", Version: "v1alpha1", Kind: "EventType"}
|
||||||
|
|
||||||
|
// Get takes name of the eventType, and returns the corresponding eventType object, and an error if there is any.
|
||||||
|
func (c *FakeEventTypes) Get(name string, options v1.GetOptions) (result *v1alpha1.EventType, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewGetAction(eventtypesResource, c.ns, name), &v1alpha1.EventType{})
|
||||||
|
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*v1alpha1.EventType), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// List takes label and field selectors, and returns the list of EventTypes that match those selectors.
|
||||||
|
func (c *FakeEventTypes) List(opts v1.ListOptions) (result *v1alpha1.EventTypeList, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewListAction(eventtypesResource, eventtypesKind, c.ns, opts), &v1alpha1.EventTypeList{})
|
||||||
|
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
label, _, _ := testing.ExtractFromListOptions(opts)
|
||||||
|
if label == nil {
|
||||||
|
label = labels.Everything()
|
||||||
|
}
|
||||||
|
list := &v1alpha1.EventTypeList{ListMeta: obj.(*v1alpha1.EventTypeList).ListMeta}
|
||||||
|
for _, item := range obj.(*v1alpha1.EventTypeList).Items {
|
||||||
|
if label.Matches(labels.Set(item.Labels)) {
|
||||||
|
list.Items = append(list.Items, item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Watch returns a watch.Interface that watches the requested eventTypes.
|
||||||
|
func (c *FakeEventTypes) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||||
|
return c.Fake.
|
||||||
|
InvokesWatch(testing.NewWatchAction(eventtypesResource, c.ns, opts))
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create takes the representation of a eventType and creates it. Returns the server's representation of the eventType, and an error, if there is any.
|
||||||
|
func (c *FakeEventTypes) Create(eventType *v1alpha1.EventType) (result *v1alpha1.EventType, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewCreateAction(eventtypesResource, c.ns, eventType), &v1alpha1.EventType{})
|
||||||
|
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*v1alpha1.EventType), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update takes the representation of a eventType and updates it. Returns the server's representation of the eventType, and an error, if there is any.
|
||||||
|
func (c *FakeEventTypes) Update(eventType *v1alpha1.EventType) (result *v1alpha1.EventType, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewUpdateAction(eventtypesResource, c.ns, eventType), &v1alpha1.EventType{})
|
||||||
|
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*v1alpha1.EventType), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateStatus was generated because the type contains a Status member.
|
||||||
|
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
||||||
|
func (c *FakeEventTypes) UpdateStatus(eventType *v1alpha1.EventType) (*v1alpha1.EventType, error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewUpdateSubresourceAction(eventtypesResource, "status", c.ns, eventType), &v1alpha1.EventType{})
|
||||||
|
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*v1alpha1.EventType), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete takes name of the eventType and deletes it. Returns an error if one occurs.
|
||||||
|
func (c *FakeEventTypes) Delete(name string, options *v1.DeleteOptions) error {
|
||||||
|
_, err := c.Fake.
|
||||||
|
Invokes(testing.NewDeleteAction(eventtypesResource, c.ns, name), &v1alpha1.EventType{})
|
||||||
|
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteCollection deletes a collection of objects.
|
||||||
|
func (c *FakeEventTypes) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||||
|
action := testing.NewDeleteCollectionAction(eventtypesResource, c.ns, listOptions)
|
||||||
|
|
||||||
|
_, err := c.Fake.Invokes(action, &v1alpha1.EventTypeList{})
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Patch applies the patch and returns the patched eventType.
|
||||||
|
func (c *FakeEventTypes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.EventType, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewPatchSubresourceAction(eventtypesResource, c.ns, name, pt, data, subresources...), &v1alpha1.EventType{})
|
||||||
|
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*v1alpha1.EventType), err
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,140 @@
|
||||||
|
/*
|
||||||
|
Copyright 2019 The Knative Authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by client-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package fake
|
||||||
|
|
||||||
|
import (
|
||||||
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
labels "k8s.io/apimachinery/pkg/labels"
|
||||||
|
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
types "k8s.io/apimachinery/pkg/types"
|
||||||
|
watch "k8s.io/apimachinery/pkg/watch"
|
||||||
|
testing "k8s.io/client-go/testing"
|
||||||
|
v1alpha1 "knative.dev/eventing/pkg/apis/eventing/v1alpha1"
|
||||||
|
)
|
||||||
|
|
||||||
|
// FakeTriggers implements TriggerInterface
|
||||||
|
type FakeTriggers struct {
|
||||||
|
Fake *FakeEventingV1alpha1
|
||||||
|
ns string
|
||||||
|
}
|
||||||
|
|
||||||
|
var triggersResource = schema.GroupVersionResource{Group: "eventing.knative.dev", Version: "v1alpha1", Resource: "triggers"}
|
||||||
|
|
||||||
|
var triggersKind = schema.GroupVersionKind{Group: "eventing.knative.dev", Version: "v1alpha1", Kind: "Trigger"}
|
||||||
|
|
||||||
|
// Get takes name of the trigger, and returns the corresponding trigger object, and an error if there is any.
|
||||||
|
func (c *FakeTriggers) Get(name string, options v1.GetOptions) (result *v1alpha1.Trigger, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewGetAction(triggersResource, c.ns, name), &v1alpha1.Trigger{})
|
||||||
|
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*v1alpha1.Trigger), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// List takes label and field selectors, and returns the list of Triggers that match those selectors.
|
||||||
|
func (c *FakeTriggers) List(opts v1.ListOptions) (result *v1alpha1.TriggerList, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewListAction(triggersResource, triggersKind, c.ns, opts), &v1alpha1.TriggerList{})
|
||||||
|
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
label, _, _ := testing.ExtractFromListOptions(opts)
|
||||||
|
if label == nil {
|
||||||
|
label = labels.Everything()
|
||||||
|
}
|
||||||
|
list := &v1alpha1.TriggerList{ListMeta: obj.(*v1alpha1.TriggerList).ListMeta}
|
||||||
|
for _, item := range obj.(*v1alpha1.TriggerList).Items {
|
||||||
|
if label.Matches(labels.Set(item.Labels)) {
|
||||||
|
list.Items = append(list.Items, item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Watch returns a watch.Interface that watches the requested triggers.
|
||||||
|
func (c *FakeTriggers) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||||
|
return c.Fake.
|
||||||
|
InvokesWatch(testing.NewWatchAction(triggersResource, c.ns, opts))
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create takes the representation of a trigger and creates it. Returns the server's representation of the trigger, and an error, if there is any.
|
||||||
|
func (c *FakeTriggers) Create(trigger *v1alpha1.Trigger) (result *v1alpha1.Trigger, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewCreateAction(triggersResource, c.ns, trigger), &v1alpha1.Trigger{})
|
||||||
|
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*v1alpha1.Trigger), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update takes the representation of a trigger and updates it. Returns the server's representation of the trigger, and an error, if there is any.
|
||||||
|
func (c *FakeTriggers) Update(trigger *v1alpha1.Trigger) (result *v1alpha1.Trigger, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewUpdateAction(triggersResource, c.ns, trigger), &v1alpha1.Trigger{})
|
||||||
|
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*v1alpha1.Trigger), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateStatus was generated because the type contains a Status member.
|
||||||
|
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
||||||
|
func (c *FakeTriggers) UpdateStatus(trigger *v1alpha1.Trigger) (*v1alpha1.Trigger, error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewUpdateSubresourceAction(triggersResource, "status", c.ns, trigger), &v1alpha1.Trigger{})
|
||||||
|
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*v1alpha1.Trigger), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete takes name of the trigger and deletes it. Returns an error if one occurs.
|
||||||
|
func (c *FakeTriggers) Delete(name string, options *v1.DeleteOptions) error {
|
||||||
|
_, err := c.Fake.
|
||||||
|
Invokes(testing.NewDeleteAction(triggersResource, c.ns, name), &v1alpha1.Trigger{})
|
||||||
|
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteCollection deletes a collection of objects.
|
||||||
|
func (c *FakeTriggers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||||
|
action := testing.NewDeleteCollectionAction(triggersResource, c.ns, listOptions)
|
||||||
|
|
||||||
|
_, err := c.Fake.Invokes(action, &v1alpha1.TriggerList{})
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Patch applies the patch and returns the patched trigger.
|
||||||
|
func (c *FakeTriggers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.Trigger, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewPatchSubresourceAction(triggersResource, c.ns, name, pt, data, subresources...), &v1alpha1.Trigger{})
|
||||||
|
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*v1alpha1.Trigger), err
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright 2019 The Knative Authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by client-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
type BrokerExpansion interface{}
|
||||||
|
|
||||||
|
type EventTypeExpansion interface{}
|
||||||
|
|
||||||
|
type TriggerExpansion interface{}
|
||||||
191
vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/trigger.go
vendored
Normal file
191
vendor/knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/trigger.go
vendored
Normal file
|
|
@ -0,0 +1,191 @@
|
||||||
|
/*
|
||||||
|
Copyright 2019 The Knative Authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by client-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
types "k8s.io/apimachinery/pkg/types"
|
||||||
|
watch "k8s.io/apimachinery/pkg/watch"
|
||||||
|
rest "k8s.io/client-go/rest"
|
||||||
|
v1alpha1 "knative.dev/eventing/pkg/apis/eventing/v1alpha1"
|
||||||
|
scheme "knative.dev/eventing/pkg/client/clientset/versioned/scheme"
|
||||||
|
)
|
||||||
|
|
||||||
|
// TriggersGetter has a method to return a TriggerInterface.
|
||||||
|
// A group's client should implement this interface.
|
||||||
|
type TriggersGetter interface {
|
||||||
|
Triggers(namespace string) TriggerInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
// TriggerInterface has methods to work with Trigger resources.
|
||||||
|
type TriggerInterface interface {
|
||||||
|
Create(*v1alpha1.Trigger) (*v1alpha1.Trigger, error)
|
||||||
|
Update(*v1alpha1.Trigger) (*v1alpha1.Trigger, error)
|
||||||
|
UpdateStatus(*v1alpha1.Trigger) (*v1alpha1.Trigger, error)
|
||||||
|
Delete(name string, options *v1.DeleteOptions) error
|
||||||
|
DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error
|
||||||
|
Get(name string, options v1.GetOptions) (*v1alpha1.Trigger, error)
|
||||||
|
List(opts v1.ListOptions) (*v1alpha1.TriggerList, error)
|
||||||
|
Watch(opts v1.ListOptions) (watch.Interface, error)
|
||||||
|
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.Trigger, err error)
|
||||||
|
TriggerExpansion
|
||||||
|
}
|
||||||
|
|
||||||
|
// triggers implements TriggerInterface
|
||||||
|
type triggers struct {
|
||||||
|
client rest.Interface
|
||||||
|
ns string
|
||||||
|
}
|
||||||
|
|
||||||
|
// newTriggers returns a Triggers
|
||||||
|
func newTriggers(c *EventingV1alpha1Client, namespace string) *triggers {
|
||||||
|
return &triggers{
|
||||||
|
client: c.RESTClient(),
|
||||||
|
ns: namespace,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get takes name of the trigger, and returns the corresponding trigger object, and an error if there is any.
|
||||||
|
func (c *triggers) Get(name string, options v1.GetOptions) (result *v1alpha1.Trigger, err error) {
|
||||||
|
result = &v1alpha1.Trigger{}
|
||||||
|
err = c.client.Get().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("triggers").
|
||||||
|
Name(name).
|
||||||
|
VersionedParams(&options, scheme.ParameterCodec).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// List takes label and field selectors, and returns the list of Triggers that match those selectors.
|
||||||
|
func (c *triggers) List(opts v1.ListOptions) (result *v1alpha1.TriggerList, err error) {
|
||||||
|
var timeout time.Duration
|
||||||
|
if opts.TimeoutSeconds != nil {
|
||||||
|
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||||
|
}
|
||||||
|
result = &v1alpha1.TriggerList{}
|
||||||
|
err = c.client.Get().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("triggers").
|
||||||
|
VersionedParams(&opts, scheme.ParameterCodec).
|
||||||
|
Timeout(timeout).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Watch returns a watch.Interface that watches the requested triggers.
|
||||||
|
func (c *triggers) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||||
|
var timeout time.Duration
|
||||||
|
if opts.TimeoutSeconds != nil {
|
||||||
|
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||||
|
}
|
||||||
|
opts.Watch = true
|
||||||
|
return c.client.Get().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("triggers").
|
||||||
|
VersionedParams(&opts, scheme.ParameterCodec).
|
||||||
|
Timeout(timeout).
|
||||||
|
Watch()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create takes the representation of a trigger and creates it. Returns the server's representation of the trigger, and an error, if there is any.
|
||||||
|
func (c *triggers) Create(trigger *v1alpha1.Trigger) (result *v1alpha1.Trigger, err error) {
|
||||||
|
result = &v1alpha1.Trigger{}
|
||||||
|
err = c.client.Post().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("triggers").
|
||||||
|
Body(trigger).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update takes the representation of a trigger and updates it. Returns the server's representation of the trigger, and an error, if there is any.
|
||||||
|
func (c *triggers) Update(trigger *v1alpha1.Trigger) (result *v1alpha1.Trigger, err error) {
|
||||||
|
result = &v1alpha1.Trigger{}
|
||||||
|
err = c.client.Put().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("triggers").
|
||||||
|
Name(trigger.Name).
|
||||||
|
Body(trigger).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateStatus was generated because the type contains a Status member.
|
||||||
|
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
||||||
|
|
||||||
|
func (c *triggers) UpdateStatus(trigger *v1alpha1.Trigger) (result *v1alpha1.Trigger, err error) {
|
||||||
|
result = &v1alpha1.Trigger{}
|
||||||
|
err = c.client.Put().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("triggers").
|
||||||
|
Name(trigger.Name).
|
||||||
|
SubResource("status").
|
||||||
|
Body(trigger).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete takes name of the trigger and deletes it. Returns an error if one occurs.
|
||||||
|
func (c *triggers) Delete(name string, options *v1.DeleteOptions) error {
|
||||||
|
return c.client.Delete().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("triggers").
|
||||||
|
Name(name).
|
||||||
|
Body(options).
|
||||||
|
Do().
|
||||||
|
Error()
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteCollection deletes a collection of objects.
|
||||||
|
func (c *triggers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||||
|
var timeout time.Duration
|
||||||
|
if listOptions.TimeoutSeconds != nil {
|
||||||
|
timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
|
||||||
|
}
|
||||||
|
return c.client.Delete().
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("triggers").
|
||||||
|
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||||
|
Timeout(timeout).
|
||||||
|
Body(options).
|
||||||
|
Do().
|
||||||
|
Error()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Patch applies the patch and returns the patched trigger.
|
||||||
|
func (c *triggers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.Trigger, err error) {
|
||||||
|
result = &v1alpha1.Trigger{}
|
||||||
|
err = c.client.Patch(pt).
|
||||||
|
Namespace(c.ns).
|
||||||
|
Resource("triggers").
|
||||||
|
SubResource(subresources...).
|
||||||
|
Name(name).
|
||||||
|
Body(data).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
@ -627,6 +627,8 @@ knative.dev/eventing/pkg/apis/messaging/v1alpha1
|
||||||
knative.dev/eventing/pkg/apis/sources
|
knative.dev/eventing/pkg/apis/sources
|
||||||
knative.dev/eventing/pkg/apis/sources/v1alpha1
|
knative.dev/eventing/pkg/apis/sources/v1alpha1
|
||||||
knative.dev/eventing/pkg/client/clientset/versioned/scheme
|
knative.dev/eventing/pkg/client/clientset/versioned/scheme
|
||||||
|
knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1
|
||||||
|
knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/fake
|
||||||
knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1alpha1
|
knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1alpha1
|
||||||
knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1alpha1/fake
|
knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1alpha1/fake
|
||||||
knative.dev/eventing/pkg/logging
|
knative.dev/eventing/pkg/logging
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue