func()

in setuptest/apply.go [76:107]


func (resp Response) ApplyIdempotentRetry(r Retry) *testerror.Error {
	opts, err := checkPlanFileExists(resp.Options)
	if err != nil {
		return testerror.New(err.Error())
	}

	_, err = terraform.ApplyE(resp.t, opts)
	if err != nil {
		return testerror.New(err.Error())
	}

	_, err = retry.DoWithRetryE(resp.t, "terraform plan", r.Max, r.Wait, func() (string, error) {
		exitCode, err := terraform.PlanExitCodeE(resp.t, opts)
		if err != nil {
			return "", retry.FatalError{Underlying: err}
		}
		switch exitCode {
		case 0:
			return "", nil
		case 2:
			return "", retry.FatalError{Underlying: errors.New("terraform configuration not idempotent")}
		default:
			return "", errors.New("terraform plan error")
		}
	})

	if err != nil {
		return testerror.New(err.Error())
	}

	return nil
}