in pkg/deploy/lattice/targets_synthesizer.go [77:113]
func (t *targetsSynthesizer) PostSynthesize(ctx context.Context) error {
var resTargets []*model.Targets
err := t.stack.ListResources(&resTargets)
if err != nil {
t.log.Errorf(ctx, "Failed to list targets due to %s", err)
}
requeueNeeded := false
for _, targets := range resTargets {
tg := &model.TargetGroup{}
err := t.stack.GetResource(targets.Spec.StackTargetGroupId, tg)
if err != nil {
return err
}
identifier := model.TgNamePrefix(tg.Spec)
if tg.Status != nil && tg.Status.Id != "" {
identifier = tg.Status.Id
}
latticeTargets, err := t.targetsManager.List(ctx, tg)
if err != nil {
return fmt.Errorf("failed post-synthesize targets %s, ListTargets failure: %w", identifier, err)
}
pending, err := t.syncStatus(ctx, targets.Spec.TargetList, latticeTargets)
if err != nil {
return fmt.Errorf("failed post-synthesize targets %s, condition sync failure: %w", identifier, err)
}
requeueNeeded = requeueNeeded || pending
}
if requeueNeeded {
return fmt.Errorf("%w: target status still in pending", RetryErr)
}
return nil
}