Skip to content
This repository was archived by the owner on Dec 11, 2023. It is now read-only.

Commit d04e0bf

Browse files
committed
Multiple event types named trigger
1 parent ad1c401 commit d04e0bf

1 file changed

Lines changed: 33 additions & 2 deletions

File tree

cmd/create/trigger.go

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package create
1818

1919
import (
2020
"fmt"
21+
"strings"
2122

2223
"github.com/spf13/cobra"
2324

@@ -84,10 +85,40 @@ func (o *createOptions) trigger(name string, eventSourcesFilter, eventTypesFilte
8485
return err
8586
}
8687
}
87-
for _, et := range eventTypesFilter {
88-
if _, err = o.createTrigger(name, component, tmbroker.FilterExactAttribute("type", et)); err != nil {
88+
89+
oldTriggers := o.listTriggers(name + "-")
90+
for i, et := range eventTypesFilter {
91+
newTrigger := name
92+
if name != "" {
93+
newTrigger = fmt.Sprintf("%s-%d", name, i+1)
94+
}
95+
if _, err = o.createTrigger(newTrigger, component, tmbroker.FilterExactAttribute("type", et)); err != nil {
96+
return err
97+
}
98+
delete(oldTriggers, newTrigger)
99+
}
100+
101+
for _, oldTrigger := range oldTriggers {
102+
if err := oldTrigger.RemoveFromLocalConfig(); err != nil {
103+
return err
104+
}
105+
if err := o.Manifest.Remove(oldTrigger.Name, oldTrigger.GetKind()); err != nil {
89106
return err
90107
}
91108
}
92109
return nil
93110
}
111+
112+
func (o *createOptions) listTriggers(prefix string) map[string]*tmbroker.Trigger {
113+
result := make(map[string]*tmbroker.Trigger, 0)
114+
for _, v := range o.Manifest.Objects {
115+
if v.Kind == tmbroker.TriggerKind && strings.HasPrefix(v.Metadata.Name, prefix) {
116+
trigger, err := tmbroker.NewTrigger(v.Metadata.Name, o.Context, o.ConfigBase, nil, nil)
117+
if err != nil {
118+
continue
119+
}
120+
result[v.Metadata.Name] = trigger.(*tmbroker.Trigger)
121+
}
122+
}
123+
return result
124+
}

0 commit comments

Comments
 (0)