in pkg/cmd/serviceaccount/phases/workflow/runner.go [124:153]
func (r *runner) Run(data RunData) error {
skipPhases, err := r.computeSkipPhases()
if err != nil {
return errors.Wrap(err, "failed to compute skip phases")
}
filtered := []Phase{}
for _, phase := range r.phases {
if skipPhases[phase.Name] {
mlog.WithName(phase.Name).Info("skipping phase")
continue
}
filtered = append(filtered, phase)
}
// Run PreRun for all phases before executing the phases
for _, phase := range filtered {
if err := phase.PreRun(data); err != nil {
return errors.Wrapf(err, "failed to run pre-run for phase %s", phase.Name)
}
}
for _, phase := range filtered {
if err := phase.Run(context.Background(), data); err != nil {
return errors.Wrapf(err, "failed to run phase %s", phase.Name)
}
}
return nil
}