mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
ROUTE53: Fix R53_ALIAS creation failure (#938)
Fixes https://github.com/StackExchange/dnscontrol/issues/937 * Add integration test to repro https://github.com/StackExchange/dnscontrol/issues/937 * Reformat integration tests to be more readable. * ROUTE53: Create CNAME/R53_ALIAS in best order * Each R53_ALIAS_* should be its own change, not combined. * Refactor and simplify (omg it has gotten ugly)
This commit is contained in:
@ -915,23 +915,97 @@ func makeTests(t *testing.T) []*TestGroup {
|
||||
tc("ALIAS at root", alias("@", "foo.com.")),
|
||||
tc("change it", alias("@", "foo2.com.")),
|
||||
tc("ALIAS at subdomain", alias("test", "foo.com.")),
|
||||
tc("change it", alias("test", "foo2.com.")),
|
||||
),
|
||||
|
||||
testgroup("AZURE_ALIAS",
|
||||
requires(providers.CanUseAzureAlias),
|
||||
tc("create dependent A records", a("foo.a", "1.2.3.4"), a("quux.a", "2.3.4.5")),
|
||||
tc("ALIAS to A record in same zone", a("foo.a", "1.2.3.4"), a("quux.a", "2.3.4.5"), azureAlias("bar.a", "A", "/subscriptions/**subscription-id**/resourceGroups/**resource-group**/providers/Microsoft.Network/dnszones/**current-domain-no-trailing**/A/foo.a")),
|
||||
tc("change it", a("foo.a", "1.2.3.4"), a("quux.a", "2.3.4.5"), azureAlias("bar.a", "A", "/subscriptions/**subscription-id**/resourceGroups/**resource-group**/providers/Microsoft.Network/dnszones/**current-domain-no-trailing**/A/quux.a")),
|
||||
tc("create dependent CNAME records", cname("foo.cname", "google.com"), cname("quux.cname", "google2.com")),
|
||||
tc("ALIAS to CNAME record in same zone", cname("foo.cname", "google.com"), cname("quux.cname", "google2.com"), azureAlias("bar", "CNAME", "/subscriptions/**subscription-id**/resourceGroups/**resource-group**/providers/Microsoft.Network/dnszones/**current-domain-no-trailing**/CNAME/foo.cname")),
|
||||
tc("change it", cname("foo.cname", "google.com"), cname("quux.cname", "google2.com"), azureAlias("bar.cname", "CNAME", "/subscriptions/**subscription-id**/resourceGroups/**resource-group**/providers/Microsoft.Network/dnszones/**current-domain-no-trailing**/CNAME/quux.cname")),
|
||||
tc("create dependent A records",
|
||||
a("foo.a", "1.2.3.4"),
|
||||
a("quux.a", "2.3.4.5"),
|
||||
),
|
||||
tc("ALIAS to A record in same zone",
|
||||
a("foo.a", "1.2.3.4"),
|
||||
a("quux.a", "2.3.4.5"),
|
||||
azureAlias("bar.a", "A", "/subscriptions/**subscription-id**/resourceGroups/**resource-group**/providers/Microsoft.Network/dnszones/**current-domain-no-trailing**/A/foo.a"),
|
||||
),
|
||||
tc("change it",
|
||||
a("foo.a", "1.2.3.4"),
|
||||
a("quux.a", "2.3.4.5"),
|
||||
azureAlias("bar.a", "A", "/subscriptions/**subscription-id**/resourceGroups/**resource-group**/providers/Microsoft.Network/dnszones/**current-domain-no-trailing**/A/quux.a"),
|
||||
),
|
||||
tc("create dependent CNAME records",
|
||||
cname("foo.cname", "google.com"),
|
||||
cname("quux.cname", "google2.com"),
|
||||
),
|
||||
tc("ALIAS to CNAME record in same zone",
|
||||
cname("foo.cname", "google.com"),
|
||||
cname("quux.cname", "google2.com"),
|
||||
azureAlias("bar", "CNAME", "/subscriptions/**subscription-id**/resourceGroups/**resource-group**/providers/Microsoft.Network/dnszones/**current-domain-no-trailing**/CNAME/foo.cname"),
|
||||
),
|
||||
tc("change it",
|
||||
cname("foo.cname", "google.com"),
|
||||
cname("quux.cname", "google2.com"),
|
||||
azureAlias("bar.cname", "CNAME", "/subscriptions/**subscription-id**/resourceGroups/**resource-group**/providers/Microsoft.Network/dnszones/**current-domain-no-trailing**/CNAME/quux.cname"),
|
||||
),
|
||||
),
|
||||
|
||||
testgroup("R53_ALIAS",
|
||||
testgroup("R53_ALIAS2",
|
||||
requires(providers.CanUseRoute53Alias),
|
||||
tc("create dependent records", a("foo", "1.2.3.4"), a("quux", "2.3.4.5")),
|
||||
tc("ALIAS to A record in same zone", a("foo", "1.2.3.4"), a("quux", "2.3.4.5"), r53alias("bar", "A", "foo.**current-domain**")),
|
||||
tc("change it", a("foo", "1.2.3.4"), a("quux", "2.3.4.5"), r53alias("bar", "A", "quux.**current-domain**")),
|
||||
tc("create dependent records",
|
||||
a("kyle", "1.2.3.4"),
|
||||
a("cartman", "2.3.4.5"),
|
||||
),
|
||||
tc("ALIAS to A record in same zone",
|
||||
a("kyle", "1.2.3.4"),
|
||||
a("cartman", "2.3.4.5"),
|
||||
r53alias("kenny", "A", "kyle.**current-domain**"),
|
||||
),
|
||||
tc("modify an r53 alias",
|
||||
a("kyle", "1.2.3.4"),
|
||||
a("cartman", "2.3.4.5"),
|
||||
r53alias("kenny", "A", "cartman.**current-domain**"),
|
||||
),
|
||||
),
|
||||
|
||||
testgroup("R53_ALIAS_ORDER",
|
||||
requires(providers.CanUseRoute53Alias),
|
||||
tc("create target cnames",
|
||||
cname("dev-system18", "ec2-54-91-33-155.compute-1.amazonaws.com."),
|
||||
cname("dev-system19", "ec2-54-91-99-999.compute-1.amazonaws.com."),
|
||||
),
|
||||
tc("add an alias to 18",
|
||||
cname("dev-system18", "ec2-54-91-33-155.compute-1.amazonaws.com."),
|
||||
cname("dev-system19", "ec2-54-91-99-999.compute-1.amazonaws.com."),
|
||||
r53alias("dev-system", "CNAME", "dev-system18.**current-domain**"),
|
||||
),
|
||||
tc("modify alias to 19",
|
||||
cname("dev-system18", "ec2-54-91-33-155.compute-1.amazonaws.com."),
|
||||
cname("dev-system19", "ec2-54-91-99-999.compute-1.amazonaws.com."),
|
||||
r53alias("dev-system", "CNAME", "dev-system19.**current-domain**"),
|
||||
),
|
||||
tc("remove alias",
|
||||
cname("dev-system18", "ec2-54-91-33-155.compute-1.amazonaws.com."),
|
||||
cname("dev-system19", "ec2-54-91-99-999.compute-1.amazonaws.com."),
|
||||
),
|
||||
tc("add an alias back",
|
||||
cname("dev-system18", "ec2-54-91-33-155.compute-1.amazonaws.com."),
|
||||
cname("dev-system19", "ec2-54-91-99-999.compute-1.amazonaws.com."),
|
||||
r53alias("dev-system", "CNAME", "dev-system19.**current-domain**"),
|
||||
),
|
||||
tc("remove cnames",
|
||||
r53alias("dev-system", "CNAME", "dev-system19.**current-domain**"),
|
||||
),
|
||||
clear(),
|
||||
tc("create cname+alias in one step",
|
||||
cname("dev-system18", "ec2-54-91-33-155.compute-1.amazonaws.com."),
|
||||
r53alias("dev-system", "CNAME", "dev-system18.**current-domain**"),
|
||||
),
|
||||
clear(),
|
||||
tc("create alias+cname in one step",
|
||||
r53alias("dev-system", "CNAME", "dev-system18.**current-domain**"),
|
||||
cname("dev-system18", "ec2-54-91-33-155.compute-1.amazonaws.com."),
|
||||
),
|
||||
),
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user