mirror of https://github.com/knative/client.git
fix(trigger): Make --filter flag truly optional (#745)
* fix(trigger): Make --filter flag truly optional * fix(trigger): Update trigger docs * chore: Update changelog
This commit is contained in:
parent
a858a25135
commit
58ee9c4788
|
|
@ -12,6 +12,16 @@
|
||||||
| https://github.com/knative/client/pull/[#]
|
| https://github.com/knative/client/pull/[#]
|
||||||
////
|
////
|
||||||
|
|
||||||
|
## v0.14.0 (unreleased)
|
||||||
|
|
||||||
|
[cols="1,10,3", options="header", width="100%"]
|
||||||
|
|===
|
||||||
|
| | Description | PR
|
||||||
|
|
||||||
|
| 🐛
|
||||||
|
| Fix trigger create --filter flag to be optional
|
||||||
|
| https://github.com/knative/client/pull/735[#745]
|
||||||
|
|
||||||
## v0.13.0 (2020-03-11)
|
## v0.13.0 (2020-03-11)
|
||||||
|
|
||||||
[cols="1,10,3", options="header", width="100%"]
|
[cols="1,10,3", options="header", width="100%"]
|
||||||
|
|
|
||||||
|
|
@ -7,14 +7,17 @@ Create a trigger
|
||||||
Create a trigger
|
Create a trigger
|
||||||
|
|
||||||
```
|
```
|
||||||
kn trigger create NAME --broker BROKER --filter KEY=VALUE --sink SINK [flags]
|
kn trigger create NAME --broker BROKER --sink SINK [flags]
|
||||||
```
|
```
|
||||||
|
|
||||||
### Examples
|
### 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'
|
# Create a trigger 'mytrigger' to declare a subscription to events from default broker. The subscriber is service 'mysvc'
|
||||||
|
kn trigger create mytrigger --broker default --sink svc:mysvc
|
||||||
|
|
||||||
|
# Create a trigger to filter events with attribute 'type=dev.knative.foo'
|
||||||
kn trigger create mytrigger --broker default --filter type=dev.knative.foo --sink svc:mysvc
|
kn trigger create mytrigger --broker default --filter type=dev.knative.foo --sink svc:mysvc
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -180,6 +180,10 @@ func (b *TriggerBuilder) InjectBroker(inject bool) *TriggerBuilder {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *TriggerBuilder) Filters(filters map[string]string) *TriggerBuilder {
|
func (b *TriggerBuilder) Filters(filters map[string]string) *TriggerBuilder {
|
||||||
|
if len(filters) == 0 {
|
||||||
|
b.trigger.Spec.Filter = &v1alpha1.TriggerFilter{}
|
||||||
|
return b
|
||||||
|
}
|
||||||
filter := b.trigger.Spec.Filter
|
filter := b.trigger.Spec.Filter
|
||||||
if filter == nil {
|
if filter == nil {
|
||||||
filter = &v1alpha1.TriggerFilter{}
|
filter = &v1alpha1.TriggerFilter{}
|
||||||
|
|
|
||||||
|
|
@ -155,6 +155,17 @@ func TestTriggerBuilder(t *testing.T) {
|
||||||
assert.DeepEqual(t, expected, b.Build().Spec.Filter)
|
assert.DeepEqual(t, expected, b.Build().Spec.Filter)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("update filters to remove filters", func(t *testing.T) {
|
||||||
|
b := NewTriggerBuilderFromExisting(a.Build())
|
||||||
|
assert.DeepEqual(t, b.Build(), a.Build())
|
||||||
|
b.Filters(nil)
|
||||||
|
expected := &v1alpha1.TriggerFilter{}
|
||||||
|
assert.DeepEqual(t, expected, b.Build().Spec.Filter)
|
||||||
|
|
||||||
|
b.Filters((make(map[string]string)))
|
||||||
|
assert.DeepEqual(t, expected, b.Build().Spec.Filter)
|
||||||
|
})
|
||||||
|
|
||||||
t.Run("add and remove inject annotation", func(t *testing.T) {
|
t.Run("add and remove inject annotation", func(t *testing.T) {
|
||||||
b := NewTriggerBuilder("broker-trigger")
|
b := NewTriggerBuilder("broker-trigger")
|
||||||
b.InjectBroker(true)
|
b.InjectBroker(true)
|
||||||
|
|
|
||||||
|
|
@ -33,10 +33,13 @@ func NewTriggerCreateCommand(p *commands.KnParams) *cobra.Command {
|
||||||
var sinkFlags flags.SinkFlags
|
var sinkFlags flags.SinkFlags
|
||||||
|
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "create NAME --broker BROKER --filter KEY=VALUE --sink SINK",
|
Use: "create NAME --broker BROKER --sink SINK",
|
||||||
Short: "Create a trigger",
|
Short: "Create a trigger",
|
||||||
Example: `
|
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'
|
# Create a trigger 'mytrigger' to declare a subscription to events from default broker. The subscriber is service 'mysvc'
|
||||||
|
kn trigger create mytrigger --broker default --sink svc:mysvc
|
||||||
|
|
||||||
|
# Create a trigger to filter events with attribute 'type=dev.knative.foo'
|
||||||
kn trigger create mytrigger --broker default --filter type=dev.knative.foo --sink svc:mysvc`,
|
kn trigger create mytrigger --broker default --filter type=dev.knative.foo --sink svc:mysvc`,
|
||||||
|
|
||||||
RunE: func(cmd *cobra.Command, args []string) (err error) {
|
RunE: func(cmd *cobra.Command, args []string) (err error) {
|
||||||
|
|
|
||||||
|
|
@ -112,8 +112,10 @@ func writeSink(dw printers.PrefixWriter, sink *duckv1.Destination) {
|
||||||
func writeTrigger(dw printers.PrefixWriter, trigger *v1alpha1.Trigger, printDetails bool) {
|
func writeTrigger(dw printers.PrefixWriter, trigger *v1alpha1.Trigger, printDetails bool) {
|
||||||
commands.WriteMetadata(dw, &trigger.ObjectMeta, printDetails)
|
commands.WriteMetadata(dw, &trigger.ObjectMeta, printDetails)
|
||||||
dw.WriteAttribute("Broker", trigger.Spec.Broker)
|
dw.WriteAttribute("Broker", trigger.Spec.Broker)
|
||||||
|
if trigger.Spec.Filter != nil && trigger.Spec.Filter.Attributes != nil {
|
||||||
subWriter := dw.WriteAttribute("Filter", "")
|
subWriter := dw.WriteAttribute("Filter", "")
|
||||||
for key, value := range *trigger.Spec.Filter.Attributes {
|
for key, value := range *trigger.Spec.Filter.Attributes {
|
||||||
subWriter.WriteAttribute(key, value)
|
subWriter.WriteAttribute(key, value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ func TestBrokerTrigger(t *testing.T) {
|
||||||
test.serviceCreate(t, r, "sinksvc1")
|
test.serviceCreate(t, r, "sinksvc1")
|
||||||
|
|
||||||
t.Log("create triggers and list them")
|
t.Log("create triggers and list them")
|
||||||
test.triggerCreate(t, r, "trigger1", "sinksvc0", []string{"a=b"})
|
test.triggerCreate(t, r, "trigger1", "sinksvc0", nil)
|
||||||
test.triggerCreate(t, r, "trigger2", "sinksvc1", []string{"type=knative.dev.bar", "source=ping"})
|
test.triggerCreate(t, r, "trigger2", "sinksvc1", []string{"type=knative.dev.bar", "source=ping"})
|
||||||
test.verifyTriggerList(t, r, "trigger1", "trigger2")
|
test.verifyTriggerList(t, r, "trigger1", "trigger2")
|
||||||
test.triggerDelete(t, r, "trigger1")
|
test.triggerDelete(t, r, "trigger1")
|
||||||
|
|
@ -93,9 +93,11 @@ func (test *e2eTest) lableNamespaceForDefaultBroker(t *testing.T) error {
|
||||||
|
|
||||||
func (test *e2eTest) triggerCreate(t *testing.T, r *KnRunResultCollector, name string, sinksvc string, filters []string) {
|
func (test *e2eTest) triggerCreate(t *testing.T, r *KnRunResultCollector, name string, sinksvc string, filters []string) {
|
||||||
args := []string{"trigger", "create", name, "--broker", "default", "--sink", "svc:" + sinksvc}
|
args := []string{"trigger", "create", name, "--broker", "default", "--sink", "svc:" + sinksvc}
|
||||||
|
if len(filters) > 0 {
|
||||||
for _, v := range filters {
|
for _, v := range filters {
|
||||||
args = append(args, "--filter", v)
|
args = append(args, "--filter", v)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
out := test.kn.Run(args...)
|
out := test.kn.Run(args...)
|
||||||
r.AssertNoError(out)
|
r.AssertNoError(out)
|
||||||
assert.Check(t, util.ContainsAllIgnoreCase(out.Stdout, "Trigger", name, "created", "namespace", test.kn.namespace))
|
assert.Check(t, util.ContainsAllIgnoreCase(out.Stdout, "Trigger", name, "created", "namespace", test.kn.namespace))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue