Fix preapply hook behavior
Fixes #399 Signed-off-by: Yusuke Kuoka <ykuoka@gmail.com>
This commit is contained in:
parent
ff107103da
commit
c2ea0f0355
|
|
@ -1360,32 +1360,33 @@ Do you really want to apply?
|
||||||
st.Releases = selectedAndNeededReleases
|
st.Releases = selectedAndNeededReleases
|
||||||
|
|
||||||
if !interactive || interactive && r.askForConfirmation(confMsg) {
|
if !interactive || interactive && r.askForConfirmation(confMsg) {
|
||||||
|
if _, preapplyErrors := withDAG(st, helm, a.Logger, state.PlanOptions{Reverse: true, SelectedReleases: toDelete, SkipNeeds: true}, a.WrapWithoutSelector(func(subst *state.HelmState, helm helmexec.Interface) []error {
|
||||||
|
for _, r := range subst.Releases {
|
||||||
|
release := r
|
||||||
|
if _, err := st.TriggerPreapplyEvent(&release, "apply"); err != nil {
|
||||||
|
return []error{err}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
})); len(preapplyErrors) > 0 {
|
||||||
|
return true, false, preapplyErrors
|
||||||
|
}
|
||||||
|
|
||||||
r.helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state)...)
|
r.helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state)...)
|
||||||
|
|
||||||
// We deleted releases by traversing the DAG in reverse order
|
// We deleted releases by traversing the DAG in reverse order
|
||||||
if len(releasesToBeDeleted) > 0 {
|
if len(releasesToBeDeleted) > 0 {
|
||||||
_, deletionErrs := withDAG(st, helm, a.Logger, state.PlanOptions{Reverse: true, SelectedReleases: toDelete, SkipNeeds: true}, a.WrapWithoutSelector(func(subst *state.HelmState, helm helmexec.Interface) []error {
|
_, deletionErrs := withDAG(st, helm, a.Logger, state.PlanOptions{Reverse: true, SelectedReleases: toDelete, SkipNeeds: true}, a.WrapWithoutSelector(func(subst *state.HelmState, helm helmexec.Interface) []error {
|
||||||
var (
|
var rs []state.ReleaseSpec
|
||||||
rs []state.ReleaseSpec
|
|
||||||
preapplyErrors []error
|
|
||||||
)
|
|
||||||
|
|
||||||
for _, r := range subst.Releases {
|
for _, r := range subst.Releases {
|
||||||
release := r
|
release := r
|
||||||
if r2, ok := releasesToBeDeleted[state.ReleaseToID(&release)]; ok {
|
if r2, ok := releasesToBeDeleted[state.ReleaseToID(&release)]; ok {
|
||||||
if _, err := st.TriggerPreapplyEvent(&r2, "apply"); err != nil {
|
|
||||||
preapplyErrors = append(applyErrs, err)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
rs = append(rs, r2)
|
rs = append(rs, r2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(preapplyErrors) > 0 {
|
|
||||||
return preapplyErrors
|
|
||||||
}
|
|
||||||
|
|
||||||
subst.Releases = rs
|
subst.Releases = rs
|
||||||
|
|
||||||
return subst.DeleteReleasesForSync(&affectedReleases, helm, c.Concurrency())
|
return subst.DeleteReleasesForSync(&affectedReleases, helm, c.Concurrency())
|
||||||
|
|
@ -1399,27 +1400,15 @@ Do you really want to apply?
|
||||||
// We upgrade releases by traversing the DAG
|
// We upgrade releases by traversing the DAG
|
||||||
if len(releasesToBeUpdated) > 0 {
|
if len(releasesToBeUpdated) > 0 {
|
||||||
_, updateErrs := withDAG(st, helm, a.Logger, state.PlanOptions{SelectedReleases: toUpdate, Reverse: false, SkipNeeds: true, IncludeTransitiveNeeds: c.IncludeTransitiveNeeds()}, a.WrapWithoutSelector(func(subst *state.HelmState, helm helmexec.Interface) []error {
|
_, updateErrs := withDAG(st, helm, a.Logger, state.PlanOptions{SelectedReleases: toUpdate, Reverse: false, SkipNeeds: true, IncludeTransitiveNeeds: c.IncludeTransitiveNeeds()}, a.WrapWithoutSelector(func(subst *state.HelmState, helm helmexec.Interface) []error {
|
||||||
var (
|
var rs []state.ReleaseSpec
|
||||||
rs []state.ReleaseSpec
|
|
||||||
preapplyErrors []error
|
|
||||||
)
|
|
||||||
|
|
||||||
for _, r := range subst.Releases {
|
for _, r := range subst.Releases {
|
||||||
release := r
|
release := r
|
||||||
if r2, ok := releasesToBeUpdated[state.ReleaseToID(&release)]; ok {
|
if r2, ok := releasesToBeUpdated[state.ReleaseToID(&release)]; ok {
|
||||||
if _, err := st.TriggerPreapplyEvent(&r2, "apply"); err != nil {
|
|
||||||
preapplyErrors = append(applyErrs, err)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
rs = append(rs, r2)
|
rs = append(rs, r2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(preapplyErrors) > 0 {
|
|
||||||
return preapplyErrors
|
|
||||||
}
|
|
||||||
|
|
||||||
subst.Releases = rs
|
subst.Releases = rs
|
||||||
|
|
||||||
syncOpts := &state.SyncOpts{
|
syncOpts := &state.SyncOpts{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue