mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
Add SRV Record Type (#136)
* Add support for SRV records for NAMEDOTCOM and ROUTE53. * Improve docs * Rename RR() to ToRR(). * Rename RecordConfig Priority to MxPreference (affects json IR data)
This commit is contained in:
@@ -119,7 +119,12 @@ func runTests(t *testing.T, prv providers.DNSServiceProvider, domainName string,
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !skipVal && i != *startIdx && len(corrections) == 0 {
|
||||
t.Fatalf("Expect changes for all tests, but got none")
|
||||
if tst.Desc != "Empty" {
|
||||
// There are "no corrections" if the last test was programatically
|
||||
// skipped. We detect this (possibly inaccurately) by checking to
|
||||
// see if .Desc is "Empty".
|
||||
t.Fatalf("Expect changes for all tests, but got none")
|
||||
}
|
||||
}
|
||||
for _, c := range corrections {
|
||||
if *verbose {
|
||||
@@ -215,7 +220,7 @@ func ns(name, target string) *rec {
|
||||
|
||||
func mx(name string, prio uint16, target string) *rec {
|
||||
r := makeRec(name, target, "MX")
|
||||
r.Priority = prio
|
||||
r.MxPreference = prio
|
||||
return r
|
||||
}
|
||||
|
||||
@@ -223,6 +228,14 @@ func ptr(name, target string) *rec {
|
||||
return makeRec(name, target, "PTR")
|
||||
}
|
||||
|
||||
func srv(name string, priority, weight, port uint16, target string) *rec {
|
||||
r := makeRec(name, target, "SRV")
|
||||
r.SrvPriority = priority
|
||||
r.SrvWeight = weight
|
||||
r.SrvPort = port
|
||||
return r
|
||||
}
|
||||
|
||||
func makeRec(name, target, typ string) *rec {
|
||||
return &rec{
|
||||
Name: name,
|
||||
@@ -257,8 +270,8 @@ var tests = []*TestCase{
|
||||
tc("Change it", a("@", "1.2.3.4")),
|
||||
tc("Add another", a("@", "1.2.3.4"), a("www", "1.2.3.4")),
|
||||
tc("Add another(same name)", a("@", "1.2.3.4"), a("www", "1.2.3.4"), a("www", "5.6.7.8")),
|
||||
tc("Change a ttl", a("@", "1.2.3.4").ttl(100), a("www", "1.2.3.4"), a("www", "5.6.7.8")),
|
||||
tc("Change single target from set", a("@", "1.2.3.4").ttl(100), a("www", "2.2.2.2"), a("www", "5.6.7.8")),
|
||||
tc("Change a ttl", a("@", "1.2.3.4").ttl(1000), a("www", "1.2.3.4"), a("www", "5.6.7.8")),
|
||||
tc("Change single target from set", a("@", "1.2.3.4").ttl(1000), a("www", "2.2.2.2"), a("www", "5.6.7.8")),
|
||||
tc("Change all ttls", a("@", "1.2.3.4").ttl(500), a("www", "2.2.2.2").ttl(400), a("www", "5.6.7.8").ttl(400)),
|
||||
tc("Delete one", a("@", "1.2.3.4").ttl(500), a("www", "5.6.7.8").ttl(400)),
|
||||
tc("Add back and change ttl", a("www", "5.6.7.8").ttl(700), a("www", "1.2.3.4").ttl(700)),
|
||||
@@ -290,7 +303,7 @@ var tests = []*TestCase{
|
||||
tc("3 MX", mx("@", 5, "foo.com."), mx("@", 5, "foo2.com."), mx("@", 15, "foo3.com.")),
|
||||
tc("Delete one", mx("@", 5, "foo2.com."), mx("@", 15, "foo3.com.")),
|
||||
tc("Change to other name", mx("@", 5, "foo2.com."), mx("mail", 15, "foo3.com.")),
|
||||
tc("Change Priority", mx("@", 7, "foo2.com."), mx("mail", 15, "foo3.com.")),
|
||||
tc("Change Preference", mx("@", 7, "foo2.com."), mx("mail", 15, "foo3.com.")),
|
||||
|
||||
//PTR
|
||||
tc("Empty"),
|
||||
@@ -298,11 +311,22 @@ var tests = []*TestCase{
|
||||
tc("Modify PTR record", ptr("4", "bar.com.")),
|
||||
|
||||
//ALIAS
|
||||
tc("EMPTY"),
|
||||
tc("Empty"),
|
||||
tc("ALIAS at root", alias("@", "foo.com.")).IfHasCapability(providers.CanUseAlias),
|
||||
tc("change it", alias("@", "foo2.com.")).IfHasCapability(providers.CanUseAlias),
|
||||
tc("ALIAS at subdomain", alias("test", "foo.com.")).IfHasCapability(providers.CanUseAlias),
|
||||
|
||||
//SRV
|
||||
tc("Empty"),
|
||||
tc("SRV record", srv("@", 5, 6, 7, "foo.com.")),
|
||||
tc("Second SRV record, same prio", srv("@", 5, 6, 7, "foo.com."), srv("@", 5, 60, 70, "foo2.com.")),
|
||||
tc("3 SRV", srv("@", 5, 6, 7, "foo.com."), srv("@", 5, 60, 70, "foo2.com."), srv("@", 15, 65, 75, "foo3.com.")),
|
||||
tc("Delete one", srv("@", 5, 6, 7, "foo.com."), srv("@", 15, 65, 75, "foo3.com.")),
|
||||
tc("Change Target", srv("@", 5, 6, 7, "foo.com."), srv("@", 15, 65, 75, "foo4.com.")),
|
||||
tc("Change Priority", srv("@", 52, 6, 7, "foo.com."), srv("@", 15, 65, 75, "foo4.com.")),
|
||||
tc("Change Weight", srv("@", 52, 62, 7, "foo.com."), srv("@", 15, 65, 75, "foo4.com.")),
|
||||
tc("Change Port", srv("@", 52, 62, 72, "foo.com."), srv("@", 15, 65, 75, "foo4.com.")),
|
||||
|
||||
//TODO: in validation, check that everything is given in unicode. This case hurts too much.
|
||||
//tc("IDN pre-punycoded", cname("xn--o-0gab", "xn--o-0gab.xn--o-0gab.")),
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"token": "$DNSIMPLE_TOKEN"
|
||||
},
|
||||
"GANDI": {
|
||||
"COMMENT": "5: gandi does not accept ttls less than 300",
|
||||
"COMMENT": "5: gandi does not accept TTLs less than 300",
|
||||
"apikey": "$GANDI_KEY",
|
||||
"domain": "$GANDI_DOMAIN",
|
||||
"knownFailures": "5"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$TTL 300
|
||||
@ IN SOA DEFAULT_NOT_SET. DEFAULT_NOT_SET. 2017070632 3600 600 604800 1440
|
||||
@ IN SOA DEFAULT_NOT_SET. DEFAULT_NOT_SET. 2017071945 3600 600 604800 1440
|
||||
IN NS ns1.otherdomain.tld.
|
||||
IN NS ns2.otherdomain.tld.
|
||||
|
||||
Reference in New Issue
Block a user