setuptest/destroy.go (24 lines of code) (raw):
package setuptest
import (
"github.com/Azure/terratest-terraform-fluent/testerror"
"github.com/gruntwork-io/terratest/modules/terraform"
)
// Destroy runs terraform destroy for the given Response and returns the error.
func (resp Response) Destroy() *testerror.Error {
_, err := terraform.DestroyE(resp.t, resp.Options)
if err != nil {
return testerror.New(err.Error())
}
return nil
}
// DestroyWithRetry will retry the terraform destroy command up to the specified number of times.
func (resp Response) DestroyRetry(r Retry) *testerror.Error {
resp.Options.RetryableTerraformErrors = map[string]string{
".*": "Retry destroy on any error",
}
resp.Options.MaxRetries = r.Max
resp.Options.TimeBetweenRetries = r.Wait
_, err := terraform.DestroyE(resp.t, resp.Options)
if err != nil {
return testerror.Newf("terraform destroy failed after %d attempts: %v", r.Max, err)
}
return nil
}