Skip to content

Commit 6ba6ce3

Browse files
committed
---
yaml --- r: 4595 b: refs/heads/logging-alpha c: baee7d7 h: refs/heads/master i: 4593: d817c2a 4591: 6e6b408
1 parent 60bfe0b commit 6ba6ce3

9 files changed

Lines changed: 81 additions & 791 deletions

File tree

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ refs/heads/compute-alpha: 969cba2627f1d53d352cc4a5ffe0879dacf65e6c
1212
refs/heads/dns-alpha: 2f90e7e338349287ace33375896907af0f032ca1
1313
refs/heads/dns-alpha-batch: 17442b07867021b85d0452f5f3eda29a3413288f
1414
refs/heads/gcs-nio: 283aeaf15efdcf3621eb6859f05e55ad7764375d
15-
refs/heads/logging-alpha: 3cdc3a453bde3df011cbd46c6ab01c9b40cf0d69
15+
refs/heads/logging-alpha: baee7d70fd9aa93d6f95b9ce8850ada77e2ccc7f
1616
refs/tags/v0.1.0: a615317f7424ed58621b1f65d5c4d8cbbe8a6ed8
1717
refs/tags/v0.1.1: 7a7f6985fe465e9dd6a075af55493f42b4933be0
1818
refs/tags/v0.1.2: 3eb3fe866ba22487686048f45d927b8c8638ea3f

branches/logging-alpha/gcloud-java-dns/src/main/java/com/google/gcloud/dns/DnsOptions.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -96,14 +96,6 @@ public static Builder builder() {
9696
return new Builder();
9797
}
9898

99-
/**
100-
* Creates a default instance of {@code DnsOptions} with the project ID and credentials inferred
101-
* from the environment.
102-
*/
103-
public static DnsOptions defaultInstance() {
104-
return builder().build();
105-
}
106-
10799
@Override
108100
public boolean equals(Object obj) {
109101
return obj instanceof DnsOptions && baseEquals((DnsOptions) obj);

branches/logging-alpha/gcloud-java-dns/src/test/java/com/google/gcloud/dns/it/ITDnsTest.java

Lines changed: 79 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,6 @@
4848

4949
public class ITDnsTest {
5050

51-
// todo(mderka) Implement test for creating invalid change when DnsException is finished. #673
52-
5351
private static final String PREFIX = "gcldjvit-";
5452
private static final Dns DNS = DnsOptions.builder().build().service();
5553
private static final String ZONE_NAME1 = (PREFIX + UUID.randomUUID()).substring(0, 32);
@@ -201,14 +199,14 @@ public void testCreateZoneWithErrors() {
201199
fail("Zone name is missing a period. The service returns an error.");
202200
} catch (DnsException ex) {
203201
// expected
204-
// todo(mderka) test non-retryable when implemented within #593
202+
assertFalse(ex.retryable());
205203
}
206204
try {
207205
DNS.create(ZONE_DNS_NO_PERIOD);
208206
fail("Zone name is missing a period. The service returns an error.");
209207
} catch (DnsException ex) {
210208
// expected
211-
// todo(mderka) test non-retryable when implemented within #593
209+
assertFalse(ex.retryable());
212210
}
213211
} finally {
214212
DNS.delete(ZONE_NAME_ERROR.name());
@@ -393,15 +391,15 @@ public void testListZones() {
393391
} catch (DnsException ex) {
394392
// expected
395393
assertEquals(400, ex.code());
396-
// todo(mderka) test not-retryable
394+
assertFalse(ex.retryable());
397395
}
398396
try {
399397
DNS.listZones(Dns.ZoneListOption.pageSize(-1));
400398
fail();
401399
} catch (DnsException ex) {
402400
// expected
403401
assertEquals(400, ex.code());
404-
// todo(mderka) test not-retryable
402+
assertFalse(ex.retryable());
405403
}
406404
// ok size
407405
zones = filter(DNS.listZones(Dns.ZoneListOption.pageSize(1000)).iterateAll());
@@ -413,7 +411,7 @@ public void testListZones() {
413411
} catch (DnsException ex) {
414412
// expected
415413
assertEquals(400, ex.code());
416-
// todo(mderka) test not-retryable
414+
assertFalse(ex.retryable());
417415
}
418416
// ok name
419417
zones = filter(DNS.listZones(Dns.ZoneListOption.dnsName(ZONE1.dnsName())).iterateAll());
@@ -586,6 +584,74 @@ public void testCreateChange() {
586584
}
587585
}
588586

587+
@Test
588+
public void testInvalidChangeRequest() {
589+
Zone zone = DNS.create(ZONE1);
590+
DnsRecord validA = DnsRecord.builder("subdomain." + zone.dnsName(), DnsRecord.Type.A)
591+
.records(ImmutableList.of("0.255.1.5"))
592+
.build();
593+
try {
594+
ChangeRequest validChange = ChangeRequest.builder().add(validA).build();
595+
zone.applyChangeRequest(validChange);
596+
try {
597+
zone.applyChangeRequest(validChange);
598+
fail("Created a record which already exists.");
599+
} catch (DnsException ex) {
600+
// expected
601+
assertFalse(ex.retryable());
602+
assertEquals(409, ex.code());
603+
}
604+
// delete with field mismatch
605+
DnsRecord mismatch = validA.toBuilder().ttl(20, TimeUnit.SECONDS).build();
606+
ChangeRequest deletion = ChangeRequest.builder().delete(mismatch).build();
607+
try {
608+
zone.applyChangeRequest(deletion);
609+
fail("Deleted a record without a complete match.");
610+
} catch (DnsException ex) {
611+
// expected
612+
assertEquals(412, ex.code());
613+
assertFalse(ex.retryable());
614+
}
615+
// delete and add SOA
616+
Iterator<DnsRecord> recordIterator = zone.listDnsRecords().iterateAll();
617+
LinkedList<DnsRecord> deletions = new LinkedList<>();
618+
LinkedList<DnsRecord> additions = new LinkedList<>();
619+
while (recordIterator.hasNext()) {
620+
DnsRecord record = recordIterator.next();
621+
if (record.type() == DnsRecord.Type.SOA) {
622+
deletions.add(record);
623+
// the subdomain is necessary to get 400 instead of 412
624+
DnsRecord copy = record.toBuilder().name("x." + record.name()).build();
625+
additions.add(copy);
626+
break;
627+
}
628+
}
629+
deletion = deletion.toBuilder().deletions(deletions).build();
630+
ChangeRequest addition = ChangeRequest.builder().additions(additions).build();
631+
try {
632+
zone.applyChangeRequest(deletion);
633+
fail("Deleted SOA.");
634+
} catch (DnsException ex) {
635+
// expected
636+
assertFalse(ex.retryable());
637+
assertEquals(400, ex.code());
638+
}
639+
try {
640+
zone.applyChangeRequest(addition);
641+
fail("Added second SOA.");
642+
} catch (DnsException ex) {
643+
// expected
644+
assertFalse(ex.retryable());
645+
assertEquals(400, ex.code());
646+
}
647+
} finally {
648+
ChangeRequest deletion = ChangeRequest.builder().delete(validA).build();
649+
ChangeRequest request = zone.applyChangeRequest(deletion);
650+
waitForChangeToComplete(zone.name(), request.id());
651+
zone.delete();
652+
}
653+
}
654+
589655
@Test
590656
public void testListChanges() {
591657
try {
@@ -596,7 +662,7 @@ public void testListChanges() {
596662
} catch (DnsException ex) {
597663
// expected
598664
assertEquals(404, ex.code());
599-
// todo(mderka) test retry functionality
665+
assertFalse(ex.retryable());
600666
}
601667
// zone exists but has no changes
602668
DNS.create(ZONE1);
@@ -621,15 +687,15 @@ public void testListChanges() {
621687
} catch (DnsException ex) {
622688
// expected
623689
assertEquals(400, ex.code());
624-
// todo(mderka) test retry functionality
690+
assertFalse(ex.retryable());
625691
}
626692
try {
627693
DNS.listChangeRequests(ZONE1.name(), Dns.ChangeRequestListOption.pageSize(-1));
628694
fail();
629695
} catch (DnsException ex) {
630696
// expected
631697
assertEquals(400, ex.code());
632-
// todo(mderka) test retry functionality
698+
assertFalse(ex.retryable());
633699
}
634700
// sorting order
635701
ImmutableList<ChangeRequest> ascending = ImmutableList.copyOf(DNS.listChangeRequests(
@@ -863,23 +929,23 @@ public void testListDnsRecords() {
863929
} catch (DnsException ex) {
864930
// expected
865931
assertEquals(400, ex.code());
866-
// todo(mderka) test retry functionality when available
932+
assertFalse(ex.retryable());
867933
}
868934
try {
869935
DNS.listDnsRecords(ZONE1.name(), Dns.DnsRecordListOption.pageSize(0));
870936
fail();
871937
} catch (DnsException ex) {
872938
// expected
873939
assertEquals(400, ex.code());
874-
// todo(mderka) test retry functionality when available
940+
assertFalse(ex.retryable());
875941
}
876942
try {
877943
DNS.listDnsRecords(ZONE1.name(), Dns.DnsRecordListOption.pageSize(-1));
878944
fail();
879945
} catch (DnsException ex) {
880946
// expected
881947
assertEquals(400, ex.code());
882-
// todo(mderka) test retry functionality when available
948+
assertFalse(ex.retryable());
883949
}
884950
waitForChangeToComplete(ZONE1.name(), change.id());
885951
} finally {

branches/logging-alpha/gcloud-java-examples/README.md

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -63,30 +63,14 @@ To run examples from your command line:
6363
```
6464
6565
* Here's an example run of `DatastoreExample`.
66-
66+
6767
Be sure to change the placeholder project ID "your-project-id" with your own project ID. Also note that you have to enable the Google Cloud Datastore API on the [Google Developers Console][developers-console] before running the following commands.
6868
```
6969
mvn exec:java -Dexec.mainClass="com.google.gcloud.examples.datastore.DatastoreExample" -Dexec.args="your-project-id my_name add my\ comment"
7070
mvn exec:java -Dexec.mainClass="com.google.gcloud.examples.datastore.DatastoreExample" -Dexec.args="your-project-id my_name display"
7171
mvn exec:java -Dexec.mainClass="com.google.gcloud.examples.datastore.DatastoreExample" -Dexec.args="your-project-id my_name delete"
7272
```
7373
74-
* Here's an example run of `DnsExample`.
75-
76-
Note that you have to enable the Google Cloud DNS API on the [Google Developers Console][developers-console] before running the following commands.
77-
You will need to replace the domain name `elaborateexample.com` with your own domain name with [verified ownership] (https://www.google.com/webmasters/verification/home).
78-
Also, note that the example creates and deletes DNS records of type A only. Operations with other record types are not implemented in the example.
79-
```
80-
mvn exec:java -Dexec.mainClass="com.google.gcloud.examples.dns.DnsExample" -Dexec.args="create some-sample-zone elaborateexample.com. description"
81-
mvn exec:java -Dexec.mainClass="com.google.gcloud.examples.dns.DnsExample" -Dexec.args="list"
82-
mvn exec:java -Dexec.mainClass="com.google.gcloud.examples.dns.DnsExample" -Dexec.args="list some-sample-zone records"
83-
mvn exec:java -Dexec.mainClass="com.google.gcloud.examples.dns.DnsExample" -Dexec.args="add-record some-sample-zone www.elaborateexample.com. 12.13.14.15 69"
84-
mvn exec:java -Dexec.mainClass="com.google.gcloud.examples.dns.DnsExample" -Dexec.args="get some-sample-zone"
85-
mvn exec:java -Dexec.mainClass="com.google.gcloud.examples.dns.DnsExample" -Dexec.args="delete-record some-sample-zone www.elaborateexample.com. 12.13.14.15 69"
86-
mvn exec:java -Dexec.mainClass="com.google.gcloud.examples.dns.DnsExample" -Dexec.args="list some-sample-zone changes ascending"
87-
mvn exec:java -Dexec.mainClass="com.google.gcloud.examples.dns.DnsExample" -Dexec.args="delete some-sample-zone"
88-
```
89-
9074
* Here's an example run of `ResourceManagerExample`.
9175
9276
Be sure to change the placeholder project ID "your-project-id" with your own globally unique project ID.

0 commit comments

Comments
 (0)