From c6dc38842724bd2e4fd965e4117b60208ce5af24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Louren=C3=A7o=20Vales?= <133565059+lourencovales@users.noreply.github.com> Date: Wed, 1 Oct 2025 15:51:53 +0200 Subject: [PATCH] added cmp function --- engine/resources/cloudflare_dns.go | 51 ++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) 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") + } +}