updated to reflect naming conventions

This commit is contained in:
Adrian Cole 2012-01-30 04:58:21 +08:00
parent 4e76ad0b46
commit ac2c2e75e8
45 changed files with 507 additions and 658 deletions

View File

@ -23,7 +23,7 @@ import java.util.Map;
import javax.inject.Singleton;
import org.jclouds.glesys.domain.ServerState;
import org.jclouds.glesys.domain.Server;
import org.jclouds.glesys.functions.internal.GleSYSTypeAdapters;
import org.jclouds.glesys.functions.internal.GlesysDateAdapter;
import org.jclouds.json.config.GsonModule.DateAdapter;
@ -40,7 +40,7 @@ public class GleSYSParserModule extends AbstractModule {
@Provides
@Singleton
public Map<Type, Object> provideCustomAdapterBindings() {
return ImmutableMap.<Type, Object> of(ServerState.class, new GleSYSTypeAdapters.ServerStateAdapter());
return ImmutableMap.<Type, Object> of(Server.State.class, new GleSYSTypeAdapters.ServerStateAdapter());
}
@Override

View File

@ -33,7 +33,7 @@ import com.google.gson.annotations.SerializedName;
* @author Adam Lowe
* @see <a href="https://customer.glesys.com/api.php?a=doc#server_allowedarguments" />
*/
public class ServerAllowedArguments {
public class AllowedArgumentsForCreateServer {
public static Builder builder() {
return new Builder();
}
@ -101,11 +101,11 @@ public class ServerAllowedArguments {
return this;
}
public ServerAllowedArguments build() {
return new ServerAllowedArguments(diskSizes, memorySizes, cpuCores, templates, transfers, dataCenters);
public AllowedArgumentsForCreateServer build() {
return new AllowedArgumentsForCreateServer(diskSizes, memorySizes, cpuCores, templates, transfers, dataCenters);
}
public Builder fromAllowedArguments(ServerAllowedArguments in) {
public Builder fromAllowedArguments(AllowedArgumentsForCreateServer in) {
return diskSizes(in.getDiskSizes())
.memorySizes(in.getMemorySizes())
.cpuCores(in.getCpuCores())
@ -128,7 +128,7 @@ public class ServerAllowedArguments {
@SerializedName("datacenter")
private final List<String> dataCenters;
public ServerAllowedArguments(List<Integer> diskSizes, List<Integer> memorySizes, List<Integer> cpuCores,
public AllowedArgumentsForCreateServer(List<Integer> diskSizes, List<Integer> memorySizes, List<Integer> cpuCores,
List<String> templates, List<Integer> transfers, List<String> dataCenters) {
checkNotNull(diskSizes, "diskSizes");
checkNotNull(memorySizes, "memorySizes");
@ -147,7 +147,7 @@ public class ServerAllowedArguments {
/**
* @return a list of disk sizes, in GB, that can be used for creating servers on this platform
* @see org.jclouds.glesys.domain.ServerTemplate#getMinDiskSize()
* @see org.jclouds.glesys.domain.Template#getMinDiskSize()
*/
public List<Integer> getDiskSizes() {
return diskSizes;
@ -155,7 +155,7 @@ public class ServerAllowedArguments {
/**
* @return a list of memory sizes, in MB, that can be used for creating servers on this platform
* @see org.jclouds.glesys.domain.ServerTemplate#getMinMemSize()
* @see org.jclouds.glesys.domain.Template#getMinMemSize()
*/
public List<Integer> getMemorySizes() {
return memorySizes;
@ -170,7 +170,7 @@ public class ServerAllowedArguments {
/**
* @return a list of template names available for creating servers on this platform
* @see org.jclouds.glesys.domain.ServerTemplate#getName()
* @see org.jclouds.glesys.domain.Template#getName()
*/
public List<String> getTemplates() {
return templates;
@ -195,8 +195,8 @@ public class ServerAllowedArguments {
if (this == object) {
return true;
}
if (object instanceof ServerAllowedArguments) {
final ServerAllowedArguments other = (ServerAllowedArguments) object;
if (object instanceof AllowedArgumentsForCreateServer) {
final AllowedArgumentsForCreateServer other = (AllowedArgumentsForCreateServer) object;
return Objects.equal(diskSizes, other.diskSizes)
&& Objects.equal(memorySizes, other.memorySizes)
&& Objects.equal(cpuCores, other.cpuCores)

View File

@ -26,7 +26,7 @@ import com.google.common.base.Objects;
* @author Adam Lowe
* @see <a href="https://customer.glesys.com/api.php?a=doc#server_console" />
*/
public class ServerConsole {
public class Console {
public static Builder builder() {
return new Builder();
}
@ -57,11 +57,11 @@ public class ServerConsole {
return this;
}
public ServerConsole build() {
return new ServerConsole(host, port, protocol, password);
public Console build() {
return new Console(host, port, protocol, password);
}
public Builder fromServerConsole(ServerConsole in) {
public Builder fromConsole(Console in) {
return host(in.getHost()).port(in.getPort()).password(in.getPassword()).protocol(in.getProtocol());
}
@ -72,7 +72,7 @@ public class ServerConsole {
private final String protocol;
private final String password;
public ServerConsole(String host, int port, String protocol, String password) {
public Console(String host, int port, String protocol, String password) {
this.host = host;
this.port = port;
this.protocol = protocol;
@ -112,8 +112,8 @@ public class ServerConsole {
if (this == object) {
return true;
}
if (object instanceof ServerConsole) {
final ServerConsole other = (ServerConsole) object;
if (object instanceof Console) {
final Console other = (Console) object;
return Objects.equal(host, other.host)
&& Objects.equal(port, other.port)
&& Objects.equal(protocol, other.protocol);

View File

@ -29,7 +29,7 @@ import java.util.Date;
* @author Adam Lowe
* @see <a href="https://customer.glesys.com/api.php?a=doc#email_list" />
*/
public class Email implements Comparable<Email> {
public class EmailAccount implements Comparable<EmailAccount> {
public static Builder builder() {
return new Builder();
}
@ -96,12 +96,12 @@ public class Email implements Comparable<Email> {
return this;
}
public Email build() {
return new Email(account, quota, usedQuota, antispamLevel, antiVirus, autoRespond, autoRespondMessage,
public EmailAccount build() {
return new EmailAccount(account, quota, usedQuota, antispamLevel, antiVirus, autoRespond, autoRespondMessage,
autoRespondSaveEmail, created, modified);
}
public Builder fromEmail(Email in) {
public Builder fromEmail(EmailAccount in) {
return account(in.getAccount()).quota(in.getQuota()).usedQuota(in.getUsedQuota()).antispamLevel(in.getAntispamLevel()).
antiVirus(in.getAntiVirus()).autoRespond(in.getAutoRespond()).autoRespondMessage(in.getAutoRespondMessage()).
autoRespondSaveEmail(in.getAutoRespondSaveEmail()).created(in.getCreated()).modified(in.getModified());
@ -126,7 +126,7 @@ public class Email implements Comparable<Email> {
private final Date created;
private final Date modified;
public Email(String account, String quota, String usedQuota, int antispamLevel, boolean antiVirus, boolean autoRespond, String autoRespondMessage, boolean autoRespondSaveEmail, Date created, Date modified) {
public EmailAccount(String account, String quota, String usedQuota, int antispamLevel, boolean antiVirus, boolean autoRespond, String autoRespondMessage, boolean autoRespondSaveEmail, Date created, Date modified) {
this.account = account;
this.quota = quota;
this.usedQuota = usedQuota;
@ -189,7 +189,7 @@ public class Email implements Comparable<Email> {
}
@Override
public int compareTo(Email other) {
public int compareTo(EmailAccount other) {
return account.compareTo(other.getAccount());
}
@ -198,8 +198,8 @@ public class Email implements Comparable<Email> {
if (this == object) {
return true;
}
if (object instanceof Email) {
Email other = (Email) object;
if (object instanceof EmailAccount) {
EmailAccount other = (EmailAccount) object;
return Objects.equal(account, other.account);
} else {
return false;

View File

@ -18,6 +18,7 @@
*/
package org.jclouds.glesys.domain;
import com.google.common.annotations.Beta;
import com.google.common.base.Joiner;
import com.google.common.base.Objects;
import com.google.common.collect.ImmutableSet;
@ -30,6 +31,8 @@ import java.util.Set;
* @author Adam Lowe
* @see <a href="https://customer.glesys.com/api.php?a=doc#email_overview" />
*/
//TODO: find a better name for this class
@Beta
public class EmailOverview {
public static Builder builder() {
return new Builder();

View File

@ -18,6 +18,7 @@
*/
package org.jclouds.glesys.domain;
import com.google.common.annotations.Beta;
import com.google.common.base.Objects;
/**
@ -26,6 +27,8 @@ import com.google.common.base.Objects;
* @author Adam Lowe
* @see <a href="https://customer.glesys.com/api.php?a=doc#email_overview" />
*/
//TODO: find a better name for this class
@Beta
public class EmailOverviewDomain {
public static Builder builder() {
return new Builder();

View File

@ -18,6 +18,7 @@
*/
package org.jclouds.glesys.domain;
import com.google.common.annotations.Beta;
import com.google.common.base.Objects;
import com.google.gson.annotations.SerializedName;
@ -27,6 +28,8 @@ import com.google.gson.annotations.SerializedName;
* @author Adam Lowe
* @see <a href="https://customer.glesys.com/api.php?a=doc#email_overview" />
*/
//TODO: find a better name for this class
@Beta
public class EmailOverviewSummary {
public static Builder builder() {
return new Builder();

View File

@ -18,6 +18,7 @@
*/
package org.jclouds.glesys.domain;
import com.google.common.base.CaseFormat;
import com.google.common.base.Objects;
import com.google.gson.annotations.SerializedName;
@ -30,6 +31,29 @@ import static com.google.common.base.Preconditions.checkNotNull;
* @see <a href= "https://customer.glesys.com/api.php?a=doc#server_list" />
*/
public class Server implements Comparable<Server> {
public static enum State {
RUNNING, STOPPED, UNRECOGNIZED;
public String value() {
return (CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, name()));
}
@Override
public String toString() {
return value();
}
public static State fromValue(String state) {
try {
return valueOf(CaseFormat.UPPER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE, checkNotNull(state, "state")));
} catch (IllegalArgumentException e) {
return UNRECOGNIZED;
}
}
}
public static Builder builder() {
return new Builder();
}

View File

@ -1,51 +0,0 @@
/**
* Licensed to jclouds, Inc. (jclouds) under one or more
* contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. jclouds licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.jclouds.glesys.domain;
import com.google.common.base.CaseFormat;
import static com.google.common.base.Preconditions.checkNotNull;
/**
* Valid states for a server hosted in a Glesys cloud
*
* @author Adam Lowe
* @see ServerStatus
*/
public enum ServerState {
RUNNING, STOPPED, UNRECOGNIZED;
public String value() {
return (CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, name()));
}
@Override
public String toString() {
return value();
}
public static ServerState fromValue(String state) {
try {
return valueOf(CaseFormat.UPPER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE, checkNotNull(state, "state")));
} catch (IllegalArgumentException e) {
return UNRECOGNIZED;
}
}
}

View File

@ -34,13 +34,13 @@ public class ServerStatus {
}
public static class Builder {
private ServerState state;
private Server.State state;
private ResourceUsage cpu;
private ResourceUsage memory;
private ResourceUsage disk;
private ServerUptime uptime;
public Builder state(ServerState state) {
public Builder state(Server.State state) {
this.state = state;
return this;
}
@ -74,13 +74,13 @@ public class ServerStatus {
}
}
private final ServerState state;
private final Server.State state;
private final ResourceUsage cpu;
private final ResourceUsage memory;
private final ResourceUsage disk;
private final ServerUptime uptime;
public ServerStatus(ServerState state, ResourceUsage cpu, ResourceUsage memory, ResourceUsage disk, ServerUptime uptime) {
public ServerStatus(Server.State state, ResourceUsage cpu, ResourceUsage memory, ResourceUsage disk, ServerUptime uptime) {
this.state = state;
this.cpu = cpu;
this.memory = memory;
@ -91,7 +91,7 @@ public class ServerStatus {
/**
* @return the state of the server (e.g. "running")
*/
public ServerState getState() {
public Server.State getState() {
return state;
}

View File

@ -28,7 +28,7 @@ import com.google.gson.annotations.SerializedName;
* @author Adam Lowe
* @see <a href= "https://customer.glesys.com/api.php?a=doc#server_templates" />
*/
public class ServerTemplate implements Comparable<ServerTemplate>{
public class Template implements Comparable<Template>{
public static Builder builder() {
return new Builder();
@ -66,11 +66,11 @@ public class ServerTemplate implements Comparable<ServerTemplate>{
return this;
}
public ServerTemplate build() {
return new ServerTemplate(name, minDiskSize, minMemSize, os, platform);
public Template build() {
return new Template(name, minDiskSize, minMemSize, os, platform);
}
public Builder fromTemplate(ServerTemplate in) {
public Builder fromTemplate(Template in) {
return name(in.getName()).minDiskSize(in.getMinDiskSize()).minMemSize(in.getMinMemSize()).os(in.getOs()).platform(in.getPlatform());
}
@ -85,7 +85,7 @@ public class ServerTemplate implements Comparable<ServerTemplate>{
private final String os;
private final String platform;
public ServerTemplate(String name, int minDiskSize, int minMemSize, String os, String platform) {
public Template(String name, int minDiskSize, int minMemSize, String os, String platform) {
this.name = name;
this.minDiskSize = minDiskSize;
this.minMemSize = minMemSize;
@ -99,7 +99,7 @@ public class ServerTemplate implements Comparable<ServerTemplate>{
/**
* @return the minimum allowed disk size in GB
* @see org.jclouds.glesys.domain.ServerAllowedArguments#getDiskSizes()
* @see org.jclouds.glesys.domain.AllowedArgumentsForCreateServer#getDiskSizes()
*/
public int getMinDiskSize() {
return minDiskSize;
@ -107,7 +107,7 @@ public class ServerTemplate implements Comparable<ServerTemplate>{
/**
* @return the minimum allowed memory size in MB
* @see org.jclouds.glesys.domain.ServerAllowedArguments#getMemorySizes()
* @see org.jclouds.glesys.domain.AllowedArgumentsForCreateServer#getMemorySizes()
*/
public int getMinMemSize() {
return minMemSize;
@ -132,8 +132,8 @@ public class ServerTemplate implements Comparable<ServerTemplate>{
if (this == object) {
return true;
}
if (object instanceof ServerTemplate) {
final ServerTemplate other = (ServerTemplate) object;
if (object instanceof Template) {
final Template other = (Template) object;
return Objects.equal(name, other.name)
&& Objects.equal(platform, other.platform);
} else {
@ -153,7 +153,7 @@ public class ServerTemplate implements Comparable<ServerTemplate>{
}
@Override
public int compareTo(ServerTemplate arg0) {
public int compareTo(Template arg0) {
return Ordering.usingToString().compare(this, arg0);
}
}

View File

@ -21,10 +21,10 @@ package org.jclouds.glesys.features;
import com.google.common.util.concurrent.ListenableFuture;
import org.jclouds.glesys.domain.Domain;
import org.jclouds.glesys.domain.DomainRecord;
import org.jclouds.glesys.options.DomainAddOptions;
import org.jclouds.glesys.options.AddDomainOptions;
import org.jclouds.glesys.options.DomainOptions;
import org.jclouds.glesys.options.DomainRecordAddOptions;
import org.jclouds.glesys.options.DomainRecordEditOptions;
import org.jclouds.glesys.options.AddRecordOptions;
import org.jclouds.glesys.options.EditRecordOptions;
import org.jclouds.http.filters.BasicAuthentication;
import org.jclouds.rest.annotations.ExceptionParser;
import org.jclouds.rest.annotations.RequestFilters;
@ -64,7 +64,7 @@ public interface DomainAsyncClient {
*/
@POST
@Path("/domain/add/format/json")
ListenableFuture<Void> addDomain(@FormParam("name") String name, DomainAddOptions... options);
ListenableFuture<Void> addDomain(@FormParam("name") String name, AddDomainOptions... options);
/**
* @see DomainClient#editDomain
@ -97,14 +97,14 @@ public interface DomainAsyncClient {
@Path("/domain/add_record/format/json")
ListenableFuture<Void> addRecord(@FormParam("domain") String domain, @FormParam("host") String host,
@FormParam("type") String type, @FormParam("data") String data,
DomainRecordAddOptions... options);
AddRecordOptions... options);
/**
* @see DomainClient#editRecord
*/
@POST
@Path("/domain/update_record/format/json")
ListenableFuture<Void> editRecord(@FormParam("record_id") String record_id, DomainRecordEditOptions... options);
ListenableFuture<Void> editRecord(@FormParam("record_id") String record_id, EditRecordOptions... options);
/**
* @see DomainClient#deleteRecord

View File

@ -21,10 +21,10 @@ package org.jclouds.glesys.features;
import org.jclouds.concurrent.Timeout;
import org.jclouds.glesys.domain.Domain;
import org.jclouds.glesys.domain.DomainRecord;
import org.jclouds.glesys.options.DomainAddOptions;
import org.jclouds.glesys.options.AddDomainOptions;
import org.jclouds.glesys.options.DomainOptions;
import org.jclouds.glesys.options.DomainRecordAddOptions;
import org.jclouds.glesys.options.DomainRecordEditOptions;
import org.jclouds.glesys.options.AddRecordOptions;
import org.jclouds.glesys.options.EditRecordOptions;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@ -53,7 +53,7 @@ public interface DomainClient {
* @param domain the name of the domain to add.
* @param options optional parameters
*/
void addDomain(String domain, DomainAddOptions... options);
void addDomain(String domain, AddDomainOptions... options);
/**
* Add a domain to the Glesys dns-system
@ -86,7 +86,7 @@ public interface DomainClient {
* @param data
* @param options optional settings for the record
*/
void addRecord(String domain, String host, String type, String data, DomainRecordAddOptions... options);
void addRecord(String domain, String host, String type, String data, AddRecordOptions... options);
/**
* Modify a specific DNS Record
@ -95,7 +95,7 @@ public interface DomainClient {
* @param options the settings to change
* @see #listRecords to retrieve the necessary ids
*/
void editRecord(String recordId, DomainRecordEditOptions... options);
void editRecord(String recordId, EditRecordOptions... options);
/**
* Delete a DNS record

View File

@ -26,10 +26,10 @@ import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import org.jclouds.glesys.domain.Email;
import org.jclouds.glesys.domain.EmailAccount;
import org.jclouds.glesys.domain.EmailOverview;
import org.jclouds.glesys.options.EmailCreateOptions;
import org.jclouds.glesys.options.EmailEditOptions;
import org.jclouds.glesys.options.CreateAccountOptions;
import org.jclouds.glesys.options.EditAccountOptions;
import org.jclouds.http.filters.BasicAuthentication;
import org.jclouds.rest.annotations.ExceptionParser;
import org.jclouds.rest.annotations.RequestFilters;
@ -68,14 +68,14 @@ public interface EmailAsyncClient {
@SelectJson("emailaccounts")
@Consumes(MediaType.APPLICATION_JSON)
@ExceptionParser(ReturnEmptySetOnNotFoundOr404.class)
ListenableFuture<Set<Email>> listAccounts(@FormParam("domain") String domain);
ListenableFuture<Set<EmailAccount>> listAccounts(@FormParam("domain") String domain);
/**
* @see org.jclouds.glesys.features.EmailClient#createAccount
*/
@POST
@Path("/email/createaccount/format/json")
ListenableFuture<Void> createAccount(@FormParam("emailaccount") String accountAddress, @FormParam("password") String password, EmailCreateOptions... options);
ListenableFuture<Void> createAccount(@FormParam("emailaccount") String accountAddress, @FormParam("password") String password, CreateAccountOptions... options);
/**
* @see org.jclouds.glesys.features.EmailClient#createAlias
@ -89,7 +89,7 @@ public interface EmailAsyncClient {
*/
@POST
@Path("/email/editaccount/format/json")
ListenableFuture<Void> editAccount(@FormParam("emailaccount") String accountAddress, EmailEditOptions... options);
ListenableFuture<Void> editAccount(@FormParam("emailaccount") String accountAddress, EditAccountOptions... options);
/**
* @see org.jclouds.glesys.features.EmailClient#editAlias

View File

@ -22,10 +22,10 @@ import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.jclouds.concurrent.Timeout;
import org.jclouds.glesys.domain.Email;
import org.jclouds.glesys.domain.EmailAccount;
import org.jclouds.glesys.domain.EmailOverview;
import org.jclouds.glesys.options.EmailCreateOptions;
import org.jclouds.glesys.options.EmailEditOptions;
import org.jclouds.glesys.options.CreateAccountOptions;
import org.jclouds.glesys.options.EditAccountOptions;
/**
* Provides synchronous access to E-Mail requests.
@ -50,7 +50,7 @@ public interface EmailClient {
*
* @return the relevant set of details
*/
Set<Email> listAccounts(String domain);
Set<EmailAccount> listAccounts(String domain);
/**
* Create a new e-mail account
@ -60,7 +60,7 @@ public interface EmailClient {
* @param options optional parameters
* @see DomainClient#addDomain
*/
void createAccount(String accountAddress, String password, EmailCreateOptions... options);
void createAccount(String accountAddress, String password, CreateAccountOptions... options);
/**
* Create an e-mail alias for an e-mail account
@ -77,7 +77,7 @@ public interface EmailClient {
* @param accountAddress the existing e-mail account address
* @param options optional parameters
*/
void editAccount(String accountAddress, EmailEditOptions... options);
void editAccount(String accountAddress, EditAccountOptions... options);
/**
* Adjust (re-target) an e-mail alias

View File

@ -29,22 +29,22 @@ import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import org.jclouds.glesys.domain.Console;
import org.jclouds.glesys.domain.Server;
import org.jclouds.glesys.domain.ServerAllowedArguments;
import org.jclouds.glesys.domain.ServerConsole;
import org.jclouds.glesys.domain.AllowedArgumentsForCreateServer;
import org.jclouds.glesys.domain.ServerDetails;
import org.jclouds.glesys.domain.ServerLimit;
import org.jclouds.glesys.domain.ServerStatus;
import org.jclouds.glesys.domain.ServerTemplate;
import org.jclouds.glesys.functions.ParseServerTemplatesFromHttpResponse;
import org.jclouds.glesys.options.ServerCloneOptions;
import org.jclouds.glesys.options.ServerCreateOptions;
import org.jclouds.glesys.options.ServerDestroyOptions;
import org.jclouds.glesys.options.ServerEditOptions;
import org.jclouds.glesys.domain.Template;
import org.jclouds.glesys.functions.ParseTemplatesFromHttpResponse;
import org.jclouds.glesys.options.CloneServerOptions;
import org.jclouds.glesys.options.CreateServerOptions;
import org.jclouds.glesys.options.DestroyServerOptions;
import org.jclouds.glesys.options.EditServerOptions;
import org.jclouds.glesys.options.ServerStatusOptions;
import org.jclouds.glesys.options.ServerStopOptions;
import org.jclouds.http.filters.BasicAuthentication;
import org.jclouds.rest.annotations.ExceptionParser;
import org.jclouds.rest.annotations.FormParams;
import org.jclouds.rest.annotations.RequestFilters;
import org.jclouds.rest.annotations.ResponseParser;
import org.jclouds.rest.annotations.SelectJson;
@ -107,33 +107,33 @@ public interface ServerAsyncClient {
/**
* @see ServerClient#getServerConsole
* @see ServerClient#getConsole
*/
@POST
@Path("/server/console/format/json")
@SelectJson("console")
@Consumes(MediaType.APPLICATION_JSON)
@ExceptionParser(ReturnNullOnNotFoundOr404.class)
ListenableFuture<ServerConsole> getServerConsole(@FormParam("serverid") String id);
ListenableFuture<Console> getConsole(@FormParam("serverid") String id);
/**
* @see ServerClient#getServerAllowedArguments
* @see ServerClient#getAllowedArgumentsForCreateServerByPlatform
*/
@GET
@Path("/server/allowedarguments/format/json")
@SelectJson("argumentslist")
@Consumes(MediaType.APPLICATION_JSON)
ListenableFuture<Map<String, ServerAllowedArguments>> getServerAllowedArguments();
ListenableFuture<Map<String, AllowedArgumentsForCreateServer>> getAllowedArgumentsForCreateServerByPlatform();
/**
* @see ServerClient#getTemplates
*/
@GET
@Path("/server/templates/format/json")
@ResponseParser(ParseServerTemplatesFromHttpResponse.class)
@ResponseParser(ParseTemplatesFromHttpResponse.class)
@Consumes(MediaType.APPLICATION_JSON)
ListenableFuture<Set<ServerTemplate>> getTemplates();
ListenableFuture<Set<Template>> getTemplates();
/**
* @see ServerClient#stopServer
@ -168,7 +168,17 @@ public interface ServerAsyncClient {
@SelectJson("server")
@Path("/server/stop/format/json")
@Consumes(MediaType.APPLICATION_JSON)
ListenableFuture<ServerDetails> stopServer(@FormParam("serverid") String id, ServerStopOptions... options);
ListenableFuture<ServerDetails> stopServer(@FormParam("serverid") String id);
/**
* @see ServerClient#hardStopServer
*/
@POST
@SelectJson("server")
@Path("/server/stop/format/json")
@FormParams(keys = "type", values = "hard")
@Consumes(MediaType.APPLICATION_JSON)
ListenableFuture<ServerDetails> hardStopServer(@FormParam("serverid") String id);
/**
* @see ServerClient#createServer
@ -186,7 +196,7 @@ public interface ServerAsyncClient {
@FormParam("cpucores") int cpuCores,
@FormParam("rootpassword") String rootPassword,
@FormParam("transfer") int transfer,
ServerCreateOptions... options);
CreateServerOptions... options);
/**
* @see ServerClient#cloneServer
@ -197,7 +207,7 @@ public interface ServerAsyncClient {
@Consumes(MediaType.APPLICATION_JSON)
ListenableFuture<ServerDetails> cloneServer(@FormParam("serverid") String serverid,
@FormParam("hostname") String hostname,
ServerCloneOptions... options);
CloneServerOptions... options);
/**
* @see ServerClient#editServer
@ -206,14 +216,14 @@ public interface ServerAsyncClient {
@Path("/server/edit/format/json")
@SelectJson("server")
@Consumes(MediaType.APPLICATION_JSON)
ListenableFuture<ServerDetails> editServer(@FormParam("serverid") String serverid, ServerEditOptions... options);
ListenableFuture<ServerDetails> editServer(@FormParam("serverid") String serverid, EditServerOptions... options);
/**
* @see ServerClient#destroyServer
*/
@POST
@Path("/server/destroy/format/json")
ListenableFuture<Void> destroyServer(@FormParam("serverid") String id, ServerDestroyOptions keepIp);
ListenableFuture<Void> destroyServer(@FormParam("serverid") String id, DestroyServerOptions keepIp);
/**
* @see ServerClient#resetPassword

View File

@ -23,19 +23,20 @@ import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.jclouds.concurrent.Timeout;
import org.jclouds.glesys.domain.AllowedArgumentsForCreateServer;
import org.jclouds.glesys.domain.Console;
import org.jclouds.glesys.domain.Server;
import org.jclouds.glesys.domain.ServerAllowedArguments;
import org.jclouds.glesys.domain.ServerConsole;
import org.jclouds.glesys.domain.ServerDetails;
import org.jclouds.glesys.domain.ServerLimit;
import org.jclouds.glesys.domain.ServerStatus;
import org.jclouds.glesys.domain.ServerTemplate;
import org.jclouds.glesys.options.ServerCloneOptions;
import org.jclouds.glesys.options.ServerCreateOptions;
import org.jclouds.glesys.options.ServerDestroyOptions;
import org.jclouds.glesys.options.ServerEditOptions;
import org.jclouds.glesys.domain.Template;
import org.jclouds.glesys.options.CloneServerOptions;
import org.jclouds.glesys.options.CreateServerOptions;
import org.jclouds.glesys.options.DestroyServerOptions;
import org.jclouds.glesys.options.EditServerOptions;
import org.jclouds.glesys.options.ServerStatusOptions;
import org.jclouds.glesys.options.ServerStopOptions;
import com.google.common.annotations.Beta;
/**
* Provides synchronous access to Server.
@ -92,21 +93,21 @@ public interface ServerClient {
* @param id id of the server
* @return the requested information about the server or null if not found
*/
ServerConsole getServerConsole(String id);
Console getConsole(String id);
/**
* Get information about the OS templates available
*
* @return the set of information about each template
*/
Set<ServerTemplate> getTemplates();
Set<Template> getTemplates();
/**
* Get information about valid arguments to #createServer for each platform
*
* @return a map of argument lists, keyed on platform
*/
Map<String, ServerAllowedArguments> getServerAllowedArguments();
Map<String, AllowedArgumentsForCreateServer> getAllowedArgumentsForCreateServerByPlatform();
/**
* Reset the fail count for a server limit (for OpenVZ only).
@ -134,9 +135,15 @@ public interface ServerClient {
* Stop a server
*
* @param id id of the server
* @param options optional parameters
*/
void stopServer(String id, ServerStopOptions... options);
void stopServer(String id);
/**
* hard stop a server
*
* @param id id of the server
*/
void hardStopServer(String id);
/**
* Create a new server
@ -152,9 +159,11 @@ public interface ServerClient {
* @param transfer the transfer size
* @param options optional settings ex. description
*/
//TODO: make a ServerSpecification object like LaunchSpecification in ec2 as there are too many args
@Beta
ServerDetails createServer(String datacenter,String platform,String hostname,
String templateName, int diskSize, int memorySize, int cpuCores,
String rootPassword, int transfer, ServerCreateOptions... options);
String rootPassword, int transfer, CreateServerOptions... options);
/**
* Edit the configuration of a server
@ -162,7 +171,7 @@ public interface ServerClient {
* @param serverid the serverId of the server to edit
* @param options the settings to change
*/
ServerDetails editServer(String serverid, ServerEditOptions... options);
ServerDetails editServer(String serverid, EditServerOptions... options);
/**
* Clone a server
@ -171,15 +180,15 @@ public interface ServerClient {
* @param hostname the new host name of the cloned server
* @param options the settings to change
*/
ServerDetails cloneServer(String serverid, String hostname, ServerCloneOptions... options);
ServerDetails cloneServer(String serverid, String hostname, CloneServerOptions... options);
/**
* Destroy a server
*
* @param id the id of the server
* @param keepIp if ServerDestroyOptions.keepIp(true) the servers ip will be retained for use in your GleSYS account
* @param keepIp if DestroyServerOptions.keepIp(true) the servers ip will be retained for use in your GleSYS account
*/
ServerDetails destroyServer(String id, ServerDestroyOptions keepIp);
ServerDetails destroyServer(String id, DestroyServerOptions keepIp);
/**
* Reset the root password of a server
@ -196,7 +205,8 @@ public interface ServerClient {
* @param id the id of the server
* @param resource the name of the resource to retrieve usage information for
*/
@Beta
// TODO: better name
void resourceUsage(String id, String resource, String resolution);
}

View File

@ -1,95 +0,0 @@
/**
* Licensed to jclouds, Inc. (jclouds) under one or more
* contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. jclouds licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.jclouds.glesys.functions;
import static com.google.common.base.Preconditions.checkNotNull;
import java.io.IOException;
import java.util.Map;
import javax.inject.Inject;
import javax.inject.Singleton;
import org.jclouds.domain.JsonBall;
import org.jclouds.http.HttpResponse;
import org.jclouds.http.functions.ParseFirstJsonValueNamed;
import org.jclouds.io.payloads.StringPayload;
import org.jclouds.json.internal.GsonWrapper;
import org.jclouds.util.Strings2;
import com.google.common.base.Function;
import com.google.common.collect.ImmutableMap;
import com.google.inject.TypeLiteral;
/**
* In GleSYS, the server responses are returned without the serverid. in this
* case, it is in a different json ball called arguments. We need to merge this
* jsonball before attempting to parse the server, otherwise the server will be
* without an id.
*
* @author Adrian Cole
*/
@Singleton
public class MergeArgumentsAndParse<T> implements Function<HttpResponse, T> {
private final GsonWrapper jsonParser;
private final ParseFirstJsonValueNamed<Map<String, JsonBall>> parseArguments;
private final ParseFirstJsonValueNamed<Map<String, JsonBall>> parseServer;
private final TypeLiteral<T> type;
@Inject
public MergeArgumentsAndParse(GsonWrapper json, TypeLiteral<T> type, String name) {
this.jsonParser = checkNotNull(json, "json");
this.parseArguments = new ParseFirstJsonValueNamed<Map<String, JsonBall>>(json,
new TypeLiteral<Map<String, JsonBall>>() {
}, "arguments");
this.parseServer = new ParseFirstJsonValueNamed<Map<String, JsonBall>>(json,
new TypeLiteral<Map<String, JsonBall>>() {
}, name);
this.type = checkNotNull(type, "type");
}
@SuppressWarnings("unchecked")
@Override
public T apply(HttpResponse arg0) {
try {
if (arg0.getPayload() == null)
return null;
arg0 = makePayloadReplayable(arg0);
Map<String, JsonBall> server = parseServer.apply(arg0);
if (server == null)
return null;
Map<String, JsonBall> arguments = parseArguments.apply(arg0);
if (arguments != null)
server = ImmutableMap.<String, JsonBall> builder().putAll(server).putAll(arguments).build();
return (T) jsonParser.fromJson(jsonParser.toJson(server), type.getRawType());
} catch (IOException e) {
return null;
}
}
// inputStreams are not replayable, yet we need to
public HttpResponse makePayloadReplayable(HttpResponse arg0) throws IOException {
String json = Strings2.toStringAndClose(arg0.getPayload().getInput());
arg0 = arg0.toBuilder().payload(new StringPayload(json)).build();
return arg0;
}
}

View File

@ -1,41 +0,0 @@
/**
* Licensed to jclouds, Inc. (jclouds) under one or more
* contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. jclouds licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.jclouds.glesys.functions;
import javax.inject.Inject;
import javax.inject.Singleton;
import org.jclouds.glesys.domain.ServerDetails;
import org.jclouds.json.internal.GsonWrapper;
import com.google.inject.TypeLiteral;
/**
* @author Adrian Cole
*/
@Singleton
public class MergeArgumentsAndReturnServerDetails extends MergeArgumentsAndParse<ServerDetails> {
@Inject
public MergeArgumentsAndReturnServerDetails(GsonWrapper json) {
super(json, new TypeLiteral<ServerDetails>() {
}, "server");
}
}

View File

@ -25,7 +25,7 @@ import java.util.Set;
import javax.inject.Singleton;
import org.jclouds.glesys.domain.ServerTemplate;
import org.jclouds.glesys.domain.Template;
import org.jclouds.http.HttpResponse;
import org.jclouds.http.functions.ParseFirstJsonValueNamed;
import org.jclouds.json.internal.GsonWrapper;
@ -40,19 +40,19 @@ import com.google.inject.TypeLiteral;
* @author Adrian Cole
*/
@Singleton
public class ParseServerTemplatesFromHttpResponse implements Function<HttpResponse, Set<ServerTemplate>> {
private final ParseFirstJsonValueNamed<Map<String, Set<ServerTemplate>>> parser;
public class ParseTemplatesFromHttpResponse implements Function<HttpResponse, Set<Template>> {
private final ParseFirstJsonValueNamed<Map<String, Set<Template>>> parser;
@Inject
public ParseServerTemplatesFromHttpResponse(GsonWrapper gsonWrapper) {
this.parser = new ParseFirstJsonValueNamed<Map<String, Set<ServerTemplate>>>(checkNotNull(gsonWrapper,
"gsonWrapper"), new TypeLiteral<Map<String, Set<ServerTemplate>>>() {
public ParseTemplatesFromHttpResponse(GsonWrapper gsonWrapper) {
this.parser = new ParseFirstJsonValueNamed<Map<String, Set<Template>>>(checkNotNull(gsonWrapper,
"gsonWrapper"), new TypeLiteral<Map<String, Set<Template>>>() {
}, "templates");
}
public Set<ServerTemplate> apply(HttpResponse response) {
public Set<Template> apply(HttpResponse response) {
checkNotNull(response, "response");
Map<String, Set<ServerTemplate>> toParse = parser.apply(response);
Map<String, Set<Template>> toParse = parser.apply(response);
checkNotNull(toParse, "parsed result from %s", response);
return ImmutableSet.copyOf(Iterables.concat(toParse.values()));
}

View File

@ -20,7 +20,7 @@ package org.jclouds.glesys.functions.internal;
import java.io.IOException;
import org.jclouds.glesys.domain.ServerState;
import org.jclouds.glesys.domain.Server;
import com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
@ -31,15 +31,15 @@ import com.google.gson.stream.JsonWriter;
*/
public class GleSYSTypeAdapters {
public static class ServerStateAdapter extends TypeAdapter<ServerState> {
public static class ServerStateAdapter extends TypeAdapter<Server.State> {
@Override
public void write(JsonWriter writer, ServerState value) throws IOException {
public void write(JsonWriter writer, Server.State value) throws IOException {
writer.value(value.value());
}
@Override
public ServerState read(JsonReader reader) throws IOException {
return ServerState.fromValue(reader.nextString());
public Server.State read(JsonReader reader) throws IOException {
return Server.State.fromValue(reader.nextString());
}
}

View File

@ -22,62 +22,62 @@ package org.jclouds.glesys.options;
/**
* @author Adam Lowe
*/
public class DomainAddOptions extends DomainOptions {
public class AddDomainOptions extends DomainOptions {
public static class Builder {
/**
* @see DomainAddOptions#primaryNameServer
* @see AddDomainOptions#primaryNameServer
*/
public static DomainAddOptions primaryNameServer(String primaryNameServer) {
return DomainAddOptions.class.cast(new DomainAddOptions().primaryNameServer(primaryNameServer));
public static AddDomainOptions primaryNameServer(String primaryNameServer) {
return AddDomainOptions.class.cast(new AddDomainOptions().primaryNameServer(primaryNameServer));
}
/**
* @see DomainAddOptions#responsiblePerson
* @see AddDomainOptions#responsiblePerson
*/
public static DomainAddOptions responsiblePerson(String responsiblePerson) {
return DomainAddOptions.class.cast(new DomainAddOptions().responsiblePerson(responsiblePerson));
public static AddDomainOptions responsiblePerson(String responsiblePerson) {
return AddDomainOptions.class.cast(new AddDomainOptions().responsiblePerson(responsiblePerson));
}
/**
* @see DomainAddOptions#ttl
* @see AddDomainOptions#ttl
*/
public static DomainAddOptions ttl(int ttl) {
return DomainAddOptions.class.cast(new DomainAddOptions().ttl(ttl));
public static AddDomainOptions ttl(int ttl) {
return AddDomainOptions.class.cast(new AddDomainOptions().ttl(ttl));
}
/**
* @see DomainAddOptions#refresh
* @see AddDomainOptions#refresh
*/
public static DomainAddOptions refresh(int refresh) {
return DomainAddOptions.class.cast(new DomainAddOptions().refresh(refresh));
public static AddDomainOptions refresh(int refresh) {
return AddDomainOptions.class.cast(new AddDomainOptions().refresh(refresh));
}
/**
* @see DomainAddOptions#retry
* @see AddDomainOptions#retry
*/
public static DomainAddOptions retry(int retry) {
return DomainAddOptions.class.cast(new DomainAddOptions().retry(retry));
public static AddDomainOptions retry(int retry) {
return AddDomainOptions.class.cast(new AddDomainOptions().retry(retry));
}
/**
* @see DomainAddOptions#expire
* @see AddDomainOptions#expire
*/
public static DomainAddOptions expire(int expire) {
return DomainAddOptions.class.cast(new DomainAddOptions().expire(expire));
public static AddDomainOptions expire(int expire) {
return AddDomainOptions.class.cast(new AddDomainOptions().expire(expire));
}
/**
* @see DomainAddOptions#minimum
* @see AddDomainOptions#minimum
*/
public static DomainAddOptions minimum(int minimum) {
return DomainAddOptions.class.cast(new DomainAddOptions().minimum(minimum));
public static AddDomainOptions minimum(int minimum) {
return AddDomainOptions.class.cast(new AddDomainOptions().minimum(minimum));
}
/**
* @see DomainAddOptions#minimalRecords
* @see AddDomainOptions#minimalRecords
*/
public static DomainAddOptions minimalRecords() {
return DomainAddOptions.class.cast(new DomainAddOptions().minimalRecords());
public static AddDomainOptions minimalRecords() {
return AddDomainOptions.class.cast(new AddDomainOptions().minimalRecords());
}
}

View File

@ -23,34 +23,34 @@ import org.jclouds.http.options.BaseHttpRequestOptions;
/**
* @author Adam Lowe
*/
public class DomainRecordAddOptions extends BaseHttpRequestOptions {
public class AddRecordOptions extends BaseHttpRequestOptions {
public static class Builder {
/**
* @see DomainRecordAddOptions#ttl
* @see AddRecordOptions#ttl
*/
public static DomainRecordAddOptions ttl(int ttl) {
DomainRecordAddOptions options = new DomainRecordAddOptions();
public static AddRecordOptions ttl(int ttl) {
AddRecordOptions options = new AddRecordOptions();
return options.ttl(ttl);
}
/**
* @see DomainRecordAddOptions#mxPriority
* @see AddRecordOptions#mxPriority
*/
public static DomainRecordAddOptions mxPriority(int mxPriority) {
DomainRecordAddOptions options = new DomainRecordAddOptions();
public static AddRecordOptions mxPriority(int mxPriority) {
AddRecordOptions options = new AddRecordOptions();
return options.mxPriority(mxPriority);
}
}
/** Configure TTL/Time-to-live for record */
public DomainRecordAddOptions ttl(int ttl) {
public AddRecordOptions ttl(int ttl) {
formParameters.put("ttl", Integer.toString(ttl));
return this;
}
/** Configure the priority of an MX record */
public DomainRecordAddOptions mxPriority(int mxPriority) {
public AddRecordOptions mxPriority(int mxPriority) {
formParameters.put("mx_priority", Integer.toString(mxPriority));
return this;
}

View File

@ -21,55 +21,55 @@ package org.jclouds.glesys.options;
/**
* @author Adam Lowe
*/
public class ServerCloneOptions extends ServerEditOptions {
public class CloneServerOptions extends EditServerOptions {
public static class Builder {
/**
* @see org.jclouds.glesys.options.ServerCloneOptions#disksize
* @see org.jclouds.glesys.options.CloneServerOptions#disksize
*/
public static ServerCloneOptions disksize(int disksize) {
return ServerCloneOptions.class.cast(new ServerCloneOptions().disksize(disksize));
public static CloneServerOptions disksize(int disksize) {
return CloneServerOptions.class.cast(new CloneServerOptions().disksize(disksize));
}
/**
* @see org.jclouds.glesys.options.ServerCloneOptions#memorysize
* @see org.jclouds.glesys.options.CloneServerOptions#memorysize
*/
public static ServerCloneOptions memorysize(int memorysize) {
return ServerCloneOptions.class.cast(new ServerCloneOptions().memorysize(memorysize));
public static CloneServerOptions memorysize(int memorysize) {
return CloneServerOptions.class.cast(new CloneServerOptions().memorysize(memorysize));
}
/**
* @see org.jclouds.glesys.options.ServerCloneOptions#cpucores
* @see org.jclouds.glesys.options.CloneServerOptions#cpucores
*/
public static ServerCloneOptions cpucores(int cpucores) {
return ServerCloneOptions.class.cast(new ServerCloneOptions().cpucores(cpucores));
public static CloneServerOptions cpucores(int cpucores) {
return CloneServerOptions.class.cast(new CloneServerOptions().cpucores(cpucores));
}
/**
* @see org.jclouds.glesys.options.ServerCloneOptions#cpucores
* @see org.jclouds.glesys.options.CloneServerOptions#cpucores
*/
public static ServerCloneOptions transfer(int transfer) {
return ServerCloneOptions.class.cast(new ServerCloneOptions().transfer(transfer));
public static CloneServerOptions transfer(int transfer) {
return CloneServerOptions.class.cast(new CloneServerOptions().transfer(transfer));
}
/**
* @see org.jclouds.glesys.options.ServerEditOptions#description
* @see org.jclouds.glesys.options.EditServerOptions#description
*/
public static ServerCloneOptions description(String description) {
return ServerCloneOptions.class.cast(new ServerCloneOptions().description(description));
public static CloneServerOptions description(String description) {
return CloneServerOptions.class.cast(new CloneServerOptions().description(description));
}
/**
* @see org.jclouds.glesys.options.ServerCloneOptions#dataCenter
* @see org.jclouds.glesys.options.CloneServerOptions#dataCenter
*/
public static ServerCloneOptions dataCenter(String dataCenter) {
return new ServerCloneOptions().dataCenter(dataCenter);
public static CloneServerOptions dataCenter(String dataCenter) {
return new CloneServerOptions().dataCenter(dataCenter);
}
}
/**
* Configure which datacenter to create the clone in
*/
public ServerCloneOptions dataCenter(String dataCenter) {
public CloneServerOptions dataCenter(String dataCenter) {
formParameters.put("datacenter", dataCenter);
return this;
}

View File

@ -24,70 +24,70 @@ import org.jclouds.http.options.BaseHttpRequestOptions;
* @author Adam Lowe
* @see <a href="https://customer.glesys.com/api.php?a=doc#email_createaccount" />
*/
public class EmailCreateOptions extends BaseHttpRequestOptions {
public class CreateAccountOptions extends BaseHttpRequestOptions {
public static class Builder {
/**
* @see EmailCreateOptions#antispamLevel
* @see CreateAccountOptions#antispamLevel
*/
public static EmailCreateOptions antispamLevel(int antispamLevel) {
return new EmailCreateOptions().antispamLevel(antispamLevel);
public static CreateAccountOptions antispamLevel(int antispamLevel) {
return new CreateAccountOptions().antispamLevel(antispamLevel);
}
/**
* @see EmailCreateOptions#antiVirus
* @see CreateAccountOptions#antiVirus
*/
public static EmailCreateOptions antiVirus(boolean antiVirus) {
return new EmailCreateOptions().antiVirus(antiVirus);
public static CreateAccountOptions antiVirus(boolean antiVirus) {
return new CreateAccountOptions().antiVirus(antiVirus);
}
/**
* @see EmailCreateOptions#autorespond
* @see CreateAccountOptions#autorespond
*/
public static EmailCreateOptions autorespond(boolean autorespond) {
return new EmailCreateOptions().autorespond(autorespond);
public static CreateAccountOptions autorespond(boolean autorespond) {
return new CreateAccountOptions().autorespond(autorespond);
}
/**
* @see EmailCreateOptions#autorespondSaveEmail
* @see CreateAccountOptions#autorespondSaveEmail
*/
public static EmailCreateOptions autorespondSaveEmail(boolean autorespondSaveEmail) {
return new EmailCreateOptions().autorespondSaveEmail(autorespondSaveEmail);
public static CreateAccountOptions autorespondSaveEmail(boolean autorespondSaveEmail) {
return new CreateAccountOptions().autorespondSaveEmail(autorespondSaveEmail);
}
/**
* @see EmailCreateOptions#autorespondMessage
* @see CreateAccountOptions#autorespondMessage
*/
public static EmailCreateOptions autorespondMessage(String autorespondMessage) {
return new EmailCreateOptions().autorespondMessage(autorespondMessage);
public static CreateAccountOptions autorespondMessage(String autorespondMessage) {
return new CreateAccountOptions().autorespondMessage(autorespondMessage);
}
}
/** Configure the antispam level of the account */
public EmailCreateOptions antispamLevel(int antispamLevel) {
public CreateAccountOptions antispamLevel(int antispamLevel) {
formParameters.put("antispamlevel", Integer.toString(antispamLevel));
return this;
}
/** Enable or disable virus checking */
public EmailCreateOptions antiVirus(boolean antiVirus) {
public CreateAccountOptions antiVirus(boolean antiVirus) {
formParameters.put("antivirus", Integer.toString(antiVirus ? 1 : 0));
return this;
}
/** Enable or disable auto-respond */
public EmailCreateOptions autorespond(boolean autorespond) {
public CreateAccountOptions autorespond(boolean autorespond) {
formParameters.put("autorespond", Integer.toString(autorespond ? 1 : 0));
return this;
}
/** Enable or disable saving of auto-respond e-mails */
public EmailCreateOptions autorespondSaveEmail(boolean autorespondSaveEmail) {
public CreateAccountOptions autorespondSaveEmail(boolean autorespondSaveEmail) {
formParameters.put("autorespondsaveemail", Integer.toString(autorespondSaveEmail ? 1 : 0));
return this;
}
/** Configure the auto-respond message */
public EmailCreateOptions autorespondMessage(String autorespondMessage) {
public CreateAccountOptions autorespondMessage(String autorespondMessage) {
formParameters.put("autorespondmessage", autorespondMessage);
return this;
}

View File

@ -23,21 +23,21 @@ import org.jclouds.http.options.BaseHttpRequestOptions;
/**
* @author Adam Lowe
*/
public class ServerCreateOptions extends BaseHttpRequestOptions {
public class CreateServerOptions extends BaseHttpRequestOptions {
public static class Builder {
/**
* @see ServerCreateOptions#description
* @see CreateServerOptions#description
*/
public static ServerCreateOptions description(String primaryNameServer) {
ServerCreateOptions options = new ServerCreateOptions();
public static CreateServerOptions description(String primaryNameServer) {
CreateServerOptions options = new CreateServerOptions();
return options.description(primaryNameServer);
}
/**
* @see ServerCreateOptions#ip
* @see CreateServerOptions#ip
*/
public static ServerCreateOptions ip(String ip) {
ServerCreateOptions options = new ServerCreateOptions();
public static CreateServerOptions ip(String ip) {
CreateServerOptions options = new CreateServerOptions();
return options.ip(ip);
}
}
@ -45,7 +45,7 @@ public class ServerCreateOptions extends BaseHttpRequestOptions {
/**
* @param description the description of the server
*/
public ServerCreateOptions description(String description) {
public CreateServerOptions description(String description) {
formParameters.put("description", description);
return this;
}
@ -53,7 +53,7 @@ public class ServerCreateOptions extends BaseHttpRequestOptions {
/**
* @param ip the ip address to assign to the server
*/
public ServerCreateOptions ip(String ip) {
public CreateServerOptions ip(String ip) {
formParameters.put("ip", ip);
return this;
}

View File

@ -23,20 +23,20 @@ import org.jclouds.http.options.BaseHttpRequestOptions;
/**
* @author Adam Lowe
*/
public class ServerDestroyOptions extends BaseHttpRequestOptions {
public class DestroyServerOptions extends BaseHttpRequestOptions {
public static class Builder {
/**
* Discard the server's ip on destroy
*/
public static ServerDestroyOptions keepIp() {
return new ServerDestroyOptions().keepIp(true);
public static DestroyServerOptions keepIp() {
return new DestroyServerOptions().keepIp(true);
}
/**
* Discard the server's ip on destroy
*/
public static ServerDestroyOptions discardIp() {
return new ServerDestroyOptions().keepIp(false);
public static DestroyServerOptions discardIp() {
return new DestroyServerOptions().keepIp(false);
}
}
@ -46,7 +46,7 @@ public class ServerDestroyOptions extends BaseHttpRequestOptions {
*
* @param keepIp if true, keep the ip address
*/
public ServerDestroyOptions keepIp(boolean keepIp) {
public DestroyServerOptions keepIp(boolean keepIp) {
formParameters.put("keepip", Integer.toString(keepIp ? 1 : 0));
return this;
}

View File

@ -0,0 +1,77 @@
/**
* Licensed to jclouds, Inc. (jclouds) under one or more
* contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. jclouds licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.jclouds.glesys.options;
/**
* @author Adam Lowe
* @see <a href="https://customer.glesys.com/api.php?a=doc#email_editaccount" />
*/
public class EditAccountOptions extends CreateAccountOptions {
public static class Builder {
/**
* @see org.jclouds.glesys.options.EditAccountOptions#antispamLevel
*/
public static EditAccountOptions antispamLevel(int antispamLevel) {
return EditAccountOptions.class.cast(new EditAccountOptions().antispamLevel(antispamLevel));
}
/**
* @see org.jclouds.glesys.options.EditAccountOptions#antiVirus
*/
public static EditAccountOptions antiVirus(boolean antiVirus) {
return EditAccountOptions.class.cast(new EditAccountOptions().antiVirus(antiVirus));
}
/**
* @see org.jclouds.glesys.options.EditAccountOptions#autorespond
*/
public static EditAccountOptions autorespond(boolean autorespond) {
return EditAccountOptions.class.cast(new EditAccountOptions().autorespond(autorespond));
}
/**
* @see org.jclouds.glesys.options.EditAccountOptions#autorespondSaveEmail
*/
public static EditAccountOptions autorespondSaveEmail(boolean autorespondSaveEmail) {
return EditAccountOptions.class.cast(new EditAccountOptions().autorespondSaveEmail(autorespondSaveEmail));
}
/**
* @see org.jclouds.glesys.options.EditAccountOptions#autorespondMessage
*/
public static EditAccountOptions autorespondMessage(String autorespondMessage) {
return EditAccountOptions.class.cast(new EditAccountOptions().autorespondMessage(autorespondMessage));
}
/**
* @see org.jclouds.glesys.options.EditAccountOptions#password
*/
public static EditAccountOptions password(String password) {
return new EditAccountOptions().password(password);
}
}
/** Reset the password for this account */
public EditAccountOptions password(String password) {
formParameters.put("password", password);
return this;
}
}

View File

@ -21,60 +21,60 @@ package org.jclouds.glesys.options;
/**
* @author Adam Lowe
*/
public class DomainRecordEditOptions extends DomainRecordAddOptions {
public class EditRecordOptions extends AddRecordOptions {
public static class Builder {
/**
* @see DomainRecordEditOptions#host
* @see EditRecordOptions#host
*/
public static DomainRecordEditOptions host(String host) {
return new DomainRecordEditOptions().host(host);
public static EditRecordOptions host(String host) {
return new EditRecordOptions().host(host);
}
/**
* @see DomainRecordEditOptions#type
* @see EditRecordOptions#type
*/
public static DomainRecordEditOptions type(String type) {
return new DomainRecordEditOptions().type(type);
public static EditRecordOptions type(String type) {
return new EditRecordOptions().type(type);
}
/**
* @see DomainRecordEditOptions#data
* @see EditRecordOptions#data
*/
public static DomainRecordEditOptions data(String data) {
return new DomainRecordEditOptions().data(data);
public static EditRecordOptions data(String data) {
return new EditRecordOptions().data(data);
}
/**
* @see DomainRecordEditOptions#ttl
* @see EditRecordOptions#ttl
*/
public static DomainRecordEditOptions ttl(int ttl) {
return DomainRecordEditOptions.class.cast(new DomainRecordEditOptions().ttl(ttl));
public static EditRecordOptions ttl(int ttl) {
return EditRecordOptions.class.cast(new EditRecordOptions().ttl(ttl));
}
/**
* @see DomainRecordEditOptions#mxPriority
* @see EditRecordOptions#mxPriority
*/
public static DomainRecordEditOptions mxPriority(int mxPriority) {
return DomainRecordEditOptions.class.cast(new DomainRecordEditOptions().mxPriority(mxPriority));
public static EditRecordOptions mxPriority(int mxPriority) {
return EditRecordOptions.class.cast(new EditRecordOptions().mxPriority(mxPriority));
}
}
/** Configure the hostname attached to this record */
public DomainRecordEditOptions host(String host) {
public EditRecordOptions host(String host) {
formParameters.put("host", host);
return this;
}
/** Configure the type of record, ex. "A", "CNAME" or "MX" */
public DomainRecordEditOptions type(String type) {
public EditRecordOptions type(String type) {
formParameters.put("type", type);
return this;
}
/** Set the content of this record (depending on type, for an "A" record this would be an ip address) */
public DomainRecordEditOptions data(String data) {
public EditRecordOptions data(String data) {
formParameters.put("data", data);
return this;
}

View File

@ -24,90 +24,90 @@ import org.jclouds.http.options.BaseHttpRequestOptions;
*
* @author Adam Lowe
*/
public class ServerEditOptions extends BaseHttpRequestOptions {
public class EditServerOptions extends BaseHttpRequestOptions {
public static class Builder {
/**
* @see org.jclouds.glesys.options.ServerEditOptions#disksize
* @see org.jclouds.glesys.options.EditServerOptions#disksize
*/
public static ServerEditOptions disksize(int disksize) {
ServerEditOptions options = new ServerEditOptions();
public static EditServerOptions disksize(int disksize) {
EditServerOptions options = new EditServerOptions();
return options.disksize(disksize);
}
/**
* @see org.jclouds.glesys.options.ServerEditOptions#memorysize
* @see org.jclouds.glesys.options.EditServerOptions#memorysize
*/
public static ServerEditOptions memorysize(int memorysize) {
ServerEditOptions options = new ServerEditOptions();
public static EditServerOptions memorysize(int memorysize) {
EditServerOptions options = new EditServerOptions();
return options.memorysize(memorysize);
}
/**
* @see org.jclouds.glesys.options.ServerEditOptions#cpucores
* @see org.jclouds.glesys.options.EditServerOptions#cpucores
*/
public static ServerEditOptions cpucores(int cpucores) {
ServerEditOptions options = new ServerEditOptions();
public static EditServerOptions cpucores(int cpucores) {
EditServerOptions options = new EditServerOptions();
return options.cpucores(cpucores);
}
/**
* @see org.jclouds.glesys.options.ServerEditOptions#cpucores
* @see org.jclouds.glesys.options.EditServerOptions#cpucores
*/
public static ServerEditOptions transfer(int transfer) {
ServerEditOptions options = new ServerEditOptions();
public static EditServerOptions transfer(int transfer) {
EditServerOptions options = new EditServerOptions();
return options.transfer(transfer);
}
/**
* @see org.jclouds.glesys.options.ServerEditOptions#hostname
* @see org.jclouds.glesys.options.EditServerOptions#hostname
*/
public static ServerEditOptions hostname(String hostname) {
ServerEditOptions options = new ServerEditOptions();
public static EditServerOptions hostname(String hostname) {
EditServerOptions options = new EditServerOptions();
return options.hostname(hostname);
}
/**
* @see org.jclouds.glesys.options.ServerEditOptions#description
* @see org.jclouds.glesys.options.EditServerOptions#description
*/
public static ServerEditOptions description(String description) {
ServerEditOptions options = new ServerEditOptions();
public static EditServerOptions description(String description) {
EditServerOptions options = new EditServerOptions();
return options.description(description);
}
}
/** Configure the size of the disk, in GB, of the server */
public ServerEditOptions disksize(int disksize) {
public EditServerOptions disksize(int disksize) {
formParameters.put("disksize", Integer.toString(disksize));
return this;
}
/** Configure the amount of RAM, in MB, allocated to the server */
public ServerEditOptions memorysize(int memorysize) {
public EditServerOptions memorysize(int memorysize) {
formParameters.put("memorysize", Integer.toString(memorysize));
return this;
}
/** Configure the number of CPU cores allocated to the server */
public ServerEditOptions cpucores(int cpucores) {
public EditServerOptions cpucores(int cpucores) {
formParameters.put("cpucores", Integer.toString(cpucores));
return this;
}
/** Configure the transfer setting for the server */
public ServerEditOptions transfer(int transfer) {
public EditServerOptions transfer(int transfer) {
formParameters.put("cpucores", Integer.toString(transfer));
return this;
}
/** Configure the host name of the server (must be unique within the GleSYS account) */
public ServerEditOptions hostname(String hostname) {
public EditServerOptions hostname(String hostname) {
formParameters.put("hostname", hostname);
return this;
}
/** Configure the description of the server */
public ServerEditOptions description(String description) {
public EditServerOptions description(String description) {
formParameters.put("description", description);
return this;
}

View File

@ -1,77 +0,0 @@
/**
* Licensed to jclouds, Inc. (jclouds) under one or more
* contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. jclouds licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.jclouds.glesys.options;
/**
* @author Adam Lowe
* @see <a href="https://customer.glesys.com/api.php?a=doc#email_editaccount" />
*/
public class EmailEditOptions extends EmailCreateOptions {
public static class Builder {
/**
* @see org.jclouds.glesys.options.EmailEditOptions#antispamLevel
*/
public static EmailEditOptions antispamLevel(int antispamLevel) {
return EmailEditOptions.class.cast(new EmailEditOptions().antispamLevel(antispamLevel));
}
/**
* @see org.jclouds.glesys.options.EmailEditOptions#antiVirus
*/
public static EmailEditOptions antiVirus(boolean antiVirus) {
return EmailEditOptions.class.cast(new EmailEditOptions().antiVirus(antiVirus));
}
/**
* @see org.jclouds.glesys.options.EmailEditOptions#autorespond
*/
public static EmailEditOptions autorespond(boolean autorespond) {
return EmailEditOptions.class.cast(new EmailEditOptions().autorespond(autorespond));
}
/**
* @see org.jclouds.glesys.options.EmailEditOptions#autorespondSaveEmail
*/
public static EmailEditOptions autorespondSaveEmail(boolean autorespondSaveEmail) {
return EmailEditOptions.class.cast(new EmailEditOptions().autorespondSaveEmail(autorespondSaveEmail));
}
/**
* @see org.jclouds.glesys.options.EmailEditOptions#autorespondMessage
*/
public static EmailEditOptions autorespondMessage(String autorespondMessage) {
return EmailEditOptions.class.cast(new EmailEditOptions().autorespondMessage(autorespondMessage));
}
/**
* @see org.jclouds.glesys.options.EmailEditOptions#password
*/
public static EmailEditOptions password(String password) {
return new EmailEditOptions().password(password);
}
}
/** Reset the password for this account */
public EmailEditOptions password(String password) {
formParameters.put("password", password);
return this;
}
}

View File

@ -26,7 +26,7 @@ import org.jclouds.http.options.BaseHttpRequestOptions;
public class ServerStatusOptions extends BaseHttpRequestOptions {
public enum StatusTypes {
state, cpu, memory, disk, bandwidth, uptime
STATE, CPU, MEMORY, DISK, BANDWIDTH, UPTIME;
}
public static class Builder {
@ -35,7 +35,7 @@ public class ServerStatusOptions extends BaseHttpRequestOptions {
*/
public static ServerStatusOptions state() {
ServerStatusOptions options = new ServerStatusOptions();
return options.statusType(StatusTypes.state);
return options.statusType(StatusTypes.STATE);
}
/**
@ -43,7 +43,7 @@ public class ServerStatusOptions extends BaseHttpRequestOptions {
*/
public static ServerStatusOptions cpu() {
ServerStatusOptions options = new ServerStatusOptions();
return options.statusType(StatusTypes.cpu);
return options.statusType(StatusTypes.CPU);
}
/**
@ -51,7 +51,7 @@ public class ServerStatusOptions extends BaseHttpRequestOptions {
*/
public static ServerStatusOptions memory() {
ServerStatusOptions options = new ServerStatusOptions();
return options.statusType(StatusTypes.memory);
return options.statusType(StatusTypes.MEMORY);
}
/**
@ -59,7 +59,7 @@ public class ServerStatusOptions extends BaseHttpRequestOptions {
*/
public static ServerStatusOptions disk() {
ServerStatusOptions options = new ServerStatusOptions();
return options.statusType(StatusTypes.disk);
return options.statusType(StatusTypes.DISK);
}
/**
@ -67,7 +67,7 @@ public class ServerStatusOptions extends BaseHttpRequestOptions {
*/
public static ServerStatusOptions bandwidth() {
ServerStatusOptions options = new ServerStatusOptions();
return options.statusType(StatusTypes.bandwidth);
return options.statusType(StatusTypes.BANDWIDTH);
}
}
@ -75,7 +75,7 @@ public class ServerStatusOptions extends BaseHttpRequestOptions {
* Select the given type of information form the server
*/
public ServerStatusOptions statusType(StatusTypes type) {
formParameters.put("statustype", type.name());
formParameters.put("statustype", type.name().toLowerCase());
return this;
}
}

View File

@ -1,43 +0,0 @@
/**
* Licensed to jclouds, Inc. (jclouds) under one or more
* contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. jclouds licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.jclouds.glesys.options;
/**
* @author Adam Lowe
*/
public class ServerStopOptions extends ServerEditOptions {
public static class Builder {
/**
* @see org.jclouds.glesys.options.ServerStopOptions#hard
*/
public static ServerStopOptions hard() {
ServerStopOptions options = new ServerStopOptions();
return options.hard();
}
}
/**
* Hard stop - only supported on Xen platform
*/
public ServerStopOptions hard() {
formParameters.put("type", "hard");
return this;
}
}

View File

@ -21,7 +21,7 @@ package org.jclouds.glesys;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import org.jclouds.glesys.features.BaseGleSYSAsyncClientTest;
import org.jclouds.glesys.internal.BaseGleSYSAsyncClientTest;
import org.jclouds.http.HttpRequest;
import org.jclouds.rest.internal.RestAnnotationProcessor;
import org.testng.annotations.BeforeClass;

View File

@ -26,6 +26,7 @@ import java.util.concurrent.TimeUnit;
import org.jclouds.glesys.domain.ArchiveAllowedArguments;
import org.jclouds.glesys.domain.ArchiveDetails;
import org.jclouds.glesys.internal.BaseGleSYSClientLiveTest;
import org.jclouds.predicates.RetryablePredicate;
import org.testng.annotations.AfterGroups;
import org.testng.annotations.BeforeGroups;

View File

@ -24,7 +24,7 @@ import com.google.common.collect.ImmutableSortedSet;
import org.jclouds.glesys.GleSYSClient;
import org.jclouds.glesys.domain.Domain;
import org.jclouds.glesys.domain.DomainRecord;
import org.jclouds.glesys.options.DomainAddOptions;
import org.jclouds.glesys.options.AddDomainOptions;
import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
import org.jclouds.rest.BaseRestClientExpectTest;
@ -143,7 +143,7 @@ public class DomainClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
.put("ttl", "1")
.build())).build(),
HttpResponse.builder().statusCode(200).build()).getDomainClient();
DomainAddOptions options = (DomainAddOptions) DomainAddOptions.Builder.primaryNameServer("ns1.somewhere.x")
AddDomainOptions options = (AddDomainOptions) AddDomainOptions.Builder.primaryNameServer("ns1.somewhere.x")
.expire(1).minimum(1).refresh(1).responsiblePerson("Tester").retry(1).ttl(1);
client.addDomain("cl66666_x", options);

View File

@ -27,8 +27,9 @@ import java.util.concurrent.TimeUnit;
import org.jclouds.glesys.domain.Domain;
import org.jclouds.glesys.domain.DomainRecord;
import org.jclouds.glesys.internal.BaseGleSYSClientLiveTest;
import org.jclouds.glesys.options.DomainOptions;
import org.jclouds.glesys.options.DomainRecordEditOptions;
import org.jclouds.glesys.options.EditRecordOptions;
import org.jclouds.predicates.RetryablePredicate;
import org.testng.annotations.AfterGroups;
import org.testng.annotations.BeforeGroups;
@ -125,7 +126,7 @@ public class DomainClientLiveTest extends BaseGleSYSClientLiveTest {
assertNotNull(recordId);
client.editRecord(recordId, DomainRecordEditOptions.Builder.host("testeditafter"));
client.editRecord(recordId, EditRecordOptions.Builder.host("testeditafter"));
boolean found = false;
for(DomainRecord record : client.listRecords(testDomain)) {

View File

@ -29,7 +29,7 @@ import java.text.SimpleDateFormat;
import java.util.Set;
import org.jclouds.glesys.GleSYSClient;
import org.jclouds.glesys.domain.Email;
import org.jclouds.glesys.domain.EmailAccount;
import org.jclouds.glesys.domain.EmailOverview;
import org.jclouds.glesys.domain.EmailOverviewDomain;
import org.jclouds.glesys.domain.EmailOverviewSummary;
@ -65,8 +65,8 @@ public class EmailClientExpectTest extends BaseRestClientExpectTest<GleSYSClient
HttpResponse.builder().statusCode(200).payload(payloadFromResource("/email_list.json")).build()).getEmailClient();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Email.Builder builder = Email.builder().quota("200 MB").usedQuota("0 MB").antispamLevel(3).antiVirus(true).autoRespond(false).autoRespondSaveEmail(true).autoRespondMessage("false");
Set<Email> expected =
EmailAccount.Builder builder = EmailAccount.builder().quota("200 MB").usedQuota("0 MB").antispamLevel(3).antiVirus(true).autoRespond(false).autoRespondSaveEmail(true).autoRespondMessage("false");
Set<EmailAccount> expected =
ImmutableSet.of(
builder.account("test@adamlowe.net").created(dateFormat.parse("2011-12-22T12:13:14")).modified(dateFormat.parse("2011-12-22T12:13:35")).build(),
builder.account("test2@adamlowe.net").created(dateFormat.parse("2011-12-22T12:14:29")).modified(dateFormat.parse("2011-12-22T12:14:31")).build()

View File

@ -18,20 +18,26 @@
*/
package org.jclouds.glesys.features;
import com.google.common.base.Predicate;
import org.jclouds.glesys.domain.*;
import org.jclouds.glesys.options.EmailCreateOptions;
import org.jclouds.glesys.options.EmailEditOptions;
import org.jclouds.glesys.options.ServerDestroyOptions;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.jclouds.glesys.domain.EmailAccount;
import org.jclouds.glesys.domain.EmailOverview;
import org.jclouds.glesys.domain.EmailOverviewDomain;
import org.jclouds.glesys.internal.BaseGleSYSClientLiveTest;
import org.jclouds.glesys.options.CreateAccountOptions;
import org.jclouds.glesys.options.EditAccountOptions;
import org.jclouds.glesys.options.DestroyServerOptions;
import org.jclouds.predicates.RetryablePredicate;
import org.testng.annotations.AfterGroups;
import org.testng.annotations.BeforeGroups;
import org.testng.annotations.Test;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import static org.testng.Assert.*;
import com.google.common.base.Predicate;
/**
* Tests behavior of {@code EmailClient}
@ -66,7 +72,7 @@ public class EmailClientLiveTest extends BaseGleSYSClientLiveTest {
client.delete("test1@" + testDomain);
assertTrue(emailAccountCounter.apply(0));
context.getApi().getDomainClient().deleteDomain(testDomain);
context.getApi().getServerClient().destroyServer(serverId, ServerDestroyOptions.Builder.discardIp());
context.getApi().getServerClient().destroyServer(serverId, DestroyServerOptions.Builder.discardIp());
super.tearDown();
}
@ -78,7 +84,7 @@ public class EmailClientLiveTest extends BaseGleSYSClientLiveTest {
@Test
public void testCreateEmail() {
client.createAccount("test@" + testDomain, "password",
EmailCreateOptions.Builder.antiVirus(true).autorespond(true).autorespondMessage("out of office"));
CreateAccountOptions.Builder.antiVirus(true).autorespond(true).autorespondMessage("out of office"));
assertTrue(emailAccountCounter.apply(1));
@ -120,23 +126,23 @@ public class EmailClientLiveTest extends BaseGleSYSClientLiveTest {
@Test(dependsOnMethods = "testCreateEmail")
public void testListAccounts() throws Exception {
Set<Email> accounts = client.listAccounts(testDomain);
Set<EmailAccount> accounts = client.listAccounts(testDomain);
assertTrue(accounts.size() >= 1);
}
@Test(dependsOnMethods = "testCreateEmail")
public void testEditAccount() throws Exception {
Set<Email> accounts = client.listAccounts(testDomain);
for (Email account : accounts) {
Set<EmailAccount> accounts = client.listAccounts(testDomain);
for (EmailAccount account : accounts) {
if (account.getAccount().equals("test@" + testDomain)) {
assertTrue(account.getAntiVirus());
}
}
client.editAccount("test@" + testDomain, EmailEditOptions.Builder.antiVirus(false));
client.editAccount("test@" + testDomain, EditAccountOptions.Builder.antiVirus(false));
accounts = client.listAccounts(testDomain);
for (Email account : accounts) {
for (EmailAccount account : accounts) {
if (account.getAccount().equals("test@" + testDomain)) {
assertFalse(account.getAntiVirus());
}

View File

@ -21,6 +21,7 @@ package org.jclouds.glesys.features;
import java.io.IOException;
import java.lang.reflect.Method;
import org.jclouds.glesys.internal.BaseGleSYSAsyncClientTest;
import org.jclouds.http.HttpRequest;
import org.jclouds.http.functions.ParseFirstJsonValueNamed;
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;

View File

@ -18,16 +18,17 @@
*/
package org.jclouds.glesys.features;
import org.jclouds.glesys.domain.IpDetails;
import org.testng.annotations.BeforeGroups;
import org.testng.annotations.Test;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
import java.util.List;
import java.util.Set;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
import org.jclouds.glesys.domain.IpDetails;
import org.jclouds.glesys.internal.BaseGleSYSClientLiveTest;
import org.testng.annotations.BeforeGroups;
import org.testng.annotations.Test;
/**
* Tests behavior of {@code IpClient}

View File

@ -81,8 +81,8 @@ public class ServerClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
.put("Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==").build()).build(),
HttpResponse.builder().statusCode(204).payload(payloadFromResource("/server_allowed_arguments.json")).build()).getServerClient();
Map<String, ServerAllowedArguments> expected = new LinkedHashMap<String, ServerAllowedArguments>();
ServerAllowedArguments openvz = ServerAllowedArguments.builder()
Map<String, AllowedArgumentsForCreateServer> expected = new LinkedHashMap<String, AllowedArgumentsForCreateServer>();
AllowedArgumentsForCreateServer openvz = AllowedArgumentsForCreateServer.builder()
.dataCenters("Amsterdam", "Falkenberg", "New York City", "Stockholm")
.memorySizes(128, 256, 512, 768, 1024, 1536, 2048, 2560, 3072, 3584, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288)
.diskSizes(5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 120, 140, 150)
@ -93,7 +93,7 @@ public class ServerClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
"Ubuntu 10.04 LTS 32-bit", "Ubuntu 10.04 LTS 64-bit", "Ubuntu 11.04 64-bit")
.transfers(50, 100, 250, 500, 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000)
.build();
ServerAllowedArguments xen = ServerAllowedArguments.builder()
AllowedArgumentsForCreateServer xen = AllowedArgumentsForCreateServer.builder()
.memorySizes(512, 768, 1024, 1536, 2048, 2560, 3072, 3584, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 14336, 16384)
.diskSizes(5, 10, 20, 30, 40, 50, 80, 100, 120, 140, 150, 160, 160, 200, 250, 300)
.cpuCores(1, 2, 3, 4, 5, 6, 7, 8)
@ -106,7 +106,7 @@ public class ServerClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
.build();
expected.put("Xen", xen);
expected.put("OpenVZ", openvz);
assertEquals(client.getServerAllowedArguments(), expected);
assertEquals(client.getAllowedArgumentsForCreateServerByPlatform(), expected);
}
public void testGetTemplatesWhenResponseIs2xx() throws Exception {
@ -117,23 +117,23 @@ public class ServerClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
.put("Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==").build()).build(),
HttpResponse.builder().statusCode(200).payload(payloadFromResource("/server_templates.json")).build()).getServerClient();
ImmutableSet.Builder<ServerTemplate> expectedBuilder = ImmutableSet.<ServerTemplate> builder();
ImmutableSet.Builder<Template> expectedBuilder = ImmutableSet.<Template> builder();
for (String name : new String[] { "Centos 5", "Centos 5 64-bit", "Centos 6 32-bit", "Centos 6 64-bit",
"Debian 5.0 32-bit", "Debian 5.0 64-bit", "Debian 6.0 32-bit", "Debian 6.0 64-bit", "Fedora Core 11",
"Fedora Core 11 64-bit", "Gentoo", "Gentoo 64-bit", "Scientific Linux 6", "Scientific Linux 6 64-bit",
"Slackware 12", "Ubuntu 10.04 LTS 32-bit", "Ubuntu 10.04 LTS 64-bit", "Ubuntu 11.04 64-bit" }) {
expectedBuilder.add(new ServerTemplate(name, 5, 128, "linux", "OpenVZ"));
expectedBuilder.add(new Template(name, 5, 128, "linux", "OpenVZ"));
}
for (String name : new String[] { "CentOS 5.5 x64", "CentOS 5.5 x86", "Centos 6 x64", "Centos 6 x86",
"Debian-6 x64", "Debian 5.0.1 x64", "FreeBSD 8.2", "Gentoo 10.1 x64", "Ubuntu 8.04 x64",
"Ubuntu 10.04 LTS 64-bit", "Ubuntu 10.10 x64", "Ubuntu 11.04 x64" }) {
expectedBuilder.add(new ServerTemplate(name, 5, 512, name.startsWith("FreeBSD") ? "freebsd" : "linux", "Xen"));
expectedBuilder.add(new Template(name, 5, 512, name.startsWith("FreeBSD") ? "freebsd" : "linux", "Xen"));
}
for (String name : new String[] { "Windows Server 2008 R2 x64 std", "Windows Server 2008 R2 x64 web",
"Windows Server 2008 x64 web", "Windows Server 2008 x86 web" }) {
expectedBuilder.add(new ServerTemplate(name, 20, 1024, "windows", "Xen"));
expectedBuilder.add(new Template(name, 20, 1024, "windows", "Xen"));
}
assertEquals(client.getTemplates(), expectedBuilder.build());
@ -220,7 +220,7 @@ public class ServerClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
.put("ip", "10.0.0.1").build())).build(),
HttpResponse.builder().statusCode(200).payload(payloadFromResource("/server_details.json")).build()).getServerClient();
ServerCreateOptions options = ServerCreateOptions.Builder.description("Description-of-server").ip("10.0.0.1");
CreateServerOptions options = CreateServerOptions.Builder.description("Description-of-server").ip("10.0.0.1");
assertEquals(client.createServer("Falkenberg", "OpenVZ", "jclouds-test", "Ubuntu 32-bit", 5, 512, 1, "password", 50, options), expectedServerDetails());
}
@ -256,8 +256,8 @@ public class ServerClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
.build())).build(),
HttpResponse.builder().statusCode(200).build()).getServerClient();
ServerEditOptions options =
ServerEditOptions.Builder.description("Description-of-server").disksize(1).memorysize(512).cpucores(1).hostname("jclouds-test");
EditServerOptions options =
EditServerOptions.Builder.description("Description-of-server").disksize(1).memorysize(512).cpucores(1).hostname("jclouds-test");
client.editServer("server111", options);
}
@ -292,7 +292,7 @@ public class ServerClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
.put("memorysize", "512")
.put("cpucores", "1").build())).build(),
HttpResponse.builder().statusCode(200).payload(payloadFromResource("/server_details.json")).build()).getServerClient();
ServerCloneOptions options = (ServerCloneOptions) ServerCloneOptions.Builder.description("Description-of-server").disksize(1).memorysize(512).cpucores(1);
CloneServerOptions options = (CloneServerOptions) CloneServerOptions.Builder.description("Description-of-server").disksize(1).memorysize(512).cpucores(1);
assertEquals(client.cloneServer("server111", "hostname1", options), expectedServerDetails());
}
@ -368,7 +368,7 @@ public class ServerClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
client.getServerLimits("server321");
}
public void testGetServerConsoleWhenResponseIs2xx() throws Exception {
public void testGetConsoleWhenResponseIs2xx() throws Exception {
ServerClient client = requestSendsResponse(
HttpRequest.builder().method("POST").endpoint(URI.create("https://api.glesys.com/server/console/format/json"))
.headers(ImmutableMultimap.<String, String>builder()
@ -379,12 +379,12 @@ public class ServerClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
HttpResponse.builder().statusCode(200).payload(payloadFromResource("/server_console.json")).build())
.getServerClient();
ServerConsole expected = ServerConsole.builder().host("79.99.2.147").port(59478).password("1476897311").protocol("vnc").build();
Console expected = Console.builder().host("79.99.2.147").port(59478).password("1476897311").protocol("vnc").build();
assertEquals(client.getServerConsole("server322"), expected);
assertEquals(client.getConsole("server322"), expected);
}
public void testGetServerConsoleWhenResponseIs4xx() throws Exception {
public void testGetConsoleWhenResponseIs4xx() throws Exception {
ServerClient client = requestSendsResponse(
HttpRequest.builder().method("POST").endpoint(URI.create("https://api.glesys.com/server/console/format/json"))
.headers(ImmutableMultimap.<String, String>builder()
@ -395,7 +395,7 @@ public class ServerClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
HttpResponse.builder().statusCode(404).build())
.getServerClient();
assertNull(client.getServerConsole("server322"));
assertNull(client.getConsole("server322"));
}
public void testStartServerWhenResponseIs2xx() throws Exception {
@ -448,11 +448,11 @@ public class ServerClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
.put("Accept", "application/json")
.put("Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==").build())
.payload(newUrlEncodedFormPayload(ImmutableMultimap.<String, String>builder()
.put("serverid", "server777").put("type", "hard").build())).build(),
.put("type", "hard").put("serverid", "server777").build())).build(),
HttpResponse.builder().statusCode(200).build())
.getServerClient();
client.stopServer("server777", ServerStopOptions.Builder.hard());
client.hardStopServer("server777");
}
@Test(expectedExceptions = {AuthorizationException.class})
@ -509,7 +509,7 @@ public class ServerClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
HttpResponse.builder().statusCode(200).build())
.getServerClient();
client.destroyServer("server777", ServerDestroyOptions.Builder.keepIp());
client.destroyServer("server777", DestroyServerOptions.Builder.keepIp());
}
@Test(expectedExceptions = {AuthorizationException.class})
@ -523,7 +523,7 @@ public class ServerClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
HttpResponse.builder().statusCode(401).build())
.getServerClient();
client.destroyServer("server777", ServerDestroyOptions.Builder.discardIp());
client.destroyServer("server777", DestroyServerOptions.Builder.discardIp());
}
@ -532,7 +532,7 @@ public class ServerClientExpectTest extends BaseRestClientExpectTest<GleSYSClien
ResourceUsage disk = ResourceUsage.builder().unit("MB").usage(371.0).max(5120).build();
ResourceUsage memory = ResourceUsage.builder().unit("MB").usage(3.0).max(128).build();
ServerUptime uptime = ServerUptime.builder().current(23).unit("seconds").build();
return ServerStatus.builder().state(ServerState.RUNNING).uptime(uptime).
return ServerStatus.builder().state(Server.State.RUNNING).uptime(uptime).
cpu(cpu).disk(disk).memory(memory).build();
}

View File

@ -18,10 +18,25 @@
*/
package org.jclouds.glesys.features;
import com.google.common.base.Predicate;
import org.jclouds.glesys.domain.*;
import org.jclouds.glesys.options.ServerCloneOptions;
import org.jclouds.glesys.options.ServerDestroyOptions;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.jclouds.glesys.domain.Console;
import org.jclouds.glesys.domain.ResourceUsage;
import org.jclouds.glesys.domain.Server;
import org.jclouds.glesys.domain.AllowedArgumentsForCreateServer;
import org.jclouds.glesys.domain.ServerDetails;
import org.jclouds.glesys.domain.ServerLimit;
import org.jclouds.glesys.domain.ServerStatus;
import org.jclouds.glesys.domain.Template;
import org.jclouds.glesys.internal.BaseGleSYSClientLiveTest;
import org.jclouds.glesys.options.CloneServerOptions;
import org.jclouds.glesys.options.DestroyServerOptions;
import org.jclouds.glesys.options.ServerStatusOptions;
import org.jclouds.predicates.RetryablePredicate;
import org.testng.annotations.AfterGroups;
@ -29,11 +44,7 @@ import org.testng.annotations.BeforeGroups;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import static org.testng.Assert.*;
import com.google.common.base.Predicate;
/**
* Tests behavior of {@code ServerClient}
@ -56,9 +67,9 @@ public class ServerClientLiveTest extends BaseGleSYSClientLiveTest {
@AfterGroups(groups = {"live"})
public void tearDown() {
client.destroyServer(testServerId, ServerDestroyOptions.Builder.discardIp());
client.destroyServer(testServerId, DestroyServerOptions.Builder.discardIp());
if (testServerId2 != null) {
client.destroyServer(testServerId2, ServerDestroyOptions.Builder.discardIp());
client.destroyServer(testServerId2, DestroyServerOptions.Builder.discardIp());
}
super.tearDown();
}
@ -70,12 +81,12 @@ public class ServerClientLiveTest extends BaseGleSYSClientLiveTest {
@BeforeMethod
public void makeSureServerIsRunning() throws Exception {
serverStatusChecker.apply(ServerState.RUNNING);
serverStatusChecker.apply(Server.State.RUNNING);
}
@Test
public void testAllowedArguments() throws Exception {
Map<String,ServerAllowedArguments> templates = client.getServerAllowedArguments();
Map<String,AllowedArgumentsForCreateServer> templates = client.getAllowedArgumentsForCreateServerByPlatform();
assertTrue(templates.containsKey("OpenVZ"));
assertTrue(templates.containsKey("Xen"));
@ -84,7 +95,7 @@ public class ServerClientLiveTest extends BaseGleSYSClientLiveTest {
checkAllowedArguments(templates.get("Xen"));
}
private void checkAllowedArguments(ServerAllowedArguments t) {
private void checkAllowedArguments(AllowedArgumentsForCreateServer t) {
assertNotNull(t);
assert t.getDataCenters().size() > 0 : t;
@ -98,14 +109,14 @@ public class ServerClientLiveTest extends BaseGleSYSClientLiveTest {
@Test
public void testListTemplates() throws Exception {
Set<ServerTemplate> templates = client.getTemplates();
Set<Template> templates = client.getTemplates();
for(ServerTemplate template : templates) {
for(Template template : templates) {
checkTemplate(template);
}
}
private void checkTemplate(ServerTemplate t) {
private void checkTemplate(Template t) {
assertNotNull(t);
assertNotNull(t.getName());
assertNotNull(t.getOs());
@ -168,18 +179,18 @@ public class ServerClientLiveTest extends BaseGleSYSClientLiveTest {
assertTrue(uptime < 20);
assertTrue(serverStatusChecker.apply(ServerState.RUNNING));
assertTrue(serverStatusChecker.apply(Server.State.RUNNING));
}
@Test(enabled=false) // TODO
public void testStopAndStartServer() throws Exception {
client.stopServer(testServerId);
assertTrue(serverStatusChecker.apply(ServerState.STOPPED));
assertTrue(serverStatusChecker.apply(Server.State.STOPPED));
client.startServer(testServerId);
assertTrue(serverStatusChecker.apply(ServerState.RUNNING));
assertTrue(serverStatusChecker.apply(Server.State.RUNNING));
}
@ -200,8 +211,8 @@ public class ServerClientLiveTest extends BaseGleSYSClientLiveTest {
}
@Test
public void testServerConsole() throws Exception {
ServerConsole console = client.getServerConsole(testServerId);
public void testConsole() throws Exception {
Console console = client.getConsole(testServerId);
assertNotNull(console);
assertNotNull(console.getHost());
assertTrue(console.getPort() > 0 && console.getPort() < 65537);
@ -211,7 +222,7 @@ public class ServerClientLiveTest extends BaseGleSYSClientLiveTest {
// takes a few minutes and requires an extra server (using 2 already)
@Test(enabled=false)
public void testCloneServer() throws Exception {
ServerDetails testServer2 = client.cloneServer(testServerId, testHostName2, ServerCloneOptions.Builder.cpucores(1));
ServerDetails testServer2 = client.cloneServer(testServerId, testHostName2, CloneServerOptions.Builder.cpucores(1));
assertNotNull(testServer2.getId());
assertEquals(testServer2.getHostname(), "jclouds-test2");
@ -219,16 +230,16 @@ public class ServerClientLiveTest extends BaseGleSYSClientLiveTest {
testServerId2 = testServer2.getId();
RetryablePredicate<ServerState> cloneChecker = new ServerStatusChecker(client, testServerId2, 300, 10, TimeUnit.SECONDS);
assertTrue(cloneChecker.apply(ServerState.STOPPED));
RetryablePredicate<Server.State> cloneChecker = new ServerStatusChecker(client, testServerId2, 300, 10, TimeUnit.SECONDS);
assertTrue(cloneChecker.apply(Server.State.STOPPED));
client.startServer(testServer2.getId());
// TODO ServerStatus==STOPPED suggests the previous call to start should have worked
cloneChecker = new RetryablePredicate<ServerState>(
new Predicate<ServerState>() {
cloneChecker = new RetryablePredicate<Server.State>(
new Predicate<Server.State>() {
public boolean apply(ServerState value) {
public boolean apply(Server.State value) {
ServerStatus status = client.getServerStatus(testServerId2, ServerStatusOptions.Builder.state());
if (status.getState() == value) {
return true;
@ -240,7 +251,7 @@ public class ServerClientLiveTest extends BaseGleSYSClientLiveTest {
}, 300, 10, TimeUnit.SECONDS);
assertTrue(cloneChecker.apply(ServerState.RUNNING)
assertTrue(cloneChecker.apply(Server.State.RUNNING)
);
}

View File

@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
package org.jclouds.glesys.features;
package org.jclouds.glesys.internal;
import static org.testng.Assert.assertEquals;

View File

@ -16,17 +16,23 @@
* specific language governing permissions and limitations
* under the License.
*/
package org.jclouds.glesys.features;
package org.jclouds.glesys.internal;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.testng.Assert.*;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
import java.util.concurrent.TimeUnit;
import com.google.common.base.Predicate;
import org.jclouds.glesys.GleSYSAsyncClient;
import org.jclouds.glesys.GleSYSClient;
import org.jclouds.glesys.domain.Server;
import org.jclouds.glesys.domain.ServerDetails;
import org.jclouds.glesys.domain.ServerState;
import org.jclouds.glesys.domain.ServerStatus;
import org.jclouds.glesys.features.DomainClient;
import org.jclouds.glesys.features.ServerClient;
import org.jclouds.glesys.options.ServerStatusOptions;
import org.jclouds.logging.log4j.config.Log4JLoggingModule;
import org.jclouds.predicates.RetryablePredicate;
@ -37,11 +43,10 @@ import org.testng.annotations.AfterGroups;
import org.testng.annotations.BeforeGroups;
import org.testng.annotations.Test;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableSet;
import com.google.inject.Module;
import java.util.concurrent.TimeUnit;
/**
* Tests behavior of {@code GleSYSClient}
*
@ -96,19 +101,19 @@ public class BaseGleSYSClientLiveTest {
ServerStatusChecker runningServerCounter = new ServerStatusChecker(client, testServer.getId(), 180, 10, TimeUnit.SECONDS);
assertTrue(runningServerCounter.apply(ServerState.RUNNING));
assertTrue(runningServerCounter.apply(Server.State.RUNNING));
return runningServerCounter;
}
public static class ServerStatusChecker extends RetryablePredicate<ServerState> {
public static class ServerStatusChecker extends RetryablePredicate<Server.State> {
private final String serverId;
public String getServerId() {
return serverId;
}
public ServerStatusChecker(final ServerClient client, final String serverId, long maxWait, long period, TimeUnit unit) {
super(new Predicate<ServerState>() {
super(new Predicate<Server.State>() {
public boolean apply(ServerState value) {
public boolean apply(Server.State value) {
ServerStatus status = client.getServerStatus(serverId, ServerStatusOptions.Builder.state());
return status.getState() == value;
}