-
Notifications
You must be signed in to change notification settings - Fork 379
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
implement namecheap dns management #94
Conversation
Awesome! I'll take a look at this shortly. Have you tried wiring it up to the provider integration test suite? That is a good way to make sure it covers a bunch of the corner cases we have found. Hopefully the readme in there is sufficient, but if not I can help. |
providers/namecheap/namecheap.go
Outdated
|
||
id := 1 | ||
for _, r := range dc.Records { | ||
name := strings.Split(r.NameFQDN, "."+dc.Name)[0] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you trying to extract the name from a FQDN? (i.e. remove the domain suffix?). I recommend using dnsutil.TrimDomainName() instead (warning: it FQDN == domain this returns "@" instead of "").
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes indeed, thanks for the tip! (fixed)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks pretty good. Just a few changes I see right now. Also update the docs to indicate it can do dns hosting too.
providers/namecheap/namecheap.go
Outdated
func splitDomain(domain string) (string, string) { | ||
ds := strings.Split(domain, ".") | ||
dl := len(ds) | ||
tld := ds[dl-1] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This method fails for tlds like `.co.uk'. Should use https://godoc.org/golang.org/x/net/publicsuffix instead.
Its kinda crappy that their api expects SLD/TLD, and https://www.namecheap.com/support/api/methods/domains/get-info.aspx doesn't even split it like that for you.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree on the crappy - implemented pubblicsuffix (hopefully correctly)
providers/namecheap/namecheap.go
Outdated
return newProvider(conf, nil) | ||
} | ||
|
||
func splitDomain(domain string) (string, string) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd name the return values sld and tld for clarity. May also make sense to return an error in case we can't figure it out from the given domain.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
providers/namecheap/namecheap.go
Outdated
continue | ||
} | ||
|
||
if r.Name == "@" { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't need to do this. Set Name to Name, and for NameFQDN use dnsutil.AddOrigin
should be an example of that somewhere.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
providers/namecheap/namecheap.go
Outdated
|
||
var actual []*models.RecordConfig | ||
for _, r := range records.Hosts { | ||
if r.Type == "SOA" || r.Type == "NS" { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does namecheap not let you change NS records? Even for subdomains?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It does! (for subdomains) fixed
providers/namecheap/namecheap.go
Outdated
// changes though | ||
|
||
changes := false | ||
desc := "" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably make desc a []string
, append each description to it, and then use `strings.Join(desc, "\n") to build a final string.
Then you can avoid the changes
cariable altogether and use if len(desc) > 0
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I can see that - I completely stole this section from the gandi provider, so the same can apply there ;)
providers/namecheap/namecheap.go
Outdated
} | ||
|
||
func (n *Namecheap) GetNameservers(domainName string) ([]*models.Nameserver, error) { | ||
// not exactly sure what is wanted here, but currently not needed (TODO) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should return the nameservers to register if you are using namecheap's dns. Looks like maybe
"dns1.registrar-servers.com", "dns2.registrar-servers.com"
for the basic dns servers?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had suspected that and tried it, but namecheap doesn't like it. When set that way :
CREATE NS dnscontrol.com dns2.registrar-servers.com. 300
RECREATING ZONE: dnscontrol.com
Namecheap returns: <nil>
FAILURE! Error 5050900: INVALID_NAME: NS record can't be set up for a @ or * host names
The best I could figure was to have it be a noop, but I'm open to interpretation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, this is pretty common. Too many providers control those way too tightly. The general policy in this case is to remove any NS records with Name @
at the beginning of GetDomainCorrections
. Something like:
dc.Filter(func(r *models.RecordConfig) bool {
if r.Type == "NS" && r.Name == "@" {
//check to make sure it looks like a namecheap server and print a warning if it does not.
return false
}
return true
})
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That would be a way to protect against that error in general, but I don't think it is applicable to the GetNameservers method, which it sounds like will need to remain a noop.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, GetNameservers needs to be implemented. It does more than just create NS records. It also feeds the nameservers we give to the registrar part.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm.. so are you saying implement the defaults for GetNameservers, then drop it (or filter it out) in GetDomainCorrections?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct.
providers/namecheap/namecheap.go
Outdated
id := 1 | ||
for _, r := range dc.Records { | ||
name := strings.Split(r.NameFQDN, "."+dc.Name)[0] | ||
if name == dc.Name { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you leave the Name as I recommend above, this may not need to be done either.
providers/namecheap/namecheap.go
Outdated
|
||
sld, tld := splitDomain(dc.Name) | ||
result, err := n.client.DomainDNSSetHosts(sld, tld, recs) | ||
fmt.Println("Namecheap returns:", result) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove debug before finalizing.
Build is failing because the publicsuffix package needs to be copied into the repo. I just added it to master, so next time you push it should pass. |
I think everything has been fixed here - I welcome further feedback. I did wire it up to the integration tests, but it looks like namecheap adds in default records when a zone is emptied, and this breaks all tests. Also note that I uncovered what I expect is a bug in the go-namecheap module and submitted it as billputer/go-namecheap#6 |
That sounds crappy. I'll try it when I get back to my desk and see what I can figure out. If that PR doesn't get merged quickly, it is possible to vendor in your changes regardless. |
Ok, I think I got past that particular issue, just by filtering out those records and pretending like they don't exist. Now I'm getting rate limited running the test suite. Can you give me permission to push to your pr branch? It may be easier to just make a few edits directly. |
Oh, somehow I did push to that. Hmm. |
What the hell did I do? I can fix. |
I have no idea what I did. I was trying to add changes to your branch, but it did not do what I expected. If you re-push your changes to your repo, this may reopen. I'm sorry. I also pushed your changes as the namecheap branch to this repo. |
I reopened it as #96. Its quite nearly ready anyway. |
providers-test-netcup.log appended: === RUN TestDNSProviders === RUN TestDNSProviders/oXXX.de === RUN TestDNSProviders/oXXX.de/Clean_Slate:Empty integration_test.go:220: DELETE A test.oXXX.de 1.2.3.4 ttl=0, Netcup ID: 50790741 === RUN TestDNSProviders/oXXX.de/00:GeneralACD:Create_an_A_record integration_test.go:220: CREATE A oXXX.de 1.1.1.1 ttl=0 === RUN TestDNSProviders/oXXX.de/00:GeneralACD:Change_it integration_test.go:220: MODIFY A oXXX.de: (1.1.1.1 ttl=0) -> (1.2.3.4 ttl=0), Netcup ID: 50825306: === RUN TestDNSProviders/oXXX.de/00:GeneralACD:Add_another integration_test.go:220: CREATE A www.oXXX.de 1.2.3.4 ttl=0 === RUN TestDNSProviders/oXXX.de/00:GeneralACD:Add_another(same_name) integration_test.go:220: CREATE A www.oXXX.de 5.6.7.8 ttl=0 === RUN TestDNSProviders/oXXX.de/00:GeneralACD:Change_a_ttl integration_test.go:216: Expected changes, but got none === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty integration_test.go:220: DELETE A oXXX.de 1.2.3.4 ttl=0, Netcup ID: 50825306 integration_test.go:220: DELETE A www.oXXX.de 1.2.3.4 ttl=0, Netcup ID: 50825307 integration_test.go:220: DELETE A www.oXXX.de 5.6.7.8 ttl=0, Netcup ID: 50825308 === RUN TestDNSProviders/oXXX.de/01:WildcardACD:Create_wildcard integration_test.go:220: CREATE A *.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A www.oXXX.de 1.1.1.1 ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#01 integration_test.go:220: DELETE A *.oXXX.de 1.2.3.4 ttl=0, Netcup ID: 50825309 integration_test.go:220: DELETE A www.oXXX.de 1.1.1.1 ttl=0, Netcup ID: 50825310 === RUN TestDNSProviders/oXXX.de/02:CNAME:Create_a_CNAME integration_test.go:220: CREATE CNAME foo.oXXX.de google.com. ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#02 integration_test.go:220: DELETE CNAME foo.oXXX.de google.com. ttl=0, Netcup ID: 50825311 === RUN TestDNSProviders/oXXX.de/03:MX:MX_record integration_test.go:220: CREATE MX oXXX.de 5 foo.com. ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#03 integration_test.go:220: DELETE MX oXXX.de 5 foo.com. ttl=0, Netcup ID: 50825312 === RUN TestDNSProviders/oXXX.de/04:Null_MX_***SKIPPED(excluded_by_not("NETCUP"))***:Empty === RUN TestDNSProviders/oXXX.de/05:NS_***SKIPPED(excluded_by_not("NETCUP"))***:Empty === RUN TestDNSProviders/oXXX.de/06:IGNORE_NAME_function:Create_some_records integration_test.go:220: CREATE TXT foo.oXXX.de "simple" ttl=0 integration_test.go:220: CREATE A foo.oXXX.de 1.2.3.4 ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE TXT foo.oXXX.de "simple" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#04 integration_test.go:220: DELETE A foo.oXXX.de 1.2.3.4 ttl=0, Netcup ID: 50825313 === RUN TestDNSProviders/oXXX.de/07:IGNORE_NAME_apex:Create_some_records integration_test.go:220: CREATE TXT bar.oXXX.de "stringbar" ttl=0 integration_test.go:220: CREATE A bar.oXXX.de 2.4.6.8 ttl=0 integration_test.go:220: CREATE A oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE TXT oXXX.de "simple" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 2. integration_test.go:241: UNEXPECTED #0: CREATE TXT bar.oXXX.de "stringbar" ttl=0 integration_test.go:241: UNEXPECTED StackExchange#1: CREATE TXT oXXX.de "simple" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#05 integration_test.go:220: DELETE A bar.oXXX.de 2.4.6.8 ttl=0, Netcup ID: 50825314 integration_test.go:220: DELETE A oXXX.de 1.2.3.4 ttl=0, Netcup ID: 50825315 === RUN TestDNSProviders/oXXX.de/08:IGNORE_TARGET_function:Create_some_records integration_test.go:220: CREATE CNAME bar.oXXX.de test.bar.com. ttl=0 integration_test.go:220: CREATE CNAME foo.oXXX.de test.foo.com. ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#06 integration_test.go:220: DELETE CNAME bar.oXXX.de test.bar.com. ttl=0, Netcup ID: 50825316 integration_test.go:220: DELETE CNAME foo.oXXX.de test.foo.com. ttl=0, Netcup ID: 50825317 === RUN TestDNSProviders/oXXX.de/09:simple_TXT:Create_a_TXT integration_test.go:220: CREATE TXT foo.oXXX.de "simple" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE TXT foo.oXXX.de "simple" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#07 === RUN TestDNSProviders/oXXX.de/10:simple_TXT-spf1:Create_a_TXT/SPF integration_test.go:220: CREATE TXT foo.oXXX.de "v=spf1 ip4:99.99.99.99 -all" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE TXT foo.oXXX.de "v=spf1 ip4:99.99.99.99 -all" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#08 === RUN TestDNSProviders/oXXX.de/11:long_TXT:Create_long_TXT integration_test.go:220: CREATE TXT foo.oXXX.de "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE TXT foo.oXXX.de "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#09 === RUN TestDNSProviders/oXXX.de/12:complex_TXT:TXT_with_0-octel_string integration_test.go:206: ***SKIPPED(PROVIDER DOES NOT SUPPORT 'txtstring is empty' ::"12:complex TXT") === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#10 === RUN TestDNSProviders/oXXX.de/13:long_TXT:Create_a_505_TXT integration_test.go:220: CREATE TXT foo257.oXXX.de "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE TXT foo257.oXXX.de "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#11 === RUN TestDNSProviders/oXXX.de/14:TXTMulti:Create_TXTMulti_1 integration_test.go:220: CREATE TXT foo1.oXXX.de "simple" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE TXT foo1.oXXX.de "simple" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#12 === RUN TestDNSProviders/oXXX.de/15:TXTMulti-same:Create_TXTMulti_1 integration_test.go:220: CREATE TXT foo.oXXX.de "simple" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE TXT foo.oXXX.de "simple" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#13 === RUN TestDNSProviders/oXXX.de/16:TypeChange:Create_a_CNAME integration_test.go:220: CREATE CNAME foo.oXXX.de google.com. ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#14 integration_test.go:220: DELETE CNAME foo.oXXX.de google.com. ttl=0, Netcup ID: 50825318 === RUN TestDNSProviders/oXXX.de/17:Case_Sensitivity:Create_CAPS integration_test.go:220: CREATE MX bar.oXXX.de 5 bar.com. ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#15 integration_test.go:220: DELETE MX bar.oXXX.de 5 bar.com. ttl=0, Netcup ID: 50825319 === RUN TestDNSProviders/oXXX.de/18:IDNA:Internationalized_name integration_test.go:220: CREATE A xn--ndaaa.oXXX.de 1.2.3.4 ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#16 integration_test.go:220: DELETE A xn--ndaaa.oXXX.de 1.2.3.4 ttl=0, Netcup ID: 50825320 === RUN TestDNSProviders/oXXX.de/19:IDNAs_in_CNAME_targets:IDN_CNAME_AND_Target integration_test.go:220: CREATE CNAME xn--o-0gab.oXXX.de xn--ndaaa.xn--vhquv. ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#17 integration_test.go:220: DELETE CNAME xn--o-0gab.oXXX.de xn--ndaaa.xn--vhquv. ttl=0, Netcup ID: 50825321 === RUN TestDNSProviders/oXXX.de/20:pager101:99_records integration_test.go:220: CREATE A rec0000.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0001.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0002.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0003.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0004.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0005.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0006.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0007.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0008.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0009.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0010.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0011.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0012.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0013.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0014.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0015.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0016.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0017.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0018.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0019.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0020.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0021.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0022.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0023.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0024.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0025.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0026.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0027.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0028.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0029.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0030.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0031.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0032.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0033.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0034.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0035.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0036.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0037.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0038.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0039.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0040.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0041.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0042.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0043.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0044.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0045.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0046.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0047.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0048.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0049.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0050.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0051.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0052.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0053.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0054.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0055.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0056.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0057.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0058.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0059.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0060.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0061.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0062.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0063.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0064.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0065.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0066.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0067.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0068.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0069.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0070.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0071.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0072.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0073.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0074.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0075.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0076.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0077.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0078.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0079.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0080.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0081.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0082.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0083.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0084.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0085.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0086.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0087.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0088.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0089.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0090.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0091.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0092.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0093.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0094.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0095.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0096.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0097.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0098.oXXX.de 1.2.3.4 ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 99. integration_test.go:241: UNEXPECTED #0: CREATE A rec0000.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#1: CREATE A rec0001.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#2: CREATE A rec0002.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#3: CREATE A rec0003.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#4: CREATE A rec0004.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#5: CREATE A rec0005.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#6: CREATE A rec0006.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#7: CREATE A rec0007.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#8: CREATE A rec0008.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#9: CREATE A rec0009.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#10: CREATE A rec0010.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#11: CREATE A rec0011.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#12: CREATE A rec0012.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#13: CREATE A rec0013.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#14: CREATE A rec0014.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#15: CREATE A rec0015.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#16: CREATE A rec0016.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#17: CREATE A rec0017.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#18: CREATE A rec0018.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#19: CREATE A rec0019.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#20: CREATE A rec0020.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#21: CREATE A rec0021.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#22: CREATE A rec0022.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#23: CREATE A rec0023.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#24: CREATE A rec0024.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#25: CREATE A rec0025.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#26: CREATE A rec0026.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#27: CREATE A rec0027.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#28: CREATE A rec0028.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#29: CREATE A rec0029.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#30: CREATE A rec0030.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#31: CREATE A rec0031.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#32: CREATE A rec0032.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#33: CREATE A rec0033.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#34: CREATE A rec0034.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#35: CREATE A rec0035.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#36: CREATE A rec0036.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#37: CREATE A rec0037.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#38: CREATE A rec0038.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#39: CREATE A rec0039.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#40: CREATE A rec0040.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#41: CREATE A rec0041.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#42: CREATE A rec0042.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#43: CREATE A rec0043.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#44: CREATE A rec0044.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#45: CREATE A rec0045.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#46: CREATE A rec0046.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#47: CREATE A rec0047.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#48: CREATE A rec0048.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#49: CREATE A rec0049.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#50: CREATE A rec0050.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#51: CREATE A rec0051.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#52: CREATE A rec0052.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#53: CREATE A rec0053.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#54: CREATE A rec0054.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#55: CREATE A rec0055.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#56: CREATE A rec0056.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#57: CREATE A rec0057.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#58: CREATE A rec0058.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#59: CREATE A rec0059.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#60: CREATE A rec0060.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#61: CREATE A rec0061.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#62: CREATE A rec0062.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#63: CREATE A rec0063.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#64: CREATE A rec0064.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#65: CREATE A rec0065.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#66: CREATE A rec0066.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#67: CREATE A rec0067.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#68: CREATE A rec0068.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#69: CREATE A rec0069.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#70: CREATE A rec0070.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#71: CREATE A rec0071.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#72: CREATE A rec0072.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#73: CREATE A rec0073.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#74: CREATE A rec0074.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#75: CREATE A rec0075.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#76: CREATE A rec0076.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#77: CREATE A rec0077.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#78: CREATE A rec0078.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#79: CREATE A rec0079.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#80: CREATE A rec0080.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#81: CREATE A rec0081.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#82: CREATE A rec0082.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#83: CREATE A rec0083.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#84: CREATE A rec0084.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#85: CREATE A rec0085.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#86: CREATE A rec0086.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#87: CREATE A rec0087.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#88: CREATE A rec0088.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#89: CREATE A rec0089.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#90: CREATE A rec0090.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#91: CREATE A rec0091.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#92: CREATE A rec0092.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#93: CREATE A rec0093.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#94: CREATE A rec0094.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#95: CREATE A rec0095.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#96: CREATE A rec0096.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#97: CREATE A rec0097.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED StackExchange#98: CREATE A rec0098.oXXX.de 1.2.3.4 ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#18 === RUN TestDNSProviders/oXXX.de/21:pager601_***SKIPPED(disabled_by_only)***:Empty === RUN TestDNSProviders/oXXX.de/22:pager1201_***SKIPPED(disabled_by_only)***:Empty === RUN TestDNSProviders/oXXX.de/23:CAA:CAA_record integration_test.go:220: CREATE CAA oXXX.de 0 issue "letsencrypt.org" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE CAA oXXX.de 0 issue "letsencrypt.org" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#19 === RUN TestDNSProviders/oXXX.de/24:CAA_with_;:CAA_many_records integration_test.go:220: CREATE CAA oXXX.de 0 issuewild ";" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE CAA oXXX.de 0 issuewild ";" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#20 === RUN TestDNSProviders/oXXX.de/25:Issue_1374:CAA_spaces integration_test.go:220: CREATE CAA oXXX.de 0 issue "letsencrypt.org; validationmethods=dns-01; accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/1234" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE CAA oXXX.de 0 issue "letsencrypt.org; validationmethods=dns-01; accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/1234" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#21 === RUN TestDNSProviders/oXXX.de/26:NAPTR_***SKIPPED(CanUseNAPTR_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/27:PTR_***SKIPPED(CanUsePTR_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/28:SOA_***SKIPPED(CanUseSOA_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/29:SRV:SRV_record integration_test.go:220: CREATE SRV _sip._tcp.oXXX.de 5 6 7 foo.com. ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE SRV _sip._tcp.oXXX.de 5 6 7 foo.com. ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#22 === RUN TestDNSProviders/oXXX.de/30:SRV_w/_null_target:Null_Target integration_test.go:220: CREATE SRV _sip._tcp.oXXX.de 52 62 72 foo.com. ttl=0 integration_test.go:220: CREATE SRV _sip._tcp.oXXX.de 15 65 75 . ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 2. integration_test.go:241: UNEXPECTED #0: CREATE SRV _sip._tcp.oXXX.de 52 62 72 foo.com. ttl=0 integration_test.go:241: UNEXPECTED StackExchange#1: CREATE SRV _sip._tcp.oXXX.de 15 65 75 . ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#23 === RUN TestDNSProviders/oXXX.de/31:SSHFP_***SKIPPED(CanUseSSHFP_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/32:TLSA_***SKIPPED(CanUseTLSA_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/33:DS_***SKIPPED(CanUseDS_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/34:DS_(children_only)_***SKIPPED(CanUseDSForChildren_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/35:DS_(children_only)_CLOUDNS_***SKIPPED(CanUseDSForChildren_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/36:ALIAS_***SKIPPED(CanUseAlias_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/37:AZURE_ALIAS_***SKIPPED(CanUseAzureAlias_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/38:R53_ALIAS2_***SKIPPED(CanUseRoute53Alias_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/39:R53_ALIAS_ORDER_***SKIPPED(CanUseRoute53Alias_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/40:CF_REDIRECT_***SKIPPED(disabled_by_only)***:Empty === RUN TestDNSProviders/oXXX.de/41:CF_PROXY_***SKIPPED(disabled_by_only)***:Empty === RUN TestDNSProviders/oXXX.de/42:CF_WORKER_ROUTE_***SKIPPED(disabled_by_only)***:Empty --- FAIL: TestDNSProviders (25.84s) --- FAIL: TestDNSProviders/oXXX.de (24.98s) --- PASS: TestDNSProviders/oXXX.de/Clean_Slate:Empty (0.25s) --- PASS: TestDNSProviders/oXXX.de/00:GeneralACD:Create_an_A_record (0.33s) --- PASS: TestDNSProviders/oXXX.de/00:GeneralACD:Change_it (0.32s) --- PASS: TestDNSProviders/oXXX.de/00:GeneralACD:Add_another (0.34s) --- PASS: TestDNSProviders/oXXX.de/00:GeneralACD:Add_another(same_name) (0.38s) --- FAIL: TestDNSProviders/oXXX.de/00:GeneralACD:Change_a_ttl (0.11s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty (0.59s) --- PASS: TestDNSProviders/oXXX.de/01:WildcardACD:Create_wildcard (0.46s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#01 (0.37s) --- PASS: TestDNSProviders/oXXX.de/02:CNAME:Create_a_CNAME (0.31s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#02 (0.23s) --- PASS: TestDNSProviders/oXXX.de/03:MX:MX_record (0.31s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#03 (0.21s) --- PASS: TestDNSProviders/oXXX.de/04:Null_MX_***SKIPPED(excluded_by_not("NETCUP"))***:Empty (0.10s) --- PASS: TestDNSProviders/oXXX.de/05:NS_***SKIPPED(excluded_by_not("NETCUP"))***:Empty (0.08s) --- FAIL: TestDNSProviders/oXXX.de/06:IGNORE_NAME_function:Create_some_records (0.36s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#04 (0.24s) --- FAIL: TestDNSProviders/oXXX.de/07:IGNORE_NAME_apex:Create_some_records (0.57s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#05 (0.35s) --- PASS: TestDNSProviders/oXXX.de/08:IGNORE_TARGET_function:Create_some_records (0.45s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#06 (0.38s) --- FAIL: TestDNSProviders/oXXX.de/09:simple_TXT:Create_a_TXT (0.25s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#07 (0.08s) --- FAIL: TestDNSProviders/oXXX.de/10:simple_TXT-spf1:Create_a_TXT/SPF (0.28s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#08 (0.12s) --- FAIL: TestDNSProviders/oXXX.de/11:long_TXT:Create_long_TXT (0.25s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#09 (0.11s) --- SKIP: TestDNSProviders/oXXX.de/12:complex_TXT:TXT_with_0-octel_string (0.00s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#10 (0.10s) --- FAIL: TestDNSProviders/oXXX.de/13:long_TXT:Create_a_505_TXT (0.25s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#11 (0.08s) --- FAIL: TestDNSProviders/oXXX.de/14:TXTMulti:Create_TXTMulti_1 (0.26s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#12 (0.09s) --- FAIL: TestDNSProviders/oXXX.de/15:TXTMulti-same:Create_TXTMulti_1 (0.24s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#13 (0.10s) --- PASS: TestDNSProviders/oXXX.de/16:TypeChange:Create_a_CNAME (0.34s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#14 (0.23s) --- PASS: TestDNSProviders/oXXX.de/17:Case_Sensitivity:Create_CAPS (0.33s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#15 (0.22s) --- PASS: TestDNSProviders/oXXX.de/18:IDNA:Internationalized_name (0.34s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#16 (0.21s) --- PASS: TestDNSProviders/oXXX.de/19:IDNAs_in_CNAME_targets:IDN_CNAME_AND_Target (0.29s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#17 (0.24s) --- FAIL: TestDNSProviders/oXXX.de/20:pager101:99_records (11.55s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#18 (0.05s) --- PASS: TestDNSProviders/oXXX.de/21:pager601_***SKIPPED(disabled_by_only)***:Empty (0.05s) --- PASS: TestDNSProviders/oXXX.de/22:pager1201_***SKIPPED(disabled_by_only)***:Empty (0.05s) --- FAIL: TestDNSProviders/oXXX.de/23:CAA:CAA_record (0.20s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#19 (0.05s) --- FAIL: TestDNSProviders/oXXX.de/24:CAA_with_;:CAA_many_records (0.19s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#20 (0.06s) --- FAIL: TestDNSProviders/oXXX.de/25:Issue_1374:CAA_spaces (0.17s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#21 (0.07s) --- PASS: TestDNSProviders/oXXX.de/26:NAPTR_***SKIPPED(CanUseNAPTR_not_supported)***:Empty (0.05s) --- PASS: TestDNSProviders/oXXX.de/27:PTR_***SKIPPED(CanUsePTR_not_supported)***:Empty (0.06s) --- PASS: TestDNSProviders/oXXX.de/28:SOA_***SKIPPED(CanUseSOA_not_supported)***:Empty (0.06s) --- FAIL: TestDNSProviders/oXXX.de/29:SRV:SRV_record (0.17s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#22 (0.06s) --- FAIL: TestDNSProviders/oXXX.de/30:SRV_w/_null_target:Null_Target (0.25s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#23 (0.08s) --- PASS: TestDNSProviders/oXXX.de/31:SSHFP_***SKIPPED(CanUseSSHFP_not_supported)***:Empty (0.06s) --- PASS: TestDNSProviders/oXXX.de/32:TLSA_***SKIPPED(CanUseTLSA_not_supported)***:Empty (0.06s) --- PASS: TestDNSProviders/oXXX.de/33:DS_***SKIPPED(CanUseDS_not_supported)***:Empty (0.05s) --- PASS: TestDNSProviders/oXXX.de/34:DS_(children_only)_***SKIPPED(CanUseDSForChildren_not_supported)***:Empty (0.05s) --- PASS: TestDNSProviders/oXXX.de/35:DS_(children_only)_CLOUDNS_***SKIPPED(CanUseDSForChildren_not_supported)***:Empty (0.06s) --- PASS: TestDNSProviders/oXXX.de/36:ALIAS_***SKIPPED(CanUseAlias_not_supported)***:Empty (0.06s) --- PASS: TestDNSProviders/oXXX.de/37:AZURE_ALIAS_***SKIPPED(CanUseAzureAlias_not_supported)***:Empty (0.05s) --- PASS: TestDNSProviders/oXXX.de/38:R53_ALIAS2_***SKIPPED(CanUseRoute53Alias_not_supported)***:Empty (0.05s) --- PASS: TestDNSProviders/oXXX.de/39:R53_ALIAS_ORDER_***SKIPPED(CanUseRoute53Alias_not_supported)***:Empty (0.06s) --- PASS: TestDNSProviders/oXXX.de/40:CF_REDIRECT_***SKIPPED(disabled_by_only)***:Empty (0.05s) --- PASS: TestDNSProviders/oXXX.de/41:CF_PROXY_***SKIPPED(disabled_by_only)***:Empty (0.05s) --- PASS: TestDNSProviders/oXXX.de/42:CF_WORKER_ROUTE_***SKIPPED(disabled_by_only)***:Empty (0.06s) === RUN TestDualProviders integration_test.go:312: Skipping. DocDualHost == Cannot --- SKIP: TestDualProviders (0.06s) FAIL exit status 1 FAIL github.com/StackExchange/dnscontrol/v3/integrationTest 25.942s
providers-test-netcup.log appended: === RUN TestDNSProviders === RUN TestDNSProviders/oXXX.de === RUN TestDNSProviders/oXXX.de/Clean_Slate:Empty integration_test.go:220: DELETE A test.oXXX.de 1.2.3.4 ttl=0, Netcup ID: 50790741 === RUN TestDNSProviders/oXXX.de/00:GeneralACD:Create_an_A_record integration_test.go:220: CREATE A oXXX.de 1.1.1.1 ttl=0 === RUN TestDNSProviders/oXXX.de/00:GeneralACD:Change_it integration_test.go:220: MODIFY A oXXX.de: (1.1.1.1 ttl=0) -> (1.2.3.4 ttl=0), Netcup ID: 50825306: === RUN TestDNSProviders/oXXX.de/00:GeneralACD:Add_another integration_test.go:220: CREATE A www.oXXX.de 1.2.3.4 ttl=0 === RUN TestDNSProviders/oXXX.de/00:GeneralACD:Add_another(same_name) integration_test.go:220: CREATE A www.oXXX.de 5.6.7.8 ttl=0 === RUN TestDNSProviders/oXXX.de/00:GeneralACD:Change_a_ttl integration_test.go:216: Expected changes, but got none === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty integration_test.go:220: DELETE A oXXX.de 1.2.3.4 ttl=0, Netcup ID: 50825306 integration_test.go:220: DELETE A www.oXXX.de 1.2.3.4 ttl=0, Netcup ID: 50825307 integration_test.go:220: DELETE A www.oXXX.de 5.6.7.8 ttl=0, Netcup ID: 50825308 === RUN TestDNSProviders/oXXX.de/01:WildcardACD:Create_wildcard integration_test.go:220: CREATE A *.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A www.oXXX.de 1.1.1.1 ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#01 integration_test.go:220: DELETE A *.oXXX.de 1.2.3.4 ttl=0, Netcup ID: 50825309 integration_test.go:220: DELETE A www.oXXX.de 1.1.1.1 ttl=0, Netcup ID: 50825310 === RUN TestDNSProviders/oXXX.de/02:CNAME:Create_a_CNAME integration_test.go:220: CREATE CNAME foo.oXXX.de google.com. ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#02 integration_test.go:220: DELETE CNAME foo.oXXX.de google.com. ttl=0, Netcup ID: 50825311 === RUN TestDNSProviders/oXXX.de/03:MX:MX_record integration_test.go:220: CREATE MX oXXX.de 5 foo.com. ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#03 integration_test.go:220: DELETE MX oXXX.de 5 foo.com. ttl=0, Netcup ID: 50825312 === RUN TestDNSProviders/oXXX.de/04:Null_MX_***SKIPPED(excluded_by_not("NETCUP"))***:Empty === RUN TestDNSProviders/oXXX.de/05:NS_***SKIPPED(excluded_by_not("NETCUP"))***:Empty === RUN TestDNSProviders/oXXX.de/06:IGNORE_NAME_function:Create_some_records integration_test.go:220: CREATE TXT foo.oXXX.de "simple" ttl=0 integration_test.go:220: CREATE A foo.oXXX.de 1.2.3.4 ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE TXT foo.oXXX.de "simple" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#04 integration_test.go:220: DELETE A foo.oXXX.de 1.2.3.4 ttl=0, Netcup ID: 50825313 === RUN TestDNSProviders/oXXX.de/07:IGNORE_NAME_apex:Create_some_records integration_test.go:220: CREATE TXT bar.oXXX.de "stringbar" ttl=0 integration_test.go:220: CREATE A bar.oXXX.de 2.4.6.8 ttl=0 integration_test.go:220: CREATE A oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE TXT oXXX.de "simple" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 2. integration_test.go:241: UNEXPECTED #0: CREATE TXT bar.oXXX.de "stringbar" ttl=0 integration_test.go:241: UNEXPECTED #1: CREATE TXT oXXX.de "simple" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#05 integration_test.go:220: DELETE A bar.oXXX.de 2.4.6.8 ttl=0, Netcup ID: 50825314 integration_test.go:220: DELETE A oXXX.de 1.2.3.4 ttl=0, Netcup ID: 50825315 === RUN TestDNSProviders/oXXX.de/08:IGNORE_TARGET_function:Create_some_records integration_test.go:220: CREATE CNAME bar.oXXX.de test.bar.com. ttl=0 integration_test.go:220: CREATE CNAME foo.oXXX.de test.foo.com. ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#06 integration_test.go:220: DELETE CNAME bar.oXXX.de test.bar.com. ttl=0, Netcup ID: 50825316 integration_test.go:220: DELETE CNAME foo.oXXX.de test.foo.com. ttl=0, Netcup ID: 50825317 === RUN TestDNSProviders/oXXX.de/09:simple_TXT:Create_a_TXT integration_test.go:220: CREATE TXT foo.oXXX.de "simple" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE TXT foo.oXXX.de "simple" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#07 === RUN TestDNSProviders/oXXX.de/10:simple_TXT-spf1:Create_a_TXT/SPF integration_test.go:220: CREATE TXT foo.oXXX.de "v=spf1 ip4:99.99.99.99 -all" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE TXT foo.oXXX.de "v=spf1 ip4:99.99.99.99 -all" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#08 === RUN TestDNSProviders/oXXX.de/11:long_TXT:Create_long_TXT integration_test.go:220: CREATE TXT foo.oXXX.de "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE TXT foo.oXXX.de "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#09 === RUN TestDNSProviders/oXXX.de/12:complex_TXT:TXT_with_0-octel_string integration_test.go:206: ***SKIPPED(PROVIDER DOES NOT SUPPORT 'txtstring is empty' ::"12:complex TXT") === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#10 === RUN TestDNSProviders/oXXX.de/13:long_TXT:Create_a_505_TXT integration_test.go:220: CREATE TXT foo257.oXXX.de "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE TXT foo257.oXXX.de "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#11 === RUN TestDNSProviders/oXXX.de/14:TXTMulti:Create_TXTMulti_1 integration_test.go:220: CREATE TXT foo1.oXXX.de "simple" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE TXT foo1.oXXX.de "simple" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#12 === RUN TestDNSProviders/oXXX.de/15:TXTMulti-same:Create_TXTMulti_1 integration_test.go:220: CREATE TXT foo.oXXX.de "simple" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE TXT foo.oXXX.de "simple" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#13 === RUN TestDNSProviders/oXXX.de/16:TypeChange:Create_a_CNAME integration_test.go:220: CREATE CNAME foo.oXXX.de google.com. ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#14 integration_test.go:220: DELETE CNAME foo.oXXX.de google.com. ttl=0, Netcup ID: 50825318 === RUN TestDNSProviders/oXXX.de/17:Case_Sensitivity:Create_CAPS integration_test.go:220: CREATE MX bar.oXXX.de 5 bar.com. ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#15 integration_test.go:220: DELETE MX bar.oXXX.de 5 bar.com. ttl=0, Netcup ID: 50825319 === RUN TestDNSProviders/oXXX.de/18:IDNA:Internationalized_name integration_test.go:220: CREATE A xn--ndaaa.oXXX.de 1.2.3.4 ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#16 integration_test.go:220: DELETE A xn--ndaaa.oXXX.de 1.2.3.4 ttl=0, Netcup ID: 50825320 === RUN TestDNSProviders/oXXX.de/19:IDNAs_in_CNAME_targets:IDN_CNAME_AND_Target integration_test.go:220: CREATE CNAME xn--o-0gab.oXXX.de xn--ndaaa.xn--vhquv. ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#17 integration_test.go:220: DELETE CNAME xn--o-0gab.oXXX.de xn--ndaaa.xn--vhquv. ttl=0, Netcup ID: 50825321 === RUN TestDNSProviders/oXXX.de/20:pager101:99_records integration_test.go:220: CREATE A rec0000.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0001.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0002.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0003.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0004.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0005.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0006.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0007.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0008.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0009.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0010.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0011.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0012.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0013.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0014.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0015.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0016.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0017.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0018.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0019.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0020.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0021.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0022.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0023.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0024.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0025.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0026.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0027.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0028.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0029.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0030.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0031.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0032.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0033.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0034.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0035.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0036.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0037.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0038.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0039.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0040.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0041.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0042.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0043.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0044.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0045.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0046.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0047.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0048.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0049.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0050.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0051.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0052.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0053.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0054.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0055.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0056.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0057.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0058.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0059.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0060.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0061.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0062.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0063.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0064.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0065.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0066.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0067.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0068.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0069.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0070.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0071.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0072.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0073.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0074.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0075.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0076.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0077.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0078.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0079.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0080.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0081.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0082.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0083.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0084.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0085.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0086.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0087.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0088.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0089.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0090.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0091.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0092.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0093.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0094.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0095.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0096.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0097.oXXX.de 1.2.3.4 ttl=0 integration_test.go:220: CREATE A rec0098.oXXX.de 1.2.3.4 ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 99. integration_test.go:241: UNEXPECTED #0: CREATE A rec0000.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #1: CREATE A rec0001.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #2: CREATE A rec0002.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #3: CREATE A rec0003.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #4: CREATE A rec0004.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #5: CREATE A rec0005.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #6: CREATE A rec0006.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #7: CREATE A rec0007.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #8: CREATE A rec0008.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #9: CREATE A rec0009.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #10: CREATE A rec0010.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #11: CREATE A rec0011.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #12: CREATE A rec0012.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #13: CREATE A rec0013.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #14: CREATE A rec0014.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #15: CREATE A rec0015.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #16: CREATE A rec0016.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #17: CREATE A rec0017.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #18: CREATE A rec0018.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #19: CREATE A rec0019.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #20: CREATE A rec0020.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #21: CREATE A rec0021.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #22: CREATE A rec0022.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #23: CREATE A rec0023.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #24: CREATE A rec0024.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #25: CREATE A rec0025.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #26: CREATE A rec0026.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #27: CREATE A rec0027.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #28: CREATE A rec0028.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #29: CREATE A rec0029.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #30: CREATE A rec0030.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #31: CREATE A rec0031.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #32: CREATE A rec0032.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #33: CREATE A rec0033.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #34: CREATE A rec0034.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #35: CREATE A rec0035.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #36: CREATE A rec0036.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #37: CREATE A rec0037.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #38: CREATE A rec0038.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #39: CREATE A rec0039.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #40: CREATE A rec0040.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #41: CREATE A rec0041.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #42: CREATE A rec0042.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #43: CREATE A rec0043.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #44: CREATE A rec0044.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #45: CREATE A rec0045.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #46: CREATE A rec0046.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #47: CREATE A rec0047.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #48: CREATE A rec0048.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #49: CREATE A rec0049.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #50: CREATE A rec0050.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #51: CREATE A rec0051.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #52: CREATE A rec0052.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #53: CREATE A rec0053.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #54: CREATE A rec0054.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #55: CREATE A rec0055.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #56: CREATE A rec0056.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #57: CREATE A rec0057.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #58: CREATE A rec0058.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #59: CREATE A rec0059.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #60: CREATE A rec0060.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #61: CREATE A rec0061.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #62: CREATE A rec0062.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #63: CREATE A rec0063.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #64: CREATE A rec0064.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #65: CREATE A rec0065.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #66: CREATE A rec0066.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #67: CREATE A rec0067.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #68: CREATE A rec0068.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #69: CREATE A rec0069.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #70: CREATE A rec0070.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #71: CREATE A rec0071.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #72: CREATE A rec0072.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #73: CREATE A rec0073.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #74: CREATE A rec0074.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #75: CREATE A rec0075.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #76: CREATE A rec0076.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #77: CREATE A rec0077.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #78: CREATE A rec0078.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #79: CREATE A rec0079.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #80: CREATE A rec0080.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #81: CREATE A rec0081.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #82: CREATE A rec0082.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #83: CREATE A rec0083.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #84: CREATE A rec0084.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #85: CREATE A rec0085.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #86: CREATE A rec0086.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #87: CREATE A rec0087.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #88: CREATE A rec0088.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #89: CREATE A rec0089.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #90: CREATE A rec0090.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #91: CREATE A rec0091.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #92: CREATE A rec0092.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #93: CREATE A rec0093.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #94: CREATE A rec0094.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #95: CREATE A rec0095.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #96: CREATE A rec0096.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #97: CREATE A rec0097.oXXX.de 1.2.3.4 ttl=0 integration_test.go:241: UNEXPECTED #98: CREATE A rec0098.oXXX.de 1.2.3.4 ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#18 === RUN TestDNSProviders/oXXX.de/21:pager601_***SKIPPED(disabled_by_only)***:Empty === RUN TestDNSProviders/oXXX.de/22:pager1201_***SKIPPED(disabled_by_only)***:Empty === RUN TestDNSProviders/oXXX.de/23:CAA:CAA_record integration_test.go:220: CREATE CAA oXXX.de 0 issue "letsencrypt.org" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE CAA oXXX.de 0 issue "letsencrypt.org" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#19 === RUN TestDNSProviders/oXXX.de/24:CAA_with_;:CAA_many_records integration_test.go:220: CREATE CAA oXXX.de 0 issuewild ";" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE CAA oXXX.de 0 issuewild ";" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#20 === RUN TestDNSProviders/oXXX.de/25:Issue_1374:CAA_spaces integration_test.go:220: CREATE CAA oXXX.de 0 issue "letsencrypt.org; validationmethods=dns-01; accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/1234" ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE CAA oXXX.de 0 issue "letsencrypt.org; validationmethods=dns-01; accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/1234" ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#21 === RUN TestDNSProviders/oXXX.de/26:NAPTR_***SKIPPED(CanUseNAPTR_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/27:PTR_***SKIPPED(CanUsePTR_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/28:SOA_***SKIPPED(CanUseSOA_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/29:SRV:SRV_record integration_test.go:220: CREATE SRV _sip._tcp.oXXX.de 5 6 7 foo.com. ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 1. integration_test.go:241: UNEXPECTED #0: CREATE SRV _sip._tcp.oXXX.de 5 6 7 foo.com. ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#22 === RUN TestDNSProviders/oXXX.de/30:SRV_w/_null_target:Null_Target integration_test.go:220: CREATE SRV _sip._tcp.oXXX.de 52 62 72 foo.com. ttl=0 integration_test.go:220: CREATE SRV _sip._tcp.oXXX.de 15 65 75 . ttl=0 integration_test.go:239: Expected 0 corrections on second run, but found 2. integration_test.go:241: UNEXPECTED #0: CREATE SRV _sip._tcp.oXXX.de 52 62 72 foo.com. ttl=0 integration_test.go:241: UNEXPECTED #1: CREATE SRV _sip._tcp.oXXX.de 15 65 75 . ttl=0 === RUN TestDNSProviders/oXXX.de/Post_cleanup:Empty#23 === RUN TestDNSProviders/oXXX.de/31:SSHFP_***SKIPPED(CanUseSSHFP_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/32:TLSA_***SKIPPED(CanUseTLSA_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/33:DS_***SKIPPED(CanUseDS_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/34:DS_(children_only)_***SKIPPED(CanUseDSForChildren_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/35:DS_(children_only)_CLOUDNS_***SKIPPED(CanUseDSForChildren_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/36:ALIAS_***SKIPPED(CanUseAlias_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/37:AZURE_ALIAS_***SKIPPED(CanUseAzureAlias_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/38:R53_ALIAS2_***SKIPPED(CanUseRoute53Alias_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/39:R53_ALIAS_ORDER_***SKIPPED(CanUseRoute53Alias_not_supported)***:Empty === RUN TestDNSProviders/oXXX.de/40:CF_REDIRECT_***SKIPPED(disabled_by_only)***:Empty === RUN TestDNSProviders/oXXX.de/41:CF_PROXY_***SKIPPED(disabled_by_only)***:Empty === RUN TestDNSProviders/oXXX.de/42:CF_WORKER_ROUTE_***SKIPPED(disabled_by_only)***:Empty --- FAIL: TestDNSProviders (25.84s) --- FAIL: TestDNSProviders/oXXX.de (24.98s) --- PASS: TestDNSProviders/oXXX.de/Clean_Slate:Empty (0.25s) --- PASS: TestDNSProviders/oXXX.de/00:GeneralACD:Create_an_A_record (0.33s) --- PASS: TestDNSProviders/oXXX.de/00:GeneralACD:Change_it (0.32s) --- PASS: TestDNSProviders/oXXX.de/00:GeneralACD:Add_another (0.34s) --- PASS: TestDNSProviders/oXXX.de/00:GeneralACD:Add_another(same_name) (0.38s) --- FAIL: TestDNSProviders/oXXX.de/00:GeneralACD:Change_a_ttl (0.11s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty (0.59s) --- PASS: TestDNSProviders/oXXX.de/01:WildcardACD:Create_wildcard (0.46s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#01 (0.37s) --- PASS: TestDNSProviders/oXXX.de/02:CNAME:Create_a_CNAME (0.31s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#02 (0.23s) --- PASS: TestDNSProviders/oXXX.de/03:MX:MX_record (0.31s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#03 (0.21s) --- PASS: TestDNSProviders/oXXX.de/04:Null_MX_***SKIPPED(excluded_by_not("NETCUP"))***:Empty (0.10s) --- PASS: TestDNSProviders/oXXX.de/05:NS_***SKIPPED(excluded_by_not("NETCUP"))***:Empty (0.08s) --- FAIL: TestDNSProviders/oXXX.de/06:IGNORE_NAME_function:Create_some_records (0.36s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#04 (0.24s) --- FAIL: TestDNSProviders/oXXX.de/07:IGNORE_NAME_apex:Create_some_records (0.57s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#05 (0.35s) --- PASS: TestDNSProviders/oXXX.de/08:IGNORE_TARGET_function:Create_some_records (0.45s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#06 (0.38s) --- FAIL: TestDNSProviders/oXXX.de/09:simple_TXT:Create_a_TXT (0.25s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#07 (0.08s) --- FAIL: TestDNSProviders/oXXX.de/10:simple_TXT-spf1:Create_a_TXT/SPF (0.28s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#08 (0.12s) --- FAIL: TestDNSProviders/oXXX.de/11:long_TXT:Create_long_TXT (0.25s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#09 (0.11s) --- SKIP: TestDNSProviders/oXXX.de/12:complex_TXT:TXT_with_0-octel_string (0.00s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#10 (0.10s) --- FAIL: TestDNSProviders/oXXX.de/13:long_TXT:Create_a_505_TXT (0.25s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#11 (0.08s) --- FAIL: TestDNSProviders/oXXX.de/14:TXTMulti:Create_TXTMulti_1 (0.26s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#12 (0.09s) --- FAIL: TestDNSProviders/oXXX.de/15:TXTMulti-same:Create_TXTMulti_1 (0.24s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#13 (0.10s) --- PASS: TestDNSProviders/oXXX.de/16:TypeChange:Create_a_CNAME (0.34s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#14 (0.23s) --- PASS: TestDNSProviders/oXXX.de/17:Case_Sensitivity:Create_CAPS (0.33s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#15 (0.22s) --- PASS: TestDNSProviders/oXXX.de/18:IDNA:Internationalized_name (0.34s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#16 (0.21s) --- PASS: TestDNSProviders/oXXX.de/19:IDNAs_in_CNAME_targets:IDN_CNAME_AND_Target (0.29s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#17 (0.24s) --- FAIL: TestDNSProviders/oXXX.de/20:pager101:99_records (11.55s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#18 (0.05s) --- PASS: TestDNSProviders/oXXX.de/21:pager601_***SKIPPED(disabled_by_only)***:Empty (0.05s) --- PASS: TestDNSProviders/oXXX.de/22:pager1201_***SKIPPED(disabled_by_only)***:Empty (0.05s) --- FAIL: TestDNSProviders/oXXX.de/23:CAA:CAA_record (0.20s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#19 (0.05s) --- FAIL: TestDNSProviders/oXXX.de/24:CAA_with_;:CAA_many_records (0.19s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#20 (0.06s) --- FAIL: TestDNSProviders/oXXX.de/25:Issue_1374:CAA_spaces (0.17s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#21 (0.07s) --- PASS: TestDNSProviders/oXXX.de/26:NAPTR_***SKIPPED(CanUseNAPTR_not_supported)***:Empty (0.05s) --- PASS: TestDNSProviders/oXXX.de/27:PTR_***SKIPPED(CanUsePTR_not_supported)***:Empty (0.06s) --- PASS: TestDNSProviders/oXXX.de/28:SOA_***SKIPPED(CanUseSOA_not_supported)***:Empty (0.06s) --- FAIL: TestDNSProviders/oXXX.de/29:SRV:SRV_record (0.17s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#22 (0.06s) --- FAIL: TestDNSProviders/oXXX.de/30:SRV_w/_null_target:Null_Target (0.25s) --- PASS: TestDNSProviders/oXXX.de/Post_cleanup:Empty#23 (0.08s) --- PASS: TestDNSProviders/oXXX.de/31:SSHFP_***SKIPPED(CanUseSSHFP_not_supported)***:Empty (0.06s) --- PASS: TestDNSProviders/oXXX.de/32:TLSA_***SKIPPED(CanUseTLSA_not_supported)***:Empty (0.06s) --- PASS: TestDNSProviders/oXXX.de/33:DS_***SKIPPED(CanUseDS_not_supported)***:Empty (0.05s) --- PASS: TestDNSProviders/oXXX.de/34:DS_(children_only)_***SKIPPED(CanUseDSForChildren_not_supported)***:Empty (0.05s) --- PASS: TestDNSProviders/oXXX.de/35:DS_(children_only)_CLOUDNS_***SKIPPED(CanUseDSForChildren_not_supported)***:Empty (0.06s) --- PASS: TestDNSProviders/oXXX.de/36:ALIAS_***SKIPPED(CanUseAlias_not_supported)***:Empty (0.06s) --- PASS: TestDNSProviders/oXXX.de/37:AZURE_ALIAS_***SKIPPED(CanUseAzureAlias_not_supported)***:Empty (0.05s) --- PASS: TestDNSProviders/oXXX.de/38:R53_ALIAS2_***SKIPPED(CanUseRoute53Alias_not_supported)***:Empty (0.05s) --- PASS: TestDNSProviders/oXXX.de/39:R53_ALIAS_ORDER_***SKIPPED(CanUseRoute53Alias_not_supported)***:Empty (0.06s) --- PASS: TestDNSProviders/oXXX.de/40:CF_REDIRECT_***SKIPPED(disabled_by_only)***:Empty (0.05s) --- PASS: TestDNSProviders/oXXX.de/41:CF_PROXY_***SKIPPED(disabled_by_only)***:Empty (0.05s) --- PASS: TestDNSProviders/oXXX.de/42:CF_WORKER_ROUTE_***SKIPPED(disabled_by_only)***:Empty (0.06s) === RUN TestDualProviders integration_test.go:312: Skipping. DocDualHost == Cannot --- SKIP: TestDualProviders (0.06s) FAIL exit status 1 FAIL github.com/StackExchange/dnscontrol/v3/integrationTest 25.942s Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
I was disappointed to see that the namecheap provider was only for registration, so I figured I'd take a stab at implementing it. I've only known go for 2 days, and this is shamelessly cobbled together from other providers and bits of chewing gum. It seems to do the basics, so I'm hopeful some more experienced contributors can work out the kinks before my mistakes get too ingrained.