diff --git a/engine/resources/cloudflare_dns.go b/engine/resources/cloudflare_dns.go index 794a3ca6..5d224e95 100644 --- a/engine/resources/cloudflare_dns.go +++ b/engine/resources/cloudflare_dns.go @@ -250,3 +250,54 @@ func (obj *CloudflareDNSRes) CheckApply(ctx context.Context, apply bool) (bool, return true, nil } + +func (obj *CloudflareDNSRes) Cmp(r engine.Res) error { + if obj == nil && r == nil { + return nil + } + + if (obj == nil) != (r == nil) { + return fmt.Errorf("one resource is empty") + } + + res, ok := r.(*CloudflareDNSRes) + if !ok { + return fmt.Errorf("not a %s", obj.Kind()) + } + + if obj.APIToken != res.APIToken { + return fmt.Errorf("apitoken differs") + } + + if obj.Proxied != res.Proxied { + return fmt.Errorf("proxied values differ") + } + + if obj.RecordName != res.RecordName { + return fmt.Errorf("record name differs") + } + + if obj.Purged != res.Purged { + return fmt.Errorf("purge value differs") + } + + if obj.State != res.State { + return fmt.Errorf("state differs") + } + + if obj.TTL != res.TTL { + return fmt.Errorf("ttl differs") + } + + if obj.Type != res.Type { + return fmt.Errorf("record type differs") + } + + if obj.Zone != res.Zone { + return fmt.Errorf("zone differs") + } + + if obj.zoneID != res.zoneID { + return fmt.Errorf("zoneid differs") + } +}