in pkg/infrastructure/authorizationCheckers/terraform/terraformAuthorizationChecker.go [286:317]
func (a *terraformDeploymentConfig) terraformDestroy(mpfConfig domain.MPFConfig, tf *tfexec.Terraform) (string, error) {
var err error
log.Infoln("in destroy phase")
if !inDestroyPhase {
err = createEnteredDestroyPhaseStateFile(a.workingDir, TFDestroyStateEnteredFileName)
if err != nil {
log.Warnf("error creating enteredDestroyPhaseStateFile: %s", err)
}
}
switch {
case a.varFilePath == "" && a.targetModule == "":
err = tf.Destroy(a.ctx)
case a.varFilePath != "" && a.targetModule == "":
err = tf.Destroy(a.ctx, tfexec.VarFile(a.varFilePath))
case a.varFilePath == "" && a.targetModule != "":
err = tf.Destroy(a.ctx, tfexec.Target(a.targetModule))
case a.varFilePath != "" && a.targetModule != "":
err = tf.Destroy(a.ctx, tfexec.VarFile(a.varFilePath), tfexec.Target(a.targetModule))
}
if err != nil {
errorMsg := err.Error()
log.Debugln(errorMsg)
if strings.Contains(errorMsg, "Authorization") {
return errorMsg, nil
}
log.Warnf("terraform destroy: non authorizaton error occured: %s", errorMsg)
return errorMsg, err
}
return "", nil
}