Add seed migration with zones and records from CoreDNS zone files
Populates the database on first run with the two existing zones (svc.mcp.metacircular.net, mcp.metacircular.net) and all their A records (metacrypt, mcr, sgard, mcp-agent, rift, ns). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -29,23 +29,23 @@ func setupTestServer(t *testing.T) (*Server, *db.DB) {
|
||||
database := openTestDB(t)
|
||||
logger := slog.Default()
|
||||
|
||||
_, err := database.CreateZone("svc.mcp.metacircular.net", "ns.mcp.metacircular.net.", "admin.metacircular.net.", 3600, 600, 86400, 300)
|
||||
_, err := database.CreateZone("test.example.com", "ns.example.com.", "admin.example.com.", 3600, 600, 86400, 300)
|
||||
if err != nil {
|
||||
t.Fatalf("create zone: %v", err)
|
||||
}
|
||||
_, err = database.CreateRecord("svc.mcp.metacircular.net", "metacrypt", "A", "192.168.88.181", 300)
|
||||
_, err = database.CreateRecord("test.example.com", "metacrypt", "A", "192.168.88.181", 300)
|
||||
if err != nil {
|
||||
t.Fatalf("create A record: %v", err)
|
||||
}
|
||||
_, err = database.CreateRecord("svc.mcp.metacircular.net", "metacrypt", "A", "100.95.252.120", 300)
|
||||
_, err = database.CreateRecord("test.example.com", "metacrypt", "A", "100.95.252.120", 300)
|
||||
if err != nil {
|
||||
t.Fatalf("create A record 2: %v", err)
|
||||
}
|
||||
_, err = database.CreateRecord("svc.mcp.metacircular.net", "mcr", "AAAA", "2001:db8::1", 300)
|
||||
_, err = database.CreateRecord("test.example.com", "mcr", "AAAA", "2001:db8::1", 300)
|
||||
if err != nil {
|
||||
t.Fatalf("create AAAA record: %v", err)
|
||||
}
|
||||
_, err = database.CreateRecord("svc.mcp.metacircular.net", "alias", "CNAME", "metacrypt.svc.mcp.metacircular.net.", 300)
|
||||
_, err = database.CreateRecord("test.example.com", "alias", "CNAME", "metacrypt.test.example.com.", 300)
|
||||
if err != nil {
|
||||
t.Fatalf("create CNAME record: %v", err)
|
||||
}
|
||||
@@ -57,12 +57,12 @@ func setupTestServer(t *testing.T) (*Server, *db.DB) {
|
||||
func TestFindZone(t *testing.T) {
|
||||
srv, _ := setupTestServer(t)
|
||||
|
||||
zone := srv.findZone("metacrypt.svc.mcp.metacircular.net.")
|
||||
zone := srv.findZone("metacrypt.test.example.com.")
|
||||
if zone == nil {
|
||||
t.Fatal("expected to find zone")
|
||||
}
|
||||
if zone.Name != "svc.mcp.metacircular.net" {
|
||||
t.Fatalf("got zone %q, want %q", zone.Name, "svc.mcp.metacircular.net")
|
||||
if zone.Name != "test.example.com" {
|
||||
t.Fatalf("got zone %q, want %q", zone.Name, "test.example.com")
|
||||
}
|
||||
|
||||
zone = srv.findZone("nonexistent.com.")
|
||||
@@ -73,17 +73,17 @@ func TestFindZone(t *testing.T) {
|
||||
|
||||
func TestBuildSOA(t *testing.T) {
|
||||
srv, database := setupTestServer(t)
|
||||
zone, err := database.GetZone("svc.mcp.metacircular.net")
|
||||
zone, err := database.GetZone("test.example.com")
|
||||
if err != nil {
|
||||
t.Fatalf("get zone: %v", err)
|
||||
}
|
||||
|
||||
soa := srv.buildSOA(zone)
|
||||
if soa.Ns != "ns.mcp.metacircular.net." {
|
||||
t.Fatalf("got ns %q, want %q", soa.Ns, "ns.mcp.metacircular.net.")
|
||||
if soa.Ns != "ns.example.com." {
|
||||
t.Fatalf("got ns %q, want %q", soa.Ns, "ns.example.com.")
|
||||
}
|
||||
if soa.Hdr.Name != "svc.mcp.metacircular.net." {
|
||||
t.Fatalf("got name %q, want %q", soa.Hdr.Name, "svc.mcp.metacircular.net.")
|
||||
if soa.Hdr.Name != "test.example.com." {
|
||||
t.Fatalf("got name %q, want %q", soa.Hdr.Name, "test.example.com.")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ func TestRecordToRR_A(t *testing.T) {
|
||||
srv, _ := setupTestServer(t)
|
||||
|
||||
rec := db.Record{Name: "metacrypt", Type: "A", Value: "192.168.88.181", TTL: 300}
|
||||
rr := srv.recordToRR("metacrypt.svc.mcp.metacircular.net.", rec)
|
||||
rr := srv.recordToRR("metacrypt.test.example.com.", rec)
|
||||
if rr == nil {
|
||||
t.Fatal("expected non-nil RR")
|
||||
}
|
||||
@@ -109,7 +109,7 @@ func TestRecordToRR_AAAA(t *testing.T) {
|
||||
srv, _ := setupTestServer(t)
|
||||
|
||||
rec := db.Record{Name: "mcr", Type: "AAAA", Value: "2001:db8::1", TTL: 300}
|
||||
rr := srv.recordToRR("mcr.svc.mcp.metacircular.net.", rec)
|
||||
rr := srv.recordToRR("mcr.test.example.com.", rec)
|
||||
if rr == nil {
|
||||
t.Fatal("expected non-nil RR")
|
||||
}
|
||||
@@ -126,8 +126,8 @@ func TestRecordToRR_AAAA(t *testing.T) {
|
||||
func TestRecordToRR_CNAME(t *testing.T) {
|
||||
srv, _ := setupTestServer(t)
|
||||
|
||||
rec := db.Record{Name: "alias", Type: "CNAME", Value: "metacrypt.svc.mcp.metacircular.net.", TTL: 300}
|
||||
rr := srv.recordToRR("alias.svc.mcp.metacircular.net.", rec)
|
||||
rec := db.Record{Name: "alias", Type: "CNAME", Value: "metacrypt.test.example.com.", TTL: 300}
|
||||
rr := srv.recordToRR("alias.test.example.com.", rec)
|
||||
if rr == nil {
|
||||
t.Fatal("expected non-nil RR")
|
||||
}
|
||||
@@ -136,7 +136,7 @@ func TestRecordToRR_CNAME(t *testing.T) {
|
||||
if !ok {
|
||||
t.Fatalf("expected *dns.CNAME, got %T", rr)
|
||||
}
|
||||
if cname.Target != "metacrypt.svc.mcp.metacircular.net." {
|
||||
t.Fatalf("got target %q, want %q", cname.Target, "metacrypt.svc.mcp.metacircular.net.")
|
||||
if cname.Target != "metacrypt.test.example.com." {
|
||||
t.Fatalf("got target %q, want %q", cname.Target, "metacrypt.test.example.com.")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user