route53: replace usage of UnsignedInteger with int and corrected default ttl to 300

This commit is contained in:
adriancole 2013-03-11 14:53:01 -07:00
parent 9937e29cb8
commit fb4248eef7
7 changed files with 23 additions and 31 deletions

View File

@ -20,6 +20,7 @@ package org.jclouds.route53.domain;
import static com.google.common.base.Objects.equal; import static com.google.common.base.Objects.equal;
import static com.google.common.base.Objects.toStringHelper; import static com.google.common.base.Objects.toStringHelper;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkNotNull;
import java.util.List; import java.util.List;
@ -31,7 +32,6 @@ import com.google.common.base.Objects;
import com.google.common.base.Objects.ToStringHelper; import com.google.common.base.Objects.ToStringHelper;
import com.google.common.base.Optional; import com.google.common.base.Optional;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.primitives.UnsignedInteger;
/** /**
* *
@ -41,7 +41,7 @@ public class ResourceRecordSet {
protected final String name; protected final String name;
protected final String type; protected final String type;
protected final Optional<UnsignedInteger> ttl; protected final Optional<Integer> ttl;
protected final List<String> values; protected final List<String> values;
protected final Optional<AliasTarget> aliasTarget; protected final Optional<AliasTarget> aliasTarget;
@ -98,9 +98,9 @@ public class ResourceRecordSet {
public static abstract class RecordSubset extends ResourceRecordSet { public static abstract class RecordSubset extends ResourceRecordSet {
public static final class Weighted extends RecordSubset { public static final class Weighted extends RecordSubset {
private final UnsignedInteger weight; private final int weight;
private Weighted(String id, String name, String type, UnsignedInteger weight, Optional<UnsignedInteger> ttl, List<String> values, private Weighted(String id, String name, String type, int weight, Optional<Integer> ttl, List<String> values,
Optional<AliasTarget> aliasTarget) { Optional<AliasTarget> aliasTarget) {
super(id, name, type, ttl, values, aliasTarget); super(id, name, type, ttl, values, aliasTarget);
this.weight = checkNotNull(weight, "weight"); this.weight = checkNotNull(weight, "weight");
@ -110,7 +110,7 @@ public class ResourceRecordSet {
* determines what portion of traffic for the current resource record * determines what portion of traffic for the current resource record
* set is routed to this subset. * set is routed to this subset.
*/ */
public UnsignedInteger getWeight() { public int getWeight() {
return weight; return weight;
} }
@ -124,7 +124,7 @@ public class ResourceRecordSet {
private final String region; private final String region;
private Latency(String id, String name, String type, String region, Optional<UnsignedInteger> ttl, List<String> values, private Latency(String id, String name, String type, String region, Optional<Integer> ttl, List<String> values,
Optional<AliasTarget> aliasTarget) { Optional<AliasTarget> aliasTarget) {
super(id, name, type, ttl, values, aliasTarget); super(id, name, type, ttl, values, aliasTarget);
this.region = checkNotNull(region, "region of %s", name); this.region = checkNotNull(region, "region of %s", name);
@ -146,7 +146,7 @@ public class ResourceRecordSet {
private final String id; private final String id;
private RecordSubset(String id, String name, String type, Optional<UnsignedInteger> ttl, List<String> values, private RecordSubset(String id, String name, String type, Optional<Integer> ttl, List<String> values,
Optional<AliasTarget> aliasTarget) { Optional<AliasTarget> aliasTarget) {
super(name, type, ttl, values, aliasTarget); super(name, type, ttl, values, aliasTarget);
this.id = checkNotNull(id, "id of %s", name); this.id = checkNotNull(id, "id of %s", name);
@ -183,10 +183,11 @@ public class ResourceRecordSet {
} }
} }
private ResourceRecordSet(String name, String type, Optional<UnsignedInteger> ttl, List<String> values, Optional<AliasTarget> aliasTarget) { private ResourceRecordSet(String name, String type, Optional<Integer> ttl, List<String> values, Optional<AliasTarget> aliasTarget) {
this.name = checkNotNull(name, "name"); this.name = checkNotNull(name, "name");
this.type = checkNotNull(type, "type of %s", name); this.type = checkNotNull(type, "type of %s", name);
this.ttl = checkNotNull(ttl, "ttl for %s", name); this.ttl = checkNotNull(ttl, "ttl for %s", name);
checkArgument(ttl.or(0) >= 0, "ttl of %s must be unsigned", name);
this.values = checkNotNull(values, "values for %s", name); this.values = checkNotNull(values, "values for %s", name);
this.aliasTarget = checkNotNull(aliasTarget, "aliasTarget for %s", aliasTarget); this.aliasTarget = checkNotNull(aliasTarget, "aliasTarget for %s", aliasTarget);
} }
@ -209,7 +210,7 @@ public class ResourceRecordSet {
* Present in all resource record sets except aliases. The resource record * Present in all resource record sets except aliases. The resource record
* cache time to live (TTL), in seconds. * cache time to live (TTL), in seconds.
*/ */
public Optional<UnsignedInteger> getTTL() { public Optional<Integer> getTTL() {
return ttl; return ttl;
} }
@ -264,11 +265,11 @@ public class ResourceRecordSet {
private String id; private String id;
private String name; private String name;
private String type; private String type;
private Optional<UnsignedInteger> ttl = Optional.absent(); private Optional<Integer> ttl = Optional.absent();
private ImmutableList.Builder<String> values = ImmutableList.<String> builder(); private ImmutableList.Builder<String> values = ImmutableList.<String> builder();
private String dnsName; private String dnsName;
private String zoneId; private String zoneId;
private UnsignedInteger weight; private Integer weight;
private String region; private String region;
/** /**
@ -295,19 +296,12 @@ public class ResourceRecordSet {
return this; return this;
} }
/**
* @see ResourceRecordSet#getTTL()
*/
public Builder ttl(UnsignedInteger ttl) {
this.ttl = Optional.fromNullable(ttl);
return this;
}
/** /**
* @see ResourceRecordSet#getTTL() * @see ResourceRecordSet#getTTL()
*/ */
public Builder ttl(int ttl) { public Builder ttl(int ttl) {
return ttl(UnsignedInteger.fromIntBits(ttl)); this.ttl = Optional.of(ttl);
return this;
} }
/** /**
@ -359,7 +353,7 @@ public class ResourceRecordSet {
/** /**
* @see RecordSubset.Weighted * @see RecordSubset.Weighted
*/ */
public Builder weight(UnsignedInteger weight) { public Builder weight(int weight) {
this.weight = weight; this.weight = weight;
return this; return this;
} }

View File

@ -27,7 +27,6 @@ import org.jclouds.route53.domain.ResourceRecordSet.RecordSubset.Latency;
import org.jclouds.route53.domain.ResourceRecordSet.RecordSubset.Weighted; import org.jclouds.route53.domain.ResourceRecordSet.RecordSubset.Weighted;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.primitives.UnsignedInteger;
/** /**
* @author Adrian Cole * @author Adrian Cole
@ -54,7 +53,8 @@ public class SerializeRRS implements Function<Object, String> {
builder.append("<DNSName>").append(rrs.getAliasTarget().get().getDNSName()).append("</DNSName>"); builder.append("<DNSName>").append(rrs.getAliasTarget().get().getDNSName()).append("</DNSName>");
builder.append("</AliasTarget>"); builder.append("</AliasTarget>");
} else { } else {
builder.append("<TTL>").append(rrs.getTTL().or(UnsignedInteger.ZERO)).append("</TTL>"); // default ttl from the amazon console is 300
builder.append("<TTL>").append(rrs.getTTL().or(300)).append("</TTL>");
builder.append("<ResourceRecords>"); builder.append("<ResourceRecords>");
for (String record : rrs.getValues()) for (String record : rrs.getValues())
builder.append("<ResourceRecord>").append("<Value>").append(record).append("</Value>") builder.append("<ResourceRecord>").append("<Value>").append(record).append("</Value>")

View File

@ -24,7 +24,6 @@ import org.jclouds.http.functions.ParseSax;
import org.jclouds.route53.domain.HostedZone; import org.jclouds.route53.domain.HostedZone;
import org.xml.sax.Attributes; import org.xml.sax.Attributes;
import com.google.common.primitives.UnsignedInteger;
/** /**
* *
@ -59,7 +58,7 @@ public class HostedZoneHandler extends ParseSax.HandlerForGeneratedRequestWithRe
} else if (qName.equals("Comment")) { } else if (qName.equals("Comment")) {
builder.comment(currentOrNull(currentText)); builder.comment(currentOrNull(currentText));
} else if (qName.equals("ResourceRecordSetCount")) { } else if (qName.equals("ResourceRecordSetCount")) {
builder.resourceRecordSetCount(UnsignedInteger.valueOf(currentOrNull(currentText)).intValue()); builder.resourceRecordSetCount(Integer.parseInt(currentOrNull(currentText)));
} }
currentText = new StringBuilder(); currentText = new StringBuilder();
} }

View File

@ -24,7 +24,6 @@ import org.jclouds.http.functions.ParseSax;
import org.jclouds.route53.domain.ResourceRecordSet; import org.jclouds.route53.domain.ResourceRecordSet;
import org.xml.sax.Attributes; import org.xml.sax.Attributes;
import com.google.common.primitives.UnsignedInteger;
/** /**
* *
@ -55,7 +54,7 @@ public class ResourceRecordSetHandler extends ParseSax.HandlerForGeneratedReques
} else if (qName.equals("Type")) { } else if (qName.equals("Type")) {
builder.type(currentOrNull(currentText)); builder.type(currentOrNull(currentText));
} else if (qName.equals("TTL")) { } else if (qName.equals("TTL")) {
builder.ttl(UnsignedInteger.valueOf(currentOrNull(currentText))); builder.ttl(Integer.parseInt(currentOrNull(currentText)));
} else if (qName.equals("Value")) { } else if (qName.equals("Value")) {
builder.add(currentOrNull(currentText)); builder.add(currentOrNull(currentText));
} else if (qName.equals("HostedZoneId")) { } else if (qName.equals("HostedZoneId")) {
@ -65,7 +64,7 @@ public class ResourceRecordSetHandler extends ParseSax.HandlerForGeneratedReques
} else if (qName.equals("DNSName")) { } else if (qName.equals("DNSName")) {
builder.dnsName(currentOrNull(currentText)); builder.dnsName(currentOrNull(currentText));
} else if (qName.equals("Weight")) { } else if (qName.equals("Weight")) {
builder.weight(UnsignedInteger.valueOf(currentOrNull(currentText))); builder.weight(Integer.parseInt(currentOrNull(currentText)));
} else if (qName.equals("Region")) { } else if (qName.equals("Region")) {
builder.region(currentOrNull(currentText)); builder.region(currentOrNull(currentText));
} }

View File

@ -140,7 +140,7 @@ public class ResourceRecordSetApiExpectTest extends BaseRoute53ApiExpectTest {
public void testDeleteWhenResponseIs2xx() { public void testDeleteWhenResponseIs2xx() {
Route53Api success = requestSendsResponse(delete, jobResponse); Route53Api success = requestSendsResponse(delete, jobResponse);
assertEquals(success.getResourceRecordSetApiForHostedZone("Z1PA6795UKMFR9").create(ResourceRecordSet.builder().name("jclouds.org.").type("TXT").add("my texts").build()).toString(), assertEquals(success.getResourceRecordSetApiForHostedZone("Z1PA6795UKMFR9").create(ResourceRecordSet.builder().name("jclouds.org.").type("TXT").ttl(0).add("my texts").build()).toString(),
new GetChangeResponseTest().expected().toString()); new GetChangeResponseTest().expected().toString());
} }
} }

View File

@ -1 +1 @@
<ChangeResourceRecordSetsRequest xmlns="https://route53.amazonaws.com/doc/2012-02-29/"><ChangeBatch><Changes><Change><Action>DELETE</Action><ResourceRecordSet><Name>jclouds.org.</Name><Type>TXT</Type><TTL>0</TTL><ResourceRecords><ResourceRecord><Value>my texts</Value></ResourceRecord></ResourceRecords></ResourceRecordSet></Change><Change><Action>CREATE</Action><ResourceRecordSet><Name>jclouds.org.</Name><Type>TXT</Type><TTL>0</TTL><ResourceRecords><ResourceRecord><Value>my better texts</Value></ResourceRecord></ResourceRecords></ResourceRecordSet></Change></Changes></ChangeBatch></ChangeResourceRecordSetsRequest> <ChangeResourceRecordSetsRequest xmlns="https://route53.amazonaws.com/doc/2012-02-29/"><ChangeBatch><Changes><Change><Action>DELETE</Action><ResourceRecordSet><Name>jclouds.org.</Name><Type>TXT</Type><TTL>300</TTL><ResourceRecords><ResourceRecord><Value>my texts</Value></ResourceRecord></ResourceRecords></ResourceRecordSet></Change><Change><Action>CREATE</Action><ResourceRecordSet><Name>jclouds.org.</Name><Type>TXT</Type><TTL>300</TTL><ResourceRecords><ResourceRecord><Value>my better texts</Value></ResourceRecord></ResourceRecords></ResourceRecordSet></Change></Changes></ChangeBatch></ChangeResourceRecordSetsRequest>

View File

@ -1 +1 @@
<ChangeResourceRecordSetsRequest xmlns="https://route53.amazonaws.com/doc/2012-02-29/"><ChangeBatch><Changes><Change><Action>CREATE</Action><ResourceRecordSet><Name>jclouds.org.</Name><Type>TXT</Type><TTL>0</TTL><ResourceRecords><ResourceRecord><Value>my texts</Value></ResourceRecord></ResourceRecords></ResourceRecordSet></Change></Changes></ChangeBatch></ChangeResourceRecordSetsRequest> <ChangeResourceRecordSetsRequest xmlns="https://route53.amazonaws.com/doc/2012-02-29/"><ChangeBatch><Changes><Change><Action>CREATE</Action><ResourceRecordSet><Name>jclouds.org.</Name><Type>TXT</Type><TTL>300</TTL><ResourceRecords><ResourceRecord><Value>my texts</Value></ResourceRecord></ResourceRecords></ResourceRecordSet></Change></Changes></ChangeBatch></ChangeResourceRecordSetsRequest>