func()

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
}