in pkg/infrastructure/authorizationCheckers/terraform/terraformAuthorizationChecker.go [79:111]
func (a *terraformDeploymentConfig) CleanDeployment(mpfConfig domain.MPFConfig) error {
err := deleteEnteredDestroyPhaseStateFile(a.workingDir, TFDestroyStateEnteredFileName)
if err != nil {
log.Warnf("error deleting enteredDestroyPhaseStateFile: %s", err)
}
tf, err := tfexec.NewTerraform(a.workingDir, a.execPath)
if err != nil {
log.Fatalf("error running NewTerraform: %s", err)
}
err = tf.Init(context.Background())
if err != nil {
log.Warnf("error running Init: %s", err)
return 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 {
log.Warnf("error running terraform destroy: %s", err)
}
return err
}