Skip to content

Commit ee5bb8f

Browse files
committed
Removed zone.get() and optimized retries.
1 parent c0c5451 commit ee5bb8f

File tree

8 files changed

+77
-129
lines changed

8 files changed

+77
-129
lines changed

gcloud-java-dns/src/main/java/com/google/gcloud/dns/ChangeRequest.java

+10-17
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import static com.google.common.base.Preconditions.checkNotNull;
2020

21-
import com.google.api.services.dns.model.ResourceRecordSet;
21+
import com.google.api.services.dns.model.Change;
2222
import com.google.common.base.Function;
2323
import com.google.common.base.MoreObjects;
2424
import com.google.common.collect.ImmutableList;
@@ -40,21 +40,14 @@
4040
*/
4141
public class ChangeRequest implements Serializable {
4242

43-
private static final Function<ResourceRecordSet, DnsRecord> FROM_PB_FUNCTION =
44-
new Function<com.google.api.services.dns.model.ResourceRecordSet, DnsRecord>() {
43+
static final Function<Change, ChangeRequest> FROM_PB_FUNCTION =
44+
new Function<Change, ChangeRequest>() {
4545
@Override
46-
public DnsRecord apply(com.google.api.services.dns.model.ResourceRecordSet pb) {
47-
return DnsRecord.fromPb(pb);
46+
public ChangeRequest apply(com.google.api.services.dns.model.Change pb) {
47+
return ChangeRequest.fromPb(pb);
4848
}
4949
};
50-
private static final Function<DnsRecord, ResourceRecordSet> TO_PB_FUNCTION =
51-
new Function<DnsRecord, ResourceRecordSet>() {
52-
@Override
53-
public com.google.api.services.dns.model.ResourceRecordSet apply(DnsRecord error) {
54-
return error.toPb();
55-
}
56-
};
57-
private static final long serialVersionUID = -8703939628990291682L;
50+
private static final long serialVersionUID = -9027378042756366333L;
5851
private final List<DnsRecord> additions;
5952
private final List<DnsRecord> deletions;
6053
private final String id;
@@ -274,9 +267,9 @@ com.google.api.services.dns.model.Change toPb() {
274267
pb.setStatus(status().name().toLowerCase());
275268
}
276269
// set a list of additions
277-
pb.setAdditions(Lists.transform(additions(), TO_PB_FUNCTION));
270+
pb.setAdditions(Lists.transform(additions(), DnsRecord.TO_PB_FUNCTION));
278271
// set a list of deletions
279-
pb.setDeletions(Lists.transform(deletions(), TO_PB_FUNCTION));
272+
pb.setDeletions(Lists.transform(deletions(), DnsRecord.TO_PB_FUNCTION));
280273
return pb;
281274
}
282275

@@ -293,10 +286,10 @@ static ChangeRequest fromPb(com.google.api.services.dns.model.Change pb) {
293286
builder.status(ChangeRequest.Status.valueOf(pb.getStatus().toUpperCase()));
294287
}
295288
if (pb.getDeletions() != null) {
296-
builder.deletions(Lists.transform(pb.getDeletions(), FROM_PB_FUNCTION));
289+
builder.deletions(Lists.transform(pb.getDeletions(), DnsRecord.FROM_PB_FUNCTION));
297290
}
298291
if (pb.getAdditions() != null) {
299-
builder.additions(Lists.transform(pb.getAdditions(), FROM_PB_FUNCTION));
292+
builder.additions(Lists.transform(pb.getAdditions(), DnsRecord.FROM_PB_FUNCTION));
300293
}
301294
return builder.build();
302295
}

gcloud-java-dns/src/main/java/com/google/gcloud/dns/Dns.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,7 @@ public static ChangeRequestListOption sortOrder(SortingOrder order) {
419419
/**
420420
* Creates a new zone.
421421
*
422-
* <p>Returns {@link ZoneInfo} object representing the new zone's information. In addition to the
422+
* <p>Returns {@link Zone} object representing the new zone's information. In addition to the
423423
* name, dns name and description (supplied by the user within the {@code zoneInfo} parameter),
424424
* the returned object can include the following read-only fields supplied by the server: creation
425425
* time, id, and list of name servers. The returned fields can be optionally restricted by

gcloud-java-dns/src/main/java/com/google/gcloud/dns/DnsImpl.java

+23-38
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,7 @@ public Page<Zone> nextPage() {
6666

6767
private static class ChangeRequestPageFetcher implements PageImpl.NextPageFetcher<ChangeRequest> {
6868

69-
private static final Function<Change, ChangeRequest> PB_TO_CHANGE_REQUEST =
70-
new Function<Change, ChangeRequest>() {
71-
@Override
72-
public ChangeRequest apply(com.google.api.services.dns.model.Change changePb) {
73-
return fromPb(changePb);
74-
}
75-
};
76-
private static final long serialVersionUID = -8737501076674042014L;
69+
private static final long serialVersionUID = 4473265130673029139L;
7770
private final String zoneName;
7871
private final Map<DnsRpc.Option, ?> requestOptions;
7972
private final DnsOptions serviceOptions;
@@ -88,20 +81,13 @@ public ChangeRequest apply(com.google.api.services.dns.model.Change changePb) {
8881

8982
@Override
9083
public Page<ChangeRequest> nextPage() {
91-
return listChangeRequests(zoneName, serviceOptions, requestOptions, PB_TO_CHANGE_REQUEST);
84+
return listChangeRequests(zoneName, serviceOptions, requestOptions);
9285
}
9386
}
9487

9588
private static class DnsRecordPageFetcher implements PageImpl.NextPageFetcher<DnsRecord> {
9689

97-
private static final Function<ResourceRecordSet, DnsRecord> PB_TO_DNS_RECORD =
98-
new Function<ResourceRecordSet, DnsRecord>() {
99-
@Override
100-
public DnsRecord apply(com.google.api.services.dns.model.ResourceRecordSet pb) {
101-
return DnsRecord.fromPb(pb);
102-
}
103-
};
104-
private static final long serialVersionUID = 670996349097667660L;
90+
private static final long serialVersionUID = -6039369212511530846L;
10591
private final Map<DnsRpc.Option, ?> requestOptions;
10692
private final DnsOptions serviceOptions;
10793
private final String zoneName;
@@ -116,10 +102,15 @@ public DnsRecord apply(com.google.api.services.dns.model.ResourceRecordSet pb) {
116102

117103
@Override
118104
public Page<DnsRecord> nextPage() {
119-
return listDnsRecords(zoneName, serviceOptions, requestOptions, PB_TO_DNS_RECORD);
105+
return listDnsRecords(zoneName, serviceOptions, requestOptions);
120106
}
121107
}
122108

109+
DnsImpl(DnsOptions options) {
110+
super(options);
111+
dnsRpc = options.rpc();
112+
}
113+
123114
@Override
124115
public Page<Zone> listZones(ZoneListOption... options) {
125116
return listZones(options(), optionMap(options));
@@ -133,16 +124,17 @@ private static Page<Zone> listZones(final DnsOptions serviceOptions,
133124
@Override
134125
public Zone apply(
135126
com.google.api.services.dns.model.ManagedZone zonePb) {
136-
return new Zone(serviceOptions.service(), ZoneInfo.fromPb(zonePb));
127+
return Zone.fromPb(serviceOptions.service(), zonePb);
137128
}
138129
};
139130
try {
140131
// get a list of managed zones
132+
final DnsRpc rpc = serviceOptions.rpc();
141133
DnsRpc.ListResult<ManagedZone> result =
142134
runWithRetries(new Callable<DnsRpc.ListResult<ManagedZone>>() {
143135
@Override
144136
public DnsRpc.ListResult<ManagedZone> call() {
145-
return serviceOptions.rpc().listZones(optionsMap);
137+
return rpc.listZones(optionsMap);
146138
}
147139
}, serviceOptions.retryParams(), EXCEPTION_HANDLER);
148140
String cursor = result.pageToken();
@@ -159,26 +151,25 @@ public DnsRpc.ListResult<ManagedZone> call() {
159151
@Override
160152
public Page<ChangeRequest> listChangeRequests(String zoneName,
161153
ChangeRequestListOption... options) {
162-
return listChangeRequests(zoneName, options(), optionMap(options),
163-
ChangeRequestPageFetcher.PB_TO_CHANGE_REQUEST);
154+
return listChangeRequests(zoneName, options(), optionMap(options));
164155
}
165156

166157
private static Page<ChangeRequest> listChangeRequests(final String zoneName,
167-
final DnsOptions serviceOptions, final Map<DnsRpc.Option, ?> optionsMap,
168-
Function<Change, ChangeRequest> transformFunction) {
158+
final DnsOptions serviceOptions, final Map<DnsRpc.Option, ?> optionsMap) {
169159
try {
170160
// get a list of changes
161+
final DnsRpc rpc = serviceOptions.rpc();
171162
DnsRpc.ListResult<Change> result = runWithRetries(new Callable<DnsRpc.ListResult<Change>>() {
172163
@Override
173164
public DnsRpc.ListResult<Change> call() {
174-
return serviceOptions.rpc().listChangeRequests(zoneName, optionsMap);
165+
return rpc.listChangeRequests(zoneName, optionsMap);
175166
}
176167
}, serviceOptions.retryParams(), EXCEPTION_HANDLER);
177168
String cursor = result.pageToken();
178169
// transform that list into change request objects
179170
Iterable<ChangeRequest> changes = result.results() == null
180171
? ImmutableList.<ChangeRequest>of()
181-
: Iterables.transform(result.results(), transformFunction);
172+
: Iterables.transform(result.results(), ChangeRequest.FROM_PB_FUNCTION);
182173
return new PageImpl<>(new ChangeRequestPageFetcher(zoneName, serviceOptions, cursor,
183174
optionsMap), cursor, changes);
184175
} catch (RetryHelperException e) {
@@ -188,39 +179,33 @@ public DnsRpc.ListResult<Change> call() {
188179

189180
@Override
190181
public Page<DnsRecord> listDnsRecords(String zoneName, DnsRecordListOption... options) {
191-
return listDnsRecords(zoneName, options(), optionMap(options),
192-
DnsRecordPageFetcher.PB_TO_DNS_RECORD);
182+
return listDnsRecords(zoneName, options(), optionMap(options));
193183
}
194184

195185
private static Page<DnsRecord> listDnsRecords(final String zoneName,
196-
final DnsOptions serviceOptions, final Map<DnsRpc.Option, ?> optionsMap,
197-
Function<ResourceRecordSet, DnsRecord> transformFunction) {
186+
final DnsOptions serviceOptions, final Map<DnsRpc.Option, ?> optionsMap) {
198187
try {
199188
// get a list of resource record sets
189+
final DnsRpc rpc = serviceOptions.rpc();
200190
DnsRpc.ListResult<ResourceRecordSet> result = runWithRetries(
201191
new Callable<DnsRpc.ListResult<ResourceRecordSet>>() {
202192
@Override
203193
public DnsRpc.ListResult<ResourceRecordSet> call() {
204-
return serviceOptions.rpc().listDnsRecords(zoneName, optionsMap);
194+
return rpc.listDnsRecords(zoneName, optionsMap);
205195
}
206196
}, serviceOptions.retryParams(), EXCEPTION_HANDLER);
207197
String cursor = result.pageToken();
208198
// transform that list into dns records
209199
Iterable<DnsRecord> records = result.results() == null
210200
? ImmutableList.<DnsRecord>of()
211-
: Iterables.transform(result.results(), transformFunction);
201+
: Iterables.transform(result.results(), DnsRecord.FROM_PB_FUNCTION);
212202
return new PageImpl<>(new DnsRecordPageFetcher(zoneName, serviceOptions, cursor, optionsMap),
213203
cursor, records);
214204
} catch (RetryHelperException e) {
215205
throw DnsException.translateAndThrow(e);
216206
}
217207
}
218208

219-
DnsImpl(DnsOptions options) {
220-
super(options);
221-
dnsRpc = options.rpc();
222-
}
223-
224209
@Override
225210
public Zone create(final ZoneInfo zoneInfo, Dns.ZoneOption... options) {
226211
final Map<DnsRpc.Option, ?> optionsMap = optionMap(options);
@@ -318,7 +303,7 @@ public com.google.api.services.dns.model.Change call() {
318303
return dnsRpc.getChangeRequest(zoneName, changeRequestId, optionsMap);
319304
}
320305
}, options().retryParams(), EXCEPTION_HANDLER);
321-
return answer == null ? null : fromPb(answer); // should never be null
306+
return answer == null ? null : fromPb(answer);
322307
} catch (RetryHelper.RetryHelperException ex) {
323308
throw DnsException.translateAndThrow(ex);
324309
}

gcloud-java-dns/src/main/java/com/google/gcloud/dns/DnsRecord.java

+17-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
import static com.google.common.base.Preconditions.checkArgument;
2020
import static com.google.common.base.Preconditions.checkNotNull;
2121

22+
import com.google.api.services.dns.model.ResourceRecordSet;
23+
import com.google.common.base.Function;
2224
import com.google.common.base.MoreObjects;
2325
import com.google.common.collect.ImmutableList;
2426
import com.google.common.collect.Lists;
@@ -43,7 +45,21 @@
4345
*/
4446
public class DnsRecord implements Serializable {
4547

46-
private static final long serialVersionUID = 2016011914302204L;
48+
static final Function<ResourceRecordSet, DnsRecord> FROM_PB_FUNCTION =
49+
new Function<com.google.api.services.dns.model.ResourceRecordSet, DnsRecord>() {
50+
@Override
51+
public DnsRecord apply(com.google.api.services.dns.model.ResourceRecordSet pb) {
52+
return DnsRecord.fromPb(pb);
53+
}
54+
};
55+
static final Function<DnsRecord, ResourceRecordSet> TO_PB_FUNCTION =
56+
new Function<DnsRecord, ResourceRecordSet>() {
57+
@Override
58+
public com.google.api.services.dns.model.ResourceRecordSet apply(DnsRecord error) {
59+
return error.toPb();
60+
}
61+
};
62+
private static final long serialVersionUID = 8148009870800115261L;
4763
private final String name;
4864
private final List<String> rrdatas;
4965
private final Integer ttl; // this is in seconds

gcloud-java-dns/src/main/java/com/google/gcloud/dns/Zone.java

+1-25
Original file line numberDiff line numberDiff line change
@@ -113,30 +113,6 @@ public Builder toBuilder() {
113113
return new Builder(this);
114114
}
115115

116-
/**
117-
* Constructs a {@code Zone} object that contains the given {@code zoneInfo}.
118-
*/
119-
public Zone(Dns dns, ZoneInfo zoneInfo) {
120-
super(new BuilderImpl(zoneInfo));
121-
this.dns = dns;
122-
this.options = dns.options();
123-
}
124-
125-
/**
126-
* Constructs a {@code Zone} object that contains meta information received from the Google Cloud
127-
* DNS service for the provided {@code zoneName}.
128-
*
129-
* @param zoneName name of the zone to be searched for
130-
* @param options optional restriction on what fields should be returned by the service
131-
* @return zone object containing metadata or {@code null} if not not found
132-
* @throws DnsException upon failure
133-
*/
134-
public static Zone get(Dns dnsService, String zoneName, Dns.ZoneOption... options) {
135-
checkNotNull(zoneName);
136-
checkNotNull(dnsService);
137-
return dnsService.getZone(zoneName, options);
138-
}
139-
140116
/**
141117
* Retrieves the latest information about the zone. The method retrieves the zone by name.
142118
*
@@ -236,6 +212,6 @@ private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundE
236212

237213
static Zone fromPb(Dns dns, com.google.api.services.dns.model.ManagedZone zone) {
238214
ZoneInfo info = ZoneInfo.fromPb(zone);
239-
return new Zone(dns, info);
215+
return new Zone(dns, new ZoneInfo.BuilderImpl(info));
240216
}
241217
}

gcloud-java-dns/src/main/java/com/google/gcloud/dns/ZoneInfo.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public abstract static class Builder {
8181
* Optionally specifies the NameServerSet for this zone. A NameServerSet is a set of DNS name
8282
* servers that all host the same zones. Most users will not need to specify this value.
8383
*/
84-
public abstract Builder nameServerSet(String nameServerSet);
84+
abstract Builder nameServerSet(String nameServerSet);
8585
// todo(mderka) add more to the doc when questions are answered by the service owner
8686

8787
/**

0 commit comments

Comments
 (0)