From e72ee9701003814cddcd5e26e05aa9c8a74aa211 Mon Sep 17 00:00:00 2001 From: Maxim Pogozhiy Date: Thu, 12 May 2022 19:38:25 +0700 Subject: [PATCH] Add allow_overwrite to dns_records --- dme/resource_dme_dns_records.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/dme/resource_dme_dns_records.go b/dme/resource_dme_dns_records.go index 1c8553e7..d1aa1380 100644 --- a/dme/resource_dme_dns_records.go +++ b/dme/resource_dme_dns_records.go @@ -142,6 +142,12 @@ func resourceManagedDNSRecordActions() *schema.Resource { Optional: true, Computed: true, }, + + "allow_overwrite": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, }, } } @@ -227,8 +233,17 @@ func resourceManagedDNSRecordActionsCreate(d *schema.ResourceData, m interface{} cont, err := dmeClient.Save(&recordAttr, "dns/managed/"+d.Get("domain_id").(string)+"/records/") if err != nil { - log.Println("Error returned: ", err) - return err + if strings.Contains(err.Error(), "already exists") && d.Get("allow_overwrite").(bool) { + log.Printf("[DEBUG] DNS Record already exists however we are overwriting it") + cont, err = dmeClient.Update(&recordAttr, "dns/managed/"+d.Get("domain_id").(string)+"/records/") + if err != nil { + log.Println("Error returned: ", err) + return err + } + } else { + log.Println("Error returned: ", err) + return err + } } log.Println("Value of container: ", cont)