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
}