in src/terraform/providers/terraform-provider-avere/resource_vfxt.go [1122:1169]
func resourceVfxtDelete(d *schema.ResourceData, m interface{}) error {
log.Printf("[INFO] [resourceVfxtDelete")
defer log.Printf("[INFO] resourceVfxtDelete]")
avereVfxt, err := fillAvereVfxt(d)
if err != nil {
return err
}
if avereVfxt.RunLocal == false {
if err := VerifySSHConnection(avereVfxt.ControllerAddress, avereVfxt.ControllerUsename, avereVfxt.SshAuthMethod, avereVfxt.SshPort); err != nil {
return err
}
}
if avereVfxt.EnableSupportUploads == true && avereVfxt.ActiveSupportUpload == true {
// in case there was failure, enable the support uploads before, but
// don't let it block the deletion
if err := avereVfxt.EnableSupport(); err != nil {
log.Printf("[ERROR] failed to upload rolling trace: %v", err)
} else {
if err := avereVfxt.UploadRollingTraceAndBlock(); err != nil {
log.Printf("[ERROR] failed to upload rolling trace: %v", err)
}
if err := avereVfxt.UploadSupportBundleAndBlock(); err != nil {
log.Printf("[ERROR] failed to upload support bundle: %v", err)
}
}
}
log.Printf("[INFO] vfxt: ensure cluster is stable before deletion so vfxt.py will have a smooth deletion")
if err := avereVfxt.EnsureClusterStable(); err != nil {
return err
}
if err := avereVfxt.Platform.DestroyVfxt(avereVfxt); err != nil {
return fmt.Errorf("failed to destroy cluster: %s\n", err)
}
d.Set(vfxt_management_ip, avereVfxt.ManagementIP)
d.Set(vserver_ip_addresses, avereVfxt.VServerIPAddresses)
d.Set(node_names, avereVfxt.NodeNames)
// acknowledge deletion of the vfxt
d.SetId("")
return nil
}