Skip to content

Commit

Permalink
Support for wildcard records
Browse files Browse the repository at this point in the history
  • Loading branch information
barnybug committed Oct 15, 2015
1 parent a081280 commit 2bc47dd
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 11 deletions.
24 changes: 13 additions & 11 deletions bind.go
Expand Up @@ -192,12 +192,14 @@ func ConvertRRSetToBind(rrset *route53.ResourceRecordSet) []dns.RR {
// - latency
// - weighted

name := unescaper.Replace(*rrset.Name)

// Only resource records without routing can be represented in vanilla bind.
if rrset.AliasTarget != nil {
alias := rrset.AliasTarget
dnsrr := &dns.PrivateRR{
Hdr: dns.RR_Header{
Name: *rrset.Name,
Name: name,
Rrtype: TypeALIAS,
Class: ClassAWS,
Ttl: 86400,
Expand All @@ -216,7 +218,7 @@ func ConvertRRSetToBind(rrset *route53.ResourceRecordSet) []dns.RR {
for _, rr := range rrset.ResourceRecords {
dnsrr := &dns.A{
Hdr: dns.RR_Header{
Name: *rrset.Name,
Name: name,
Rrtype: dns.TypeA,
Class: dns.ClassINET,
Ttl: uint32(*rrset.TTL),
Expand All @@ -229,7 +231,7 @@ func ConvertRRSetToBind(rrset *route53.ResourceRecordSet) []dns.RR {
for _, rr := range rrset.ResourceRecords {
dnsrr := &dns.AAAA{
Hdr: dns.RR_Header{
Name: *rrset.Name,
Name: name,
Rrtype: dns.TypeAAAA,
Class: dns.ClassINET,
Ttl: uint32(*rrset.TTL),
Expand All @@ -242,7 +244,7 @@ func ConvertRRSetToBind(rrset *route53.ResourceRecordSet) []dns.RR {
for _, rr := range rrset.ResourceRecords {
dnsrr := &dns.CNAME{
Hdr: dns.RR_Header{
Name: *rrset.Name,
Name: name,
Rrtype: dns.TypeCNAME,
Class: dns.ClassINET,
Ttl: uint32(*rrset.TTL),
Expand All @@ -260,7 +262,7 @@ func ConvertRRSetToBind(rrset *route53.ResourceRecordSet) []dns.RR {

dnsrr := &dns.MX{
Hdr: dns.RR_Header{
Name: *rrset.Name,
Name: name,
Rrtype: dns.TypeMX,
Class: dns.ClassINET,
Ttl: uint32(*rrset.TTL),
Expand All @@ -274,7 +276,7 @@ func ConvertRRSetToBind(rrset *route53.ResourceRecordSet) []dns.RR {
for _, rr := range rrset.ResourceRecords {
dnsrr := &dns.NS{
Hdr: dns.RR_Header{
Name: *rrset.Name,
Name: name,
Rrtype: dns.TypeNS,
Class: dns.ClassINET,
Ttl: uint32(*rrset.TTL),
Expand All @@ -287,7 +289,7 @@ func ConvertRRSetToBind(rrset *route53.ResourceRecordSet) []dns.RR {
for _, rr := range rrset.ResourceRecords {
dnsrr := &dns.PTR{
Hdr: dns.RR_Header{
Name: *rrset.Name,
Name: name,
Rrtype: dns.TypePTR,
Class: dns.ClassINET,
Ttl: uint32(*rrset.TTL),
Expand All @@ -305,7 +307,7 @@ func ConvertRRSetToBind(rrset *route53.ResourceRecordSet) []dns.RR {

dnsrr := &dns.SOA{
Hdr: dns.RR_Header{
Name: *rrset.Name,
Name: name,
Rrtype: dns.TypeSOA,
Class: dns.ClassINET,
Ttl: uint32(*rrset.TTL),
Expand All @@ -324,7 +326,7 @@ func ConvertRRSetToBind(rrset *route53.ResourceRecordSet) []dns.RR {
for _, rr := range rrset.ResourceRecords {
dnsrr := &dns.SPF{
Hdr: dns.RR_Header{
Name: *rrset.Name,
Name: name,
Rrtype: dns.TypeSPF,
Class: dns.ClassINET,
Ttl: uint32(*rrset.TTL),
Expand All @@ -342,7 +344,7 @@ func ConvertRRSetToBind(rrset *route53.ResourceRecordSet) []dns.RR {

dnsrr := &dns.SRV{
Hdr: dns.RR_Header{
Name: *rrset.Name,
Name: name,
Rrtype: dns.TypeSRV,
Class: dns.ClassINET,
Ttl: uint32(*rrset.TTL),
Expand All @@ -362,7 +364,7 @@ func ConvertRRSetToBind(rrset *route53.ResourceRecordSet) []dns.RR {
}
dnsrr := &dns.TXT{
Hdr: dns.RR_Header{
Name: *rrset.Name,
Name: name,
Rrtype: dns.TypeTXT,
Class: dns.ClassINET,
Ttl: uint32(*rrset.TTL),
Expand Down
5 changes: 5 additions & 0 deletions internal/features/bind.feature
@@ -1,5 +1,10 @@
@bind
Feature: bind files
Scenario: I can import a wildcard zone
Given I have a domain "$domain"
When I run "cli53 import --file tests/wildcard.txt $domain"
Then the domain "$domain" export matches file "tests/wildcard.txt"

Scenario: I can import a basic zone
Given I have a domain "$domain"
When I run "cli53 import --file tests/basic.txt $domain"
Expand Down
5 changes: 5 additions & 0 deletions internal/features/commands.feature
@@ -1,5 +1,10 @@
@commands
Feature: commands
Scenario: I can create a wildcard record
Given I have a domain "$domain"
When I run "cli53 rrcreate $domain '* A 127.0.0.1'"
Then the domain "$domain" has record "*.$domain. 3600 IN A 127.0.0.1"

Scenario: I can create a resource record
Given I have a domain "$domain"
When I run "cli53 rrcreate $domain 'a A 127.0.0.1'"
Expand Down
1 change: 1 addition & 0 deletions tests/wildcard.txt
@@ -0,0 +1 @@
* 86400 IN A 10.0.0.1

0 comments on commit 2bc47dd

Please sign in to comment.