mirror of https://github.com/apache/jclouds.git
GleSYS provider: updating DomainClient for GleSYS api Beta v0.1.7 changes
This commit is contained in:
parent
131e61d9c2
commit
fe6c37f9bf
|
@ -35,13 +35,13 @@ public class Domain implements Comparable<Domain> {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
private String domain;
|
private String domainName;
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
private int recordCount;
|
private int recordCount;
|
||||||
private boolean glesysNameServer;
|
private boolean useGlesysNameServer;
|
||||||
|
|
||||||
public Builder domain(String domain) {
|
public Builder domainName(String domainName) {
|
||||||
this.domain = domain;
|
this.domainName = domainName;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,38 +55,39 @@ public class Domain implements Comparable<Domain> {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Builder glesysNameServer(boolean glesysNameServer) {
|
public Builder useGlesysNameServer(boolean useGlesysNameServer) {
|
||||||
this.glesysNameServer = glesysNameServer;
|
this.useGlesysNameServer = useGlesysNameServer;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Domain build() {
|
public Domain build() {
|
||||||
return new Domain(domain, createTime, recordCount, glesysNameServer);
|
return new Domain(domainName, createTime, recordCount, useGlesysNameServer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Builder fromDomain(Domain in) {
|
public Builder fromDomain(Domain in) {
|
||||||
return new Builder();
|
return new Builder().domainName(in.getDomainName()).createTime(in.getCreateTime()).recordCount(in.getRecordCount()).useGlesysNameServer(in.isGlesysNameServer());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final String domain;
|
@SerializedName("domainname")
|
||||||
@SerializedName("create_time")
|
private final String domainName;
|
||||||
|
@SerializedName("createtime")
|
||||||
private final Date createTime;
|
private final Date createTime;
|
||||||
@SerializedName("count")
|
@SerializedName("recordcount")
|
||||||
private final int recordCount;
|
private final int recordCount;
|
||||||
@SerializedName("glesysnameserver")
|
@SerializedName("usingglesysnameserver")
|
||||||
private final boolean glesysNameServer;
|
private final boolean useGlesysNameServer;
|
||||||
|
|
||||||
public Domain(String domain, Date createTime, int recordCount, boolean glesysNameServer) {
|
public Domain(String domainName, Date createTime, int recordCount, boolean useGlesysNameServer) {
|
||||||
this.domain = domain;
|
this.domainName = domainName;
|
||||||
this.createTime = createTime;
|
this.createTime = createTime;
|
||||||
this.recordCount = recordCount;
|
this.recordCount = recordCount;
|
||||||
this.glesysNameServer = glesysNameServer;
|
this.useGlesysNameServer = useGlesysNameServer;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return the domain name, ex. "jclouds.org" */
|
/** @return the domain name, ex. "jclouds.org" */
|
||||||
public String getDomain() {
|
public String getDomainName() {
|
||||||
return domain;
|
return domainName;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return the date the domain was registered with GleSYS */
|
/** @return the date the domain was registered with GleSYS */
|
||||||
|
@ -100,18 +101,18 @@ public class Domain implements Comparable<Domain> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return true if a GleSYS nameserver holds the records */
|
/** @return true if a GleSYS nameserver holds the records */
|
||||||
public boolean getGlesysNameServer() {
|
public boolean isGlesysNameServer() {
|
||||||
return glesysNameServer;
|
return useGlesysNameServer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return Objects.hashCode(domain);
|
return Objects.hashCode(domainName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int compareTo(Domain other) {
|
public int compareTo(Domain other) {
|
||||||
return domain.compareTo(other.getDomain());
|
return domainName.compareTo(other.getDomainName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -120,7 +121,7 @@ public class Domain implements Comparable<Domain> {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (object instanceof Domain) {
|
if (object instanceof Domain) {
|
||||||
return Objects.equal(domain, ((Domain) object).domain);
|
return Objects.equal(domainName, ((Domain) object).domainName);
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -128,7 +129,7 @@ public class Domain implements Comparable<Domain> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return String.format("[domain=%s, createTime=%s, count=%d, glesysnameserver=%b]", domain, createTime, recordCount, glesysNameServer);
|
return String.format("[domainname=%s, createtime=%s, count=%d, useglesysnameserver=%b]", domainName, createTime, recordCount, useGlesysNameServer);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -33,7 +33,7 @@ public class DomainRecord implements Comparable<DomainRecord> {
|
||||||
|
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
private String id;
|
private String id;
|
||||||
private String zone;
|
private String domainname;
|
||||||
private String host;
|
private String host;
|
||||||
private String type;
|
private String type;
|
||||||
private String data;
|
private String data;
|
||||||
|
@ -44,9 +44,8 @@ public class DomainRecord implements Comparable<DomainRecord> {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Builder domainname(String domainname) {
|
||||||
public Builder zone(String zone) {
|
this.domainname = domainname;
|
||||||
this.zone = zone;
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,24 +70,24 @@ public class DomainRecord implements Comparable<DomainRecord> {
|
||||||
}
|
}
|
||||||
|
|
||||||
public DomainRecord build() {
|
public DomainRecord build() {
|
||||||
return new DomainRecord(id, zone, host, type, data, ttl);
|
return new DomainRecord(id, domainname, host, type, data, ttl);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Builder fromDomainRecord(DomainRecord in) {
|
public Builder fromDomainRecord(DomainRecord in) {
|
||||||
return new Builder().id(in.getId()).zone(in.getZone()).host(in.getHost()).type(in.getType()).data(in.getData()).ttl(in.getTtl());
|
return new Builder().id(in.getId()).domainname(in.getDomainName()).host(in.getHost()).type(in.getType()).data(in.getData()).ttl(in.getTtl());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final String id;
|
private final String id;
|
||||||
private final String zone;
|
private final String domainname;
|
||||||
private final String host;
|
private final String host;
|
||||||
private final String type;
|
private final String type;
|
||||||
private final String data;
|
private final String data;
|
||||||
private final int ttl;
|
private final int ttl;
|
||||||
|
|
||||||
public DomainRecord(String id, String zone, String host, String type, String data, int ttl) {
|
public DomainRecord(String id, String domainname, String host, String type, String data, int ttl) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.zone = zone;
|
this.domainname = domainname;
|
||||||
this.host = host;
|
this.host = host;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.data = data;
|
this.data = data;
|
||||||
|
@ -106,8 +105,8 @@ public class DomainRecord implements Comparable<DomainRecord> {
|
||||||
/**
|
/**
|
||||||
* @return the zone content of the record
|
* @return the zone content of the record
|
||||||
*/
|
*/
|
||||||
public String getZone() {
|
public String getDomainName() {
|
||||||
return zone;
|
return domainname;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -163,7 +162,7 @@ public class DomainRecord implements Comparable<DomainRecord> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return String.format("[id=%s, zone=%s, host=%s, type=%s, data=%s, ttl=%d]", id, zone, host, type, data, ttl);
|
return String.format("[id=%s, domainname=%s, host=%s, type=%s, data=%s, ttl=%d]", id, domainname, host, type, data, ttl);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -64,14 +64,14 @@ public interface DomainAsyncClient {
|
||||||
*/
|
*/
|
||||||
@POST
|
@POST
|
||||||
@Path("/domain/add/format/json")
|
@Path("/domain/add/format/json")
|
||||||
ListenableFuture<Void> addDomain(@FormParam("name") String name, AddDomainOptions... options);
|
ListenableFuture<Void> addDomain(@FormParam("domainname") String name, AddDomainOptions... options);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see DomainClient#editDomain
|
* @see DomainClient#editDomain
|
||||||
*/
|
*/
|
||||||
@POST
|
@POST
|
||||||
@Path("/domain/edit/format/json")
|
@Path("/domain/edit/format/json")
|
||||||
ListenableFuture<Void> editDomain(@FormParam("domain") String domain, DomainOptions... options);
|
ListenableFuture<Void> editDomain(@FormParam("domainname") String domain, DomainOptions... options);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -79,23 +79,23 @@ public interface DomainAsyncClient {
|
||||||
*/
|
*/
|
||||||
@POST
|
@POST
|
||||||
@Path("/domain/delete/format/json")
|
@Path("/domain/delete/format/json")
|
||||||
ListenableFuture<Void> deleteDomain(@FormParam("domain") String domain);
|
ListenableFuture<Void> deleteDomain(@FormParam("domainname") String domain);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see DomainClient#listRecords
|
* @see DomainClient#listRecords
|
||||||
*/
|
*/
|
||||||
@POST
|
@POST
|
||||||
@Path("/domain/list_records/format/json")
|
@Path("/domain/listrecords/format/json")
|
||||||
@SelectJson("records")
|
@SelectJson("records")
|
||||||
@Consumes(MediaType.APPLICATION_JSON)
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
ListenableFuture<Set<DomainRecord>> listRecords(@FormParam("domain") String domain);
|
ListenableFuture<Set<DomainRecord>> listRecords(@FormParam("domainname") String domain);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see DomainClient#addRecord
|
* @see DomainClient#addRecord
|
||||||
*/
|
*/
|
||||||
@POST
|
@POST
|
||||||
@Path("/domain/add_record/format/json")
|
@Path("/domain/addrecord/format/json")
|
||||||
ListenableFuture<Void> addRecord(@FormParam("domain") String domain, @FormParam("host") String host,
|
ListenableFuture<Void> addRecord(@FormParam("domainname") String domain, @FormParam("host") String host,
|
||||||
@FormParam("type") String type, @FormParam("data") String data,
|
@FormParam("type") String type, @FormParam("data") String data,
|
||||||
AddRecordOptions... options);
|
AddRecordOptions... options);
|
||||||
|
|
||||||
|
@ -103,14 +103,14 @@ public interface DomainAsyncClient {
|
||||||
* @see DomainClient#editRecord
|
* @see DomainClient#editRecord
|
||||||
*/
|
*/
|
||||||
@POST
|
@POST
|
||||||
@Path("/domain/update_record/format/json")
|
@Path("/domain/updaterecord/format/json")
|
||||||
ListenableFuture<Void> editRecord(@FormParam("record_id") String record_id, EditRecordOptions... options);
|
ListenableFuture<Void> editRecord(@FormParam("recordid") String record_id, EditRecordOptions... options);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see DomainClient#deleteRecord
|
* @see DomainClient#deleteRecord
|
||||||
*/
|
*/
|
||||||
@POST
|
@POST
|
||||||
@Path("/domain/delete_record/format/json")
|
@Path("/domain/deleterecord/format/json")
|
||||||
ListenableFuture<Void> deleteRecord(@FormParam("record_id") String recordId);
|
ListenableFuture<Void> deleteRecord(@FormParam("recordid") String recordId);
|
||||||
|
|
||||||
}
|
}
|
|
@ -26,6 +26,8 @@ import java.util.Date;
|
||||||
|
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import com.google.inject.Inject;
|
||||||
|
import org.jclouds.date.DateService;
|
||||||
import org.jclouds.json.config.GsonModule;
|
import org.jclouds.json.config.GsonModule;
|
||||||
|
|
||||||
import com.google.common.base.Throwables;
|
import com.google.common.base.Throwables;
|
||||||
|
@ -35,20 +37,35 @@ import com.google.gson.stream.JsonWriter;
|
||||||
/**
|
/**
|
||||||
* Parser for Glesys Date formats
|
* Parser for Glesys Date formats
|
||||||
*
|
*
|
||||||
|
* @deprecated this should be replaced by standard ISO8601 parser in the next week or so
|
||||||
|
*
|
||||||
* @author Adam Lowe
|
* @author Adam Lowe
|
||||||
*/
|
*/
|
||||||
@Singleton
|
@Singleton
|
||||||
public class GlesysDateAdapter extends GsonModule.DateAdapter {
|
public class GlesysDateAdapter extends GsonModule.DateAdapter {
|
||||||
private final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
private final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
private final DateService standardDateService;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public GlesysDateAdapter(DateService service) {
|
||||||
|
this.standardDateService = service;
|
||||||
|
}
|
||||||
|
|
||||||
public void write(JsonWriter writer, Date value) throws IOException {
|
public void write(JsonWriter writer, Date value) throws IOException {
|
||||||
|
try {
|
||||||
|
writer.value(standardDateService.iso8601SecondsDateFormat(value));
|
||||||
|
} catch (Exception ex) {
|
||||||
synchronized (dateFormat) {
|
synchronized (dateFormat) {
|
||||||
writer.value(dateFormat.format(value));
|
writer.value(dateFormat.format(value));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public Date read(JsonReader reader) throws IOException {
|
public Date read(JsonReader reader) throws IOException {
|
||||||
String toParse = reader.nextString();
|
String toParse = reader.nextString();
|
||||||
|
try {
|
||||||
|
return standardDateService.iso8601SecondsDateParse(toParse);
|
||||||
|
} catch (Exception ex) {
|
||||||
try {
|
try {
|
||||||
synchronized (dateFormat) {
|
synchronized (dateFormat) {
|
||||||
return dateFormat.parse(toParse);
|
return dateFormat.parse(toParse);
|
||||||
|
@ -57,4 +74,5 @@ public class GlesysDateAdapter extends GsonModule.DateAdapter {
|
||||||
throw Throwables.propagate(e);
|
throw Throwables.propagate(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,7 +85,7 @@ public class AddDomainOptions extends DomainOptions {
|
||||||
* Ensure only NS and SOA records will be created by default, when this option is not used a number of default records will be created on the domain.
|
* Ensure only NS and SOA records will be created by default, when this option is not used a number of default records will be created on the domain.
|
||||||
*/
|
*/
|
||||||
public DomainOptions minimalRecords() {
|
public DomainOptions minimalRecords() {
|
||||||
formParameters.put("create_records", "0");
|
formParameters.put("createrecords", "0");
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,14 +33,6 @@ public class AddRecordOptions extends BaseHttpRequestOptions {
|
||||||
AddRecordOptions options = new AddRecordOptions();
|
AddRecordOptions options = new AddRecordOptions();
|
||||||
return options.ttl(ttl);
|
return options.ttl(ttl);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @see AddRecordOptions#mxPriority
|
|
||||||
*/
|
|
||||||
public static AddRecordOptions mxPriority(int mxPriority) {
|
|
||||||
AddRecordOptions options = new AddRecordOptions();
|
|
||||||
return options.mxPriority(mxPriority);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Configure TTL/Time-to-live for record */
|
/** Configure TTL/Time-to-live for record */
|
||||||
|
@ -48,11 +40,4 @@ public class AddRecordOptions extends BaseHttpRequestOptions {
|
||||||
formParameters.put("ttl", Integer.toString(ttl));
|
formParameters.put("ttl", Integer.toString(ttl));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Configure the priority of an MX record */
|
|
||||||
public AddRecordOptions mxPriority(int mxPriority) {
|
|
||||||
formParameters.put("mx_priority", Integer.toString(mxPriority));
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -86,7 +86,7 @@ public class DomainOptions extends BaseHttpRequestOptions {
|
||||||
* Configure the primary DNS server for this domain.
|
* Configure the primary DNS server for this domain.
|
||||||
*/
|
*/
|
||||||
public DomainOptions primaryNameServer(String primaryNameServer) {
|
public DomainOptions primaryNameServer(String primaryNameServer) {
|
||||||
formParameters.put("primary_ns", primaryNameServer);
|
formParameters.put("primarynameserver", primaryNameServer);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@ public class DomainOptions extends BaseHttpRequestOptions {
|
||||||
if (!responsiblePerson.endsWith(".")) {
|
if (!responsiblePerson.endsWith(".")) {
|
||||||
responsiblePerson = responsiblePerson + ".";
|
responsiblePerson = responsiblePerson + ".";
|
||||||
}
|
}
|
||||||
formParameters.put("resp_person", responsiblePerson);
|
formParameters.put("responsibleperson", responsiblePerson);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,13 +51,6 @@ public class EditRecordOptions extends AddRecordOptions {
|
||||||
public static EditRecordOptions ttl(int ttl) {
|
public static EditRecordOptions ttl(int ttl) {
|
||||||
return EditRecordOptions.class.cast(new EditRecordOptions().ttl(ttl));
|
return EditRecordOptions.class.cast(new EditRecordOptions().ttl(ttl));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @see EditRecordOptions#mxPriority
|
|
||||||
*/
|
|
||||||
public static EditRecordOptions mxPriority(int mxPriority) {
|
|
||||||
return EditRecordOptions.class.cast(new EditRecordOptions().mxPriority(mxPriority));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -21,12 +21,18 @@ package org.jclouds.glesys.features;
|
||||||
import com.google.common.collect.ImmutableMultimap;
|
import com.google.common.collect.ImmutableMultimap;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.collect.ImmutableSortedSet;
|
import com.google.common.collect.ImmutableSortedSet;
|
||||||
|
import com.google.common.collect.Iterables;
|
||||||
|
import com.google.inject.Inject;
|
||||||
|
import org.apache.log4j.helpers.ISO8601DateFormat;
|
||||||
|
import org.jclouds.date.DateService;
|
||||||
|
import org.jclouds.date.internal.SimpleDateFormatDateService;
|
||||||
import org.jclouds.glesys.GleSYSClient;
|
import org.jclouds.glesys.GleSYSClient;
|
||||||
import org.jclouds.glesys.domain.Domain;
|
import org.jclouds.glesys.domain.Domain;
|
||||||
import org.jclouds.glesys.domain.DomainRecord;
|
import org.jclouds.glesys.domain.DomainRecord;
|
||||||
import org.jclouds.glesys.options.AddDomainOptions;
|
import org.jclouds.glesys.options.AddDomainOptions;
|
||||||
import org.jclouds.http.HttpRequest;
|
import org.jclouds.http.HttpRequest;
|
||||||
import org.jclouds.http.HttpResponse;
|
import org.jclouds.http.HttpResponse;
|
||||||
|
import org.jclouds.json.config.GsonModule;
|
||||||
import org.jclouds.rest.BaseRestClientExpectTest;
|
import org.jclouds.rest.BaseRestClientExpectTest;
|
||||||
import org.jclouds.rest.ResourceNotFoundException;
|
import org.jclouds.rest.ResourceNotFoundException;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
@ -46,6 +52,8 @@ import static org.testng.Assert.assertTrue;
|
||||||
*/
|
*/
|
||||||
@Test(groups = "unit", testName = "DomainClientExpectTest")
|
@Test(groups = "unit", testName = "DomainClientExpectTest")
|
||||||
public class DomainClientExpectTest extends BaseRestClientExpectTest<GleSYSClient> {
|
public class DomainClientExpectTest extends BaseRestClientExpectTest<GleSYSClient> {
|
||||||
|
private DateService dateService = new SimpleDateFormatDateService();
|
||||||
|
|
||||||
public DomainClientExpectTest() {
|
public DomainClientExpectTest() {
|
||||||
provider = "glesys";
|
provider = "glesys";
|
||||||
}
|
}
|
||||||
|
@ -59,10 +67,12 @@ public class DomainClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
|
||||||
.build(),
|
.build(),
|
||||||
HttpResponse.builder().statusCode(200).payload(payloadFromResource("/domain_list.json")).build()).getDomainClient();
|
HttpResponse.builder().statusCode(200).payload(payloadFromResource("/domain_list.json")).build()).getDomainClient();
|
||||||
|
|
||||||
Set<Domain> expected = ImmutableSet.of(
|
Domain expected =
|
||||||
Domain.builder().domain("adamlowe.net").createTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2011-12-20 10:58:51")).build());
|
Domain.builder().domainName("testglesys.jclouds.org").createTime(dateService.iso8601SecondsDateParse("2012-01-31T12:19:03+01:00")).build();
|
||||||
|
|
||||||
assertEquals(client.listDomains(), expected);
|
Domain actual = Iterables.getOnlyElement(client.listDomains());
|
||||||
|
assertEquals(expected.getDomainName(), actual.getDomainName());
|
||||||
|
assertEquals(expected.getCreateTime(), actual.getCreateTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testListDomainsWhenResponseIs4xxReturnsEmpty() throws Exception {
|
public void testListDomainsWhenResponseIs4xxReturnsEmpty() throws Exception {
|
||||||
|
@ -79,28 +89,38 @@ public class DomainClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
|
||||||
|
|
||||||
public void testListDomainRecordsWhenResponseIs2xx() throws Exception {
|
public void testListDomainRecordsWhenResponseIs2xx() throws Exception {
|
||||||
DomainClient client = requestSendsResponse(
|
DomainClient client = requestSendsResponse(
|
||||||
HttpRequest.builder().method("POST").endpoint(URI.create("https://api.glesys.com/domain/list_records/format/json"))
|
HttpRequest.builder().method("POST").endpoint(URI.create("https://api.glesys.com/domain/listrecords/format/json"))
|
||||||
.headers(ImmutableMultimap.<String, String>builder()
|
.headers(ImmutableMultimap.<String, String>builder()
|
||||||
.put("Accept", "application/json")
|
.put("Accept", "application/json")
|
||||||
.put("Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==").build())
|
.put("Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==").build())
|
||||||
.payload(newUrlEncodedFormPayload(ImmutableMultimap.<String, String>builder()
|
.payload(newUrlEncodedFormPayload(ImmutableMultimap.<String, String>builder()
|
||||||
.put("domain", "adamlowe.net").build())).build(),
|
.put("domainname", "testglesys.jclouds.org").build())).build(),
|
||||||
HttpResponse.builder().statusCode(200).payload(payloadFromResource("/domain_list_records.json")).build()).getDomainClient();
|
HttpResponse.builder().statusCode(200).payload(payloadFromResource("/domain_list_records.json")).build()).getDomainClient();
|
||||||
|
|
||||||
Set<DomainRecord> expected = ImmutableSortedSet.of(
|
Set<DomainRecord> expected = ImmutableSortedSet.of(
|
||||||
DomainRecord.builder().id("213227").zone("adamlowe.net").host("@").type("NS").data("ns1.namesystem.se.").ttl(3600).build(),
|
DomainRecord.builder().id("224538").domainname("testglesys.jclouds.org").host("@").type("NS").data("ns1.namesystem.se.").ttl(3600).build(),
|
||||||
DomainRecord.builder().id("213228").zone("adamlowe.net").host("@").type("NS").data("ns2.namesystem.se.").ttl(3600).build(),
|
DomainRecord.builder().id("224539").domainname("testglesys.jclouds.org").host("@").type("NS").data("ns2.namesystem.se.").ttl(3600).build(),
|
||||||
DomainRecord.builder().id("213229").zone("adamlowe.net").host("@").type("NS").data("ns3.namesystem.se.").ttl(3600).build(),
|
DomainRecord.builder().id("224540").domainname("testglesys.jclouds.org").host("@").type("NS").data("ns3.namesystem.se.").ttl(3600).build(),
|
||||||
DomainRecord.builder().id("213230").zone("adamlowe.net").host("@").type("A").data("127.0.0.1").ttl(3600).build(),
|
DomainRecord.builder().id("224541").domainname("testglesys.jclouds.org").host("@").type("A").data("127.0.0.1").ttl(3600).build(),
|
||||||
DomainRecord.builder().id("213231").zone("adamlowe.net").host("www").type("A").data("127.0.0.1").ttl(3600).build(),
|
DomainRecord.builder().id("224542").domainname("testglesys.jclouds.org").host("www").type("A").data("127.0.0.1").ttl(3600).build(),
|
||||||
DomainRecord.builder().id("213232").zone("adamlowe.net").host("mail").type("A").data("79.99.4.40").ttl(3600).build(),
|
DomainRecord.builder().id("224543").domainname("testglesys.jclouds.org").host("mail").type("A").data("79.99.4.40").ttl(3600).build(),
|
||||||
DomainRecord.builder().id("213233").zone("adamlowe.net").host("@").type("MX").data("mx01.glesys.se.").ttl(3600).build(),
|
DomainRecord.builder().id("224544").domainname("testglesys.jclouds.org").host("@").type("MX").data("10 mx01.glesys.se.").ttl(3600).build(),
|
||||||
DomainRecord.builder().id("213234").zone("adamlowe.net").host("@").type("MX").data("mx02.glesys.se.").ttl(3600).build(),
|
DomainRecord.builder().id("224545").domainname("testglesys.jclouds.org").host("@").type("MX").data("20 mx02.glesys.se.").ttl(3600).build(),
|
||||||
DomainRecord.builder().id("213235").zone("adamlowe.net").host("@").type("TXT").data("v=spf1 include:spf.glesys.se -all").ttl(3600).build()
|
DomainRecord.builder().id("224546").domainname("testglesys.jclouds.org").host("@").type("TXT").data("v=spf1 include:spf.glesys.se -all").ttl(3600).build()
|
||||||
);
|
);
|
||||||
assertEquals(client.listRecords("adamlowe.net"), expected);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
Set<DomainRecord> actual = client.listRecords("testglesys.jclouds.org");
|
||||||
|
|
||||||
|
assertEquals(actual, expected);
|
||||||
|
|
||||||
|
for(DomainRecord result : actual) {
|
||||||
|
for(DomainRecord expect : expected) {
|
||||||
|
if (result.equals(expect)) {
|
||||||
|
assertEquals(result.toString(), expect.toString(), "Deep comparison using toString() failed!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void testListDomainRecordsWhenResponseIs4xxReturnsEmpty() throws Exception {
|
public void testListDomainRecordsWhenResponseIs4xxReturnsEmpty() throws Exception {
|
||||||
DomainClient client = requestSendsResponse(
|
DomainClient client = requestSendsResponse(
|
||||||
|
@ -120,7 +140,7 @@ public class DomainClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
|
||||||
.headers(ImmutableMultimap.<String, String>builder().put(
|
.headers(ImmutableMultimap.<String, String>builder().put(
|
||||||
"Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==").build())
|
"Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==").build())
|
||||||
.payload(newUrlEncodedFormPayload(ImmutableMultimap.<String, String>builder()
|
.payload(newUrlEncodedFormPayload(ImmutableMultimap.<String, String>builder()
|
||||||
.put("name", "cl66666_x").build())).build(),
|
.put("domainname", "cl66666_x").build())).build(),
|
||||||
HttpResponse.builder().statusCode(200).build()).getDomainClient();
|
HttpResponse.builder().statusCode(200).build()).getDomainClient();
|
||||||
|
|
||||||
client.addDomain("cl66666_x");
|
client.addDomain("cl66666_x");
|
||||||
|
@ -133,12 +153,12 @@ public class DomainClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
|
||||||
.headers(ImmutableMultimap.<String, String>builder().put(
|
.headers(ImmutableMultimap.<String, String>builder().put(
|
||||||
"Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==").build())
|
"Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==").build())
|
||||||
.payload(newUrlEncodedFormPayload(ImmutableMultimap.<String, String>builder()
|
.payload(newUrlEncodedFormPayload(ImmutableMultimap.<String, String>builder()
|
||||||
.put("name", "cl66666_x")
|
.put("domainname", "cl66666_x")
|
||||||
.put("primary_ns", "ns1.somewhere.x")
|
.put("primarynameserver", "ns1.somewhere.x")
|
||||||
.put("expire", "1")
|
.put("expire", "1")
|
||||||
.put("minimum", "1")
|
.put("minimum", "1")
|
||||||
.put("refresh", "1")
|
.put("refresh", "1")
|
||||||
.put("resp_person", "Tester.")
|
.put("responsibleperson", "Tester.")
|
||||||
.put("retry", "1")
|
.put("retry", "1")
|
||||||
.put("ttl", "1")
|
.put("ttl", "1")
|
||||||
.build())).build(),
|
.build())).build(),
|
||||||
|
@ -155,7 +175,7 @@ public class DomainClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
|
||||||
.headers(ImmutableMultimap.<String, String>builder().put(
|
.headers(ImmutableMultimap.<String, String>builder().put(
|
||||||
"Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==").build())
|
"Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==").build())
|
||||||
.payload(newUrlEncodedFormPayload(ImmutableMultimap.<String, String>builder()
|
.payload(newUrlEncodedFormPayload(ImmutableMultimap.<String, String>builder()
|
||||||
.put("domain", "x").build())).build(),
|
.put("domainname", "x").build())).build(),
|
||||||
HttpResponse.builder().statusCode(200).build()).getDomainClient();
|
HttpResponse.builder().statusCode(200).build()).getDomainClient();
|
||||||
|
|
||||||
client.editDomain("x");
|
client.editDomain("x");
|
||||||
|
@ -168,7 +188,7 @@ public class DomainClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
|
||||||
.headers(ImmutableMultimap.<String, String>builder().put(
|
.headers(ImmutableMultimap.<String, String>builder().put(
|
||||||
"Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==").build())
|
"Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==").build())
|
||||||
.payload(newUrlEncodedFormPayload(ImmutableMultimap.<String, String>builder()
|
.payload(newUrlEncodedFormPayload(ImmutableMultimap.<String, String>builder()
|
||||||
.put("domain", "x").build())).build(),
|
.put("domainname", "x").build())).build(),
|
||||||
HttpResponse.builder().statusCode(404).build()).getDomainClient();
|
HttpResponse.builder().statusCode(404).build()).getDomainClient();
|
||||||
|
|
||||||
client.editDomain("x");
|
client.editDomain("x");
|
||||||
|
@ -180,7 +200,7 @@ public class DomainClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
|
||||||
.headers(ImmutableMultimap.<String, String>builder().put(
|
.headers(ImmutableMultimap.<String, String>builder().put(
|
||||||
"Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==").build())
|
"Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==").build())
|
||||||
.payload(newUrlEncodedFormPayload(ImmutableMultimap.<String, String>builder()
|
.payload(newUrlEncodedFormPayload(ImmutableMultimap.<String, String>builder()
|
||||||
.put("domain", "x").build())).build(),
|
.put("domainname", "x").build())).build(),
|
||||||
HttpResponse.builder().statusCode(200).build()).getDomainClient();
|
HttpResponse.builder().statusCode(200).build()).getDomainClient();
|
||||||
|
|
||||||
client.deleteDomain("x");
|
client.deleteDomain("x");
|
||||||
|
@ -193,7 +213,7 @@ public class DomainClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
|
||||||
.headers(ImmutableMultimap.<String, String>builder().put(
|
.headers(ImmutableMultimap.<String, String>builder().put(
|
||||||
"Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==").build())
|
"Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==").build())
|
||||||
.payload(newUrlEncodedFormPayload(ImmutableMultimap.<String, String>builder()
|
.payload(newUrlEncodedFormPayload(ImmutableMultimap.<String, String>builder()
|
||||||
.put("domain", "x").build())).build(),
|
.put("domainname", "x").build())).build(),
|
||||||
HttpResponse.builder().statusCode(404).build()).getDomainClient();
|
HttpResponse.builder().statusCode(404).build()).getDomainClient();
|
||||||
|
|
||||||
client.deleteDomain("x");
|
client.deleteDomain("x");
|
||||||
|
|
|
@ -88,7 +88,7 @@ public class DomainClientLiveTest extends BaseGleSYSClientLiveTest {
|
||||||
@Test
|
@Test
|
||||||
public void testEditDomain() throws Exception {
|
public void testEditDomain() throws Exception {
|
||||||
client.editDomain(testDomain, DomainOptions.Builder.responsiblePerson("tester.jclouds.org"));
|
client.editDomain(testDomain, DomainOptions.Builder.responsiblePerson("tester.jclouds.org"));
|
||||||
assertTrue(client.listDomains().contains(Domain.builder().domain(testDomain).build()));
|
assertTrue(client.listDomains().contains(Domain.builder().domainName(testDomain).build()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"response":{"status":{"code":"200","text":"OK"},"domains":[{"domain":"adamlowe.net","create_time":"2011-12-20 10:58:51","count":"9","glesysnameserver":false}],"debug":{"input":[]}}}
|
{"response":{"status":{"code":200,"text":"OK"},"domains":[{"domainname":"testglesys.jclouds.org","createtime":"2012-01-31T12:19:03+01:00","recordcount":9,"usingglesysnameserver":"no"}],"debug":{"input":[]}}}
|
|
@ -1 +1 @@
|
||||||
{"response":{"status":{"code":"200","text":"OK"},"records":[{"id":"213227","zone":"adamlowe.net","host":"@","type":"NS","data":"ns1.namesystem.se.","ttl":"3600"},{"id":"213228","zone":"adamlowe.net","host":"@","type":"NS","data":"ns2.namesystem.se.","ttl":"3600"},{"id":"213229","zone":"adamlowe.net","host":"@","type":"NS","data":"ns3.namesystem.se.","ttl":"3600"},{"id":"213230","zone":"adamlowe.net","host":"@","type":"A","data":"127.0.0.1","ttl":"3600"},{"id":"213231","zone":"adamlowe.net","host":"www","type":"A","data":"127.0.0.1","ttl":"3600"},{"id":"213232","zone":"adamlowe.net","host":"mail","type":"A","data":"79.99.4.40","ttl":"3600"},{"id":"213233","zone":"adamlowe.net","host":"@","type":"MX","data":"mx01.glesys.se.","ttl":"3600"},{"id":"213234","zone":"adamlowe.net","host":"@","type":"MX","data":"mx02.glesys.se.","ttl":"3600"},{"id":"213235","zone":"adamlowe.net","host":"@","type":"TXT","data":"v=spf1 include:spf.glesys.se -all","ttl":"3600"}],"debug":{"input":{"domain":"adamlowe.net"}}}}
|
{"response":{"status":{"code":200,"text":"OK"},"records":[{"id":224546,"domainname":"testglesys.jclouds.org","host":"@","type":"TXT","data":"v=spf1 include:spf.glesys.se -all","ttl":3600},{"id":224545,"domainname":"testglesys.jclouds.org","host":"@","type":"MX","data":"20 mx02.glesys.se.","ttl":3600},{"id":224543,"domainname":"testglesys.jclouds.org","host":"mail","type":"A","data":"79.99.4.40","ttl":3600},{"id":224544,"domainname":"testglesys.jclouds.org","host":"@","type":"MX","data":"10 mx01.glesys.se.","ttl":3600},{"id":224542,"domainname":"testglesys.jclouds.org","host":"www","type":"A","data":"127.0.0.1","ttl":3600},{"id":224541,"domainname":"testglesys.jclouds.org","host":"@","type":"A","data":"127.0.0.1","ttl":3600},{"id":224540,"domainname":"testglesys.jclouds.org","host":"@","type":"NS","data":"ns3.namesystem.se.","ttl":3600},{"id":224539,"domainname":"testglesys.jclouds.org","host":"@","type":"NS","data":"ns2.namesystem.se.","ttl":3600},{"id":224538,"domainname":"testglesys.jclouds.org","host":"@","type":"NS","data":"ns1.namesystem.se.","ttl":3600}],"debug":{"input":{"domainname":"testglesys.jclouds.org"}}}}
|
Loading…
Reference in New Issue