Merge pull request #4179 from aberghage/bugfix/digitalocean_ignore_dns_404
Check HTTP status codes on responses from the DigitalOcean API instead of doing string compares
This commit is contained in:
commit
c95667ce99
|
@ -3,7 +3,6 @@ package digitalocean
|
|||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"strings"
|
||||
|
||||
"github.com/digitalocean/godo"
|
||||
"github.com/hashicorp/terraform/helper/schema"
|
||||
|
@ -56,11 +55,11 @@ func resourceDigitalOceanDomainCreate(d *schema.ResourceData, meta interface{})
|
|||
func resourceDigitalOceanDomainRead(d *schema.ResourceData, meta interface{}) error {
|
||||
client := meta.(*godo.Client)
|
||||
|
||||
domain, _, err := client.Domains.Get(d.Id())
|
||||
domain, resp, err := client.Domains.Get(d.Id())
|
||||
if err != nil {
|
||||
// If the domain is somehow already destroyed, mark as
|
||||
// successfully gone
|
||||
if strings.Contains(err.Error(), "404 Not Found") {
|
||||
if resp.StatusCode == 404 {
|
||||
d.SetId("")
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -115,11 +115,11 @@ func resourceDigitalOceanRecordRead(d *schema.ResourceData, meta interface{}) er
|
|||
return fmt.Errorf("invalid record ID: %v", err)
|
||||
}
|
||||
|
||||
rec, _, err := client.Domains.Record(domain, id)
|
||||
rec, resp, err := client.Domains.Record(domain, id)
|
||||
if err != nil {
|
||||
// If the record is somehow already destroyed, mark as
|
||||
// successfully gone
|
||||
if strings.Contains(err.Error(), "404 Not Found") {
|
||||
if resp.StatusCode == 404 {
|
||||
d.SetId("")
|
||||
return nil
|
||||
}
|
||||
|
@ -183,15 +183,15 @@ func resourceDigitalOceanRecordDelete(d *schema.ResourceData, meta interface{})
|
|||
|
||||
log.Printf("[INFO] Deleting record: %s, %d", domain, id)
|
||||
|
||||
_, err = client.Domains.DeleteRecord(domain, id)
|
||||
if err != nil {
|
||||
resp, delErr := client.Domains.DeleteRecord(domain, id)
|
||||
if delErr != nil {
|
||||
// If the record is somehow already destroyed, mark as
|
||||
// successfully gone
|
||||
if strings.Contains(err.Error(), "404 Not Found") {
|
||||
if resp.StatusCode == 404 {
|
||||
return nil
|
||||
}
|
||||
|
||||
return fmt.Errorf("Error deleting record: %s", err)
|
||||
return fmt.Errorf("Error deleting record: %s", delErr)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
|
@ -4,7 +4,6 @@ import (
|
|||
"fmt"
|
||||
"log"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/digitalocean/godo"
|
||||
"github.com/hashicorp/terraform/helper/schema"
|
||||
|
@ -71,11 +70,11 @@ func resourceDigitalOceanSSHKeyRead(d *schema.ResourceData, meta interface{}) er
|
|||
return fmt.Errorf("invalid SSH key id: %v", err)
|
||||
}
|
||||
|
||||
key, _, err := client.Keys.GetByID(id)
|
||||
key, resp, err := client.Keys.GetByID(id)
|
||||
if err != nil {
|
||||
// If the key is somehow already destroyed, mark as
|
||||
// successfully gone
|
||||
if strings.Contains(err.Error(), "404 Not Found") {
|
||||
if resp.StatusCode == 404 {
|
||||
d.SetId("")
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue