fix: cleanup hooks not receiving error signal
Closes #1041 Signed-off-by: Felipe Santos <felipecassiors@gmail.com>
This commit is contained in:
		
							parent
							
								
									5963dd364d
								
							
						
					
					
						commit
						d77c72f82e
					
				| 
						 | 
					@ -1552,7 +1552,13 @@ Do you really want to apply?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for id := range releasesWithNoChange {
 | 
						for id := range releasesWithNoChange {
 | 
				
			||||||
		r := releasesWithNoChange[id]
 | 
							r := releasesWithNoChange[id]
 | 
				
			||||||
		if _, err := st.TriggerCleanupEvent(&r, "apply"); err != nil {
 | 
					
 | 
				
			||||||
 | 
							var firstErr error = nil
 | 
				
			||||||
 | 
							if len(errs) > 0 {
 | 
				
			||||||
 | 
								firstErr = errs[0]
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if _, err := st.TriggerCleanupEvent(&r, firstErr, "apply"); err != nil {
 | 
				
			||||||
			a.Logger.Warnf("warn: %v\n", err)
 | 
								a.Logger.Warnf("warn: %v\n", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -1601,7 +1607,7 @@ func (a *App) delete(r *Run, purge bool, c DestroyConfigProvider) (bool, []error
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for id := range releasesWithNoChange {
 | 
						for id := range releasesWithNoChange {
 | 
				
			||||||
		r := releasesWithNoChange[id]
 | 
							r := releasesWithNoChange[id]
 | 
				
			||||||
		if _, err := st.TriggerCleanupEvent(&r, "delete"); err != nil {
 | 
							if _, err := st.TriggerCleanupEvent(&r, nil, "delete"); err != nil {
 | 
				
			||||||
			a.Logger.Warnf("warn: %v\n", err)
 | 
								a.Logger.Warnf("warn: %v\n", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -1847,7 +1853,7 @@ func (a *App) sync(r *Run, c SyncConfigProvider) (bool, []error) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for id := range releasesWithNoChange {
 | 
						for id := range releasesWithNoChange {
 | 
				
			||||||
		r := releasesWithNoChange[id]
 | 
							r := releasesWithNoChange[id]
 | 
				
			||||||
		if _, err := st.TriggerCleanupEvent(&r, "sync"); err != nil {
 | 
							if _, err := st.TriggerCleanupEvent(&r, nil, "sync"); err != nil {
 | 
				
			||||||
			a.Logger.Warnf("warn: %v\n", err)
 | 
								a.Logger.Warnf("warn: %v\n", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -892,7 +892,7 @@ func (st *HelmState) DeleteReleasesForSync(affectedReleases *AffectedReleases, h
 | 
				
			||||||
					st.logger.Warnf("warn: %v\n", err)
 | 
										st.logger.Warnf("warn: %v\n", err)
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if _, err := st.TriggerCleanupEvent(release, "sync"); err != nil {
 | 
									if _, err := st.TriggerCleanupEvent(release, relErr, "sync"); err != nil {
 | 
				
			||||||
					st.logger.Warnf("warn: %v\n", err)
 | 
										st.logger.Warnf("warn: %v\n", err)
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1018,7 +1018,7 @@ func (st *HelmState) SyncReleases(affectedReleases *AffectedReleases, helm helme
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if _, err := st.TriggerCleanupEvent(release, "sync"); err != nil {
 | 
									if _, err := st.TriggerCleanupEvent(release, relErr, "sync"); err != nil {
 | 
				
			||||||
					if relErr == nil {
 | 
										if relErr == nil {
 | 
				
			||||||
						relErr = newReleaseFailedError(release, err)
 | 
											relErr = newReleaseFailedError(release, err)
 | 
				
			||||||
					} else {
 | 
										} else {
 | 
				
			||||||
| 
						 | 
					@ -1548,7 +1548,12 @@ func (st *HelmState) TemplateReleases(helm helmexec.Interface, outputDir string,
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if _, err := st.TriggerCleanupEvent(release, "template"); err != nil {
 | 
							var firstErr error = nil
 | 
				
			||||||
 | 
							if len(errs) > 0 {
 | 
				
			||||||
 | 
								firstErr = errs[0]
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if _, err := st.TriggerCleanupEvent(release, firstErr, "template"); err != nil {
 | 
				
			||||||
			st.logger.Warnf("warn: %v\n", err)
 | 
								st.logger.Warnf("warn: %v\n", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -1649,7 +1654,7 @@ func (st *HelmState) WriteReleasesValues(helm helmexec.Interface, additionalValu
 | 
				
			||||||
			return []error{fmt.Errorf("writing values file %s: %w", outputValuesFile, err)}
 | 
								return []error{fmt.Errorf("writing values file %s: %w", outputValuesFile, err)}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if _, err := st.TriggerCleanupEvent(release, "write-values"); err != nil {
 | 
							if _, err := st.TriggerCleanupEvent(release, nil, "write-values"); err != nil {
 | 
				
			||||||
			st.logger.Warnf("warn: %v\n", err)
 | 
								st.logger.Warnf("warn: %v\n", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -1724,7 +1729,12 @@ func (st *HelmState) LintReleases(helm helmexec.Interface, additionalValues []st
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if _, err := st.TriggerCleanupEvent(&release, "lint"); err != nil {
 | 
							var firstErr error = nil
 | 
				
			||||||
 | 
							if len(errs) > 0 {
 | 
				
			||||||
 | 
								firstErr = errs[0]
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if _, err := st.TriggerCleanupEvent(&release, firstErr, "lint"); err != nil {
 | 
				
			||||||
			st.logger.Warnf("warn: %v\n", err)
 | 
								st.logger.Warnf("warn: %v\n", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -2071,7 +2081,7 @@ func (st *HelmState) DiffReleases(helm helmexec.Interface, additionalValues []st
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if triggerCleanupEvents {
 | 
									if triggerCleanupEvents {
 | 
				
			||||||
					if _, err := st.TriggerCleanupEvent(prep.release, "diff"); err != nil {
 | 
										if _, err := st.TriggerCleanupEvent(prep.release, nil, "diff"); err != nil {
 | 
				
			||||||
						st.logger.Warnf("warn: %v\n", err)
 | 
											st.logger.Warnf("warn: %v\n", err)
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
| 
						 | 
					@ -2425,8 +2435,8 @@ func (st *HelmState) triggerPrepareEvent(r *ReleaseSpec, helmfileCommand string)
 | 
				
			||||||
	return st.triggerReleaseEvent("prepare", nil, r, helmfileCommand)
 | 
						return st.triggerReleaseEvent("prepare", nil, r, helmfileCommand)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (st *HelmState) TriggerCleanupEvent(r *ReleaseSpec, helmfileCommand string) (bool, error) {
 | 
					func (st *HelmState) TriggerCleanupEvent(r *ReleaseSpec, evtErr error, helmfileCommand string) (bool, error) {
 | 
				
			||||||
	return st.triggerReleaseEvent("cleanup", nil, r, helmfileCommand)
 | 
						return st.triggerReleaseEvent("cleanup", evtErr, r, helmfileCommand)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (st *HelmState) triggerPresyncEvent(r *ReleaseSpec, helmfileCommand string) (bool, error) {
 | 
					func (st *HelmState) triggerPresyncEvent(r *ReleaseSpec, helmfileCommand string) (bool, error) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue