8000 Dns: Fix CAA record support. by pmakani · Pull Request #6343 · googleapis/google-cloud-java · GitHub
[go: up one dir, main page]

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ public ResourceRecordSet apply(RecordSet recordSet) {
/**
* Enum for the DNS record types supported by Cloud DNS.
*
* <p>Google Cloud DNS currently supports records of type A, AAAA, CNAME, MX NAPTR, NS, PTR, SOA,
* SPF, SRV, TXT.
* <p>Google Cloud DNS currently supports records of type A, AAAA, CAA, CNAME, MX NAPTR, NS, PTR,
* SOA, SPF, SRV, TXT.
*
* @see <a href="https://cloud.google.com/dns/what-is-cloud-dns#supported_record_types">Cloud DNS
* supported record types</a>
Expand All @@ -93,6 +93,11 @@ public Type apply(String constant) {
public static final Type A = type.createAndRegister("A");
/** IPv6 Address record, which is used to map host names to their IPv6 address. */
public static final Type AAAA = type.createAndRegister("AAAA");
/**
* Certificate Authority (CA) Authorization, which specifies which CAs are allowed to create
* certificates for a domain.
*/
public static final Type CAA = type.createAndRegister("CAA");
/** Canonical name record, which is used to alias names. */
public static final Type CNAME = type.createAndRegister("CNAME");
/** Mail exchange record, which is used in routing requests to mail servers. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,25 @@ public class RecordSetTest {
private static final TimeUnit UNIT = TimeUnit.HOURS;
private static final Integer UNIT_TTL = 1;
private static final RecordSet.Type TYPE = RecordSet.Type.AAAA;
private static final RecordSet.Type CAA_TYPE = RecordSet.Type.CAA;
private static final RecordSet RECORD_SET =
RecordSet.newBuilder(NAME, TYPE).setTtl(UNIT_TTL, UNIT).build();
private static final RecordSet CAA_RECORD_SET =
RecordSet.newBuilder(NAME, CAA_TYPE)
.setTtl(UNIT_TTL, UNIT)
.addRecord("0 issue \"ca.example.com\"")
.build();

@Test
public void testDefaultDnsRecord() {
RecordSet recordSet = RecordSet.newBuilder(NAME, TYPE).build();
RecordSet caaRecordSet = RecordSet.newBuilder(NAME, CAA_TYPE).build();
assertE FF35 quals(0, recordSet.getRecords().size());
assertEquals(0, caaRecordSet.getRecords().size());
assertEquals(TYPE, recordSet.getType());
assertEquals(NAME, recordSet.getName());
assertEquals(CAA_TYPE, caaRecordSet.getType());
assertEquals(NAME, caaRecordSet.getName());
}

@Test
Expand All @@ -56,6 +66,9 @@ public void testBuilder() {
assertEquals(2, anotherRecord.getRecords().size());
assertTrue(anotherRecord.getRecords().contains(testingRecord));
assertTrue(anotherRecord.getRecords().contains(anotherTestingRecord));
assertEquals(NAME, CAA_RECORD_SET.getName());
assertEquals(CAA_TYPE, CAA_RECORD_SET.getType());
assertEquals(1, CAA_RECORD_SET.getRecords().size());
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2066,4 +2066,34 @@ public void testBatchCombined() {
DNS.delete(ZONE1.getName());
}
}

@Test
public void testCAARecord() {
try {
Zone zone = DNS.create(ZONE1);
String caa = "0 issue \"ca.example.net\"";
RecordSet toCreate =
RecordSet.newBuilder("www." + zone.getDnsName(), RecordSet.Type.CAA)
.setTtl(5, TimeUnit.MINUTES)
.addRecord(caa)
.build();
ChangeRequestInfo changeRequest = ChangeRequestInfo.newBuilder().add(toCreate).build();
ChangeRequest addRequest = zone.applyChangeRequest(changeRequest);
assertEquals(1, addRequest.getAdditions().size());
assertEquals(0, addRequest.getDeletions().size());
assertNotNull(addRequest.getGeneratedId());
ChangeRequestInfo.Builder deleteRequest = ChangeRequestInfo.newBuilder();
for (RecordSet recordSet : zone.listRecordSets().iterateAll()) {
if (toCreate.getName().equals(recordSet.getName())) {
deleteRequest.delete(recordSet);
}
}
ChangeRequest deleteRequest1 = zone.applyChangeRequest(deleteRequest.build());
assertEquals(0, deleteRequest1.getAdditions().size());
assertEquals(1, deleteRequest1.getDeletions().size());
assertNotNull(deleteRequest1.getGeneratedId());
} finally {
DNS.delete(ZONE1.getName());
}
}
}
0