feat: Enhance postsync event to include `.Error` (#882)
* Refactor postsync event to include success flag * Change success boolean to error Fixes #826
This commit is contained in:
parent
d6bd317c9c
commit
4294a5de06
|
|
@ -20,7 +20,8 @@ type Hook struct {
|
|||
}
|
||||
|
||||
type event struct {
|
||||
Name string
|
||||
Name string
|
||||
Error error
|
||||
}
|
||||
|
||||
type Bus struct {
|
||||
|
|
@ -37,7 +38,7 @@ type Bus struct {
|
|||
Logger *zap.SugaredLogger
|
||||
}
|
||||
|
||||
func (bus *Bus) Trigger(evt string, context map[string]interface{}) (bool, error) {
|
||||
func (bus *Bus) Trigger(evt string, evtErr error, context map[string]interface{}) (bool, error) {
|
||||
if bus.Runner == nil {
|
||||
bus.Runner = helmexec.ShellRunner{
|
||||
Dir: bus.BasePath,
|
||||
|
|
@ -68,7 +69,8 @@ func (bus *Bus) Trigger(evt string, context map[string]interface{}) (bool, error
|
|||
"Environment": bus.Env,
|
||||
"Namespace": bus.Namespace,
|
||||
"Event": event{
|
||||
Name: evt,
|
||||
Name: evt,
|
||||
Error: evtErr,
|
||||
},
|
||||
}
|
||||
for k, v := range context {
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ func TestTrigger(t *testing.T) {
|
|||
"Release": "myrel",
|
||||
"HelmfileCommand": "mycmd",
|
||||
}
|
||||
ok, err := bus.Trigger(c.triggeredEvt, data)
|
||||
ok, err := bus.Trigger(c.triggeredEvt, nil, data)
|
||||
|
||||
if ok != c.expectedResult {
|
||||
t.Errorf("unexpected result for case \"%s\": expected=%v, actual=%v", c.name, c.expectedResult, ok)
|
||||
|
|
|
|||
|
|
@ -467,7 +467,7 @@ func (st *HelmState) SyncReleases(affectedReleases *AffectedReleases, helm helme
|
|||
results <- syncResult{errors: []*ReleaseError{relErr}}
|
||||
}
|
||||
|
||||
if _, err := st.triggerPostsyncEvent(release, "sync"); err != nil {
|
||||
if _, err := st.triggerPostsyncEvent(release, relErr, "sync"); err != nil {
|
||||
st.logger.Warnf("warn: %v\n", err)
|
||||
}
|
||||
|
||||
|
|
@ -1154,22 +1154,22 @@ func (st *HelmState) PrepareReleases(helm helmexec.Interface, helmfileCommand st
|
|||
}
|
||||
|
||||
func (st *HelmState) triggerPrepareEvent(r *ReleaseSpec, helmfileCommand string) (bool, error) {
|
||||
return st.triggerReleaseEvent("prepare", r, helmfileCommand)
|
||||
return st.triggerReleaseEvent("prepare", nil, r, helmfileCommand)
|
||||
}
|
||||
|
||||
func (st *HelmState) triggerCleanupEvent(r *ReleaseSpec, helmfileCommand string) (bool, error) {
|
||||
return st.triggerReleaseEvent("cleanup", r, helmfileCommand)
|
||||
return st.triggerReleaseEvent("cleanup", nil, r, helmfileCommand)
|
||||
}
|
||||
|
||||
func (st *HelmState) triggerPresyncEvent(r *ReleaseSpec, helmfileCommand string) (bool, error) {
|
||||
return st.triggerReleaseEvent("presync", r, helmfileCommand)
|
||||
return st.triggerReleaseEvent("presync", nil, r, helmfileCommand)
|
||||
}
|
||||
|
||||
func (st *HelmState) triggerPostsyncEvent(r *ReleaseSpec, helmfileCommand string) (bool, error) {
|
||||
return st.triggerReleaseEvent("postsync", r, helmfileCommand)
|
||||
func (st *HelmState) triggerPostsyncEvent(r *ReleaseSpec, evtErr error, helmfileCommand string) (bool, error) {
|
||||
return st.triggerReleaseEvent("postsync", evtErr, r, helmfileCommand)
|
||||
}
|
||||
|
||||
func (st *HelmState) triggerReleaseEvent(evt string, r *ReleaseSpec, helmfileCmd string) (bool, error) {
|
||||
func (st *HelmState) triggerReleaseEvent(evt string, evtErr error, r *ReleaseSpec, helmfileCmd string) (bool, error) {
|
||||
bus := &event.Bus{
|
||||
Hooks: r.Hooks,
|
||||
StateFilePath: st.FilePath,
|
||||
|
|
@ -1183,7 +1183,7 @@ func (st *HelmState) triggerReleaseEvent(evt string, r *ReleaseSpec, helmfileCmd
|
|||
"Release": r,
|
||||
"HelmfileCommand": helmfileCmd,
|
||||
}
|
||||
return bus.Trigger(evt, data)
|
||||
return bus.Trigger(evt, evtErr, data)
|
||||
}
|
||||
|
||||
// ResolveDeps returns a copy of this helmfile state with the concrete chart version numbers filled in for remote chart dependencies
|
||||
|
|
|
|||
Loading…
Reference in New Issue