summaryrefslogtreecommitdiff
path: root/provider/dummy.go
diff options
context:
space:
mode:
Diffstat (limited to 'provider/dummy.go')
-rw-r--r--provider/dummy.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/provider/dummy.go b/provider/dummy.go
new file mode 100644
index 0000000..bec5907
--- /dev/null
+++ b/provider/dummy.go
@@ -0,0 +1,32 @@
+package provider
+
+import (
+ "log/slog"
+ "net/netip"
+)
+
+// a stand-in for a real provider.
+// once asked to ensure a record is set,
+// it will tell you what was requested,
+// and not take any action.
+// very useful for debugging!
+type dummy struct {
+ log *slog.Logger
+}
+
+var _ Provider = (*dummy)(nil)
+
+func newDummy(log *slog.Logger) (*dummy, error) {
+ return &dummy{log: log.With(slog.String("provider", "dummy"))}, nil
+}
+
+func (d *dummy) Ensure(zone, name string, rtype RecordType, addr netip.Addr) (string, bool, error) {
+ d.log.Info(
+ "asked to ensure record, but nothing happened",
+ slog.String("zone", zone),
+ slog.String("name", name),
+ slog.String("record", string(rtype)),
+ slog.String("addr", addr.String()),
+ )
+ return "", true, nil
+}