mirror of
https://github.com/apache/jclouds.git
synced 2025-02-06 18:19:03 +00:00
Issue 1022: updated aws-elb aws-iam aws-rds iam elb rds to new naming conventions
This commit is contained in:
parent
72ba1639b9
commit
25ab7814e4
@ -106,4 +106,4 @@ public class AWSELBProviderMetadata extends BaseProviderMetadata {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -33,4 +33,4 @@ public class AWSELBProviderTest extends BaseProviderMetadataTest {
|
||||
public AWSELBProviderTest() {
|
||||
super(new AWSELBProviderMetadata(), new ELBApiMetadata());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,17 +18,17 @@
|
||||
*/
|
||||
package org.jclouds.aws.elb.features;
|
||||
|
||||
import org.jclouds.elb.features.AvailabilityZoneClientLiveTest;
|
||||
import org.jclouds.elb.features.AvailabilityZoneApiLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live", testName = "AWSAvailabilityZoneClientLiveTest")
|
||||
public class AWSAvailabilityZoneClientLiveTest extends AvailabilityZoneClientLiveTest {
|
||||
@Test(groups = "live", testName = "AWSAvailabilityZoneApiLiveTest")
|
||||
public class AWSAvailabilityZoneApiLiveTest extends AvailabilityZoneApiLiveTest {
|
||||
|
||||
public AWSAvailabilityZoneClientLiveTest() {
|
||||
public AWSAvailabilityZoneApiLiveTest() {
|
||||
provider = "aws-elb";
|
||||
}
|
||||
|
@ -18,17 +18,17 @@
|
||||
*/
|
||||
package org.jclouds.aws.elb.features;
|
||||
|
||||
import org.jclouds.elb.features.PolicyClientLiveTest;
|
||||
import org.jclouds.elb.features.InstanceApiLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live", testName = "AWSPolicyClientLiveTest")
|
||||
public class AWSPolicyClientLiveTest extends PolicyClientLiveTest {
|
||||
@Test(groups = "live", testName = "AWSInstanceApiLiveTest")
|
||||
public class AWSInstanceApiLiveTest extends InstanceApiLiveTest {
|
||||
|
||||
public AWSPolicyClientLiveTest() {
|
||||
public AWSInstanceApiLiveTest() {
|
||||
provider = "aws-elb";
|
||||
}
|
||||
|
@ -18,17 +18,17 @@
|
||||
*/
|
||||
package org.jclouds.aws.elb.features;
|
||||
|
||||
import org.jclouds.elb.features.LoadBalancerClientLiveTest;
|
||||
import org.jclouds.elb.features.LoadBalancerApiLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live", testName = "AWSLoadBalancerClientLiveTest")
|
||||
public class AWSLoadBalancerClientLiveTest extends LoadBalancerClientLiveTest {
|
||||
@Test(groups = "live", testName = "AWSLoadBalancerApiLiveTest")
|
||||
public class AWSLoadBalancerApiLiveTest extends LoadBalancerApiLiveTest {
|
||||
|
||||
public AWSLoadBalancerClientLiveTest() {
|
||||
public AWSLoadBalancerApiLiveTest() {
|
||||
provider = "aws-elb";
|
||||
}
|
||||
|
@ -18,17 +18,17 @@
|
||||
*/
|
||||
package org.jclouds.aws.elb.features;
|
||||
|
||||
import org.jclouds.elb.features.InstanceClientLiveTest;
|
||||
import org.jclouds.elb.features.PolicyApiLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live", testName = "AWSInstanceClientLiveTest")
|
||||
public class AWSInstanceClientLiveTest extends InstanceClientLiveTest {
|
||||
@Test(groups = "live", testName = "AWSPolicyApiLiveTest")
|
||||
public class AWSPolicyApiLiveTest extends PolicyApiLiveTest {
|
||||
|
||||
public AWSInstanceClientLiveTest() {
|
||||
public AWSPolicyApiLiveTest() {
|
||||
provider = "aws-elb";
|
||||
}
|
||||
|
@ -84,4 +84,4 @@ public class AWSIAMProviderMetadata extends BaseProviderMetadata {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,17 +18,17 @@
|
||||
*/
|
||||
package org.jclouds.aws.iam;
|
||||
|
||||
import org.jclouds.iam.IAMClientLiveTest;
|
||||
import org.jclouds.iam.IAMApiLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
* Tests behavior of {@code IAMClient}
|
||||
* Tests behavior of {@code IAMApi}
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live", singleThreaded = true, testName = "AWSIAMClientLiveTest")
|
||||
public class AWSIAMClientLiveTest extends IAMClientLiveTest {
|
||||
public AWSIAMClientLiveTest() {
|
||||
@Test(groups = "live", singleThreaded = true, testName = "AWSIAMApiLiveTest")
|
||||
public class AWSIAMApiLiveTest extends IAMApiLiveTest {
|
||||
public AWSIAMApiLiveTest() {
|
||||
provider = "aws-iam";
|
||||
}
|
||||
|
@ -18,15 +18,15 @@
|
||||
*/
|
||||
package org.jclouds.aws.iam.features;
|
||||
|
||||
import org.jclouds.iam.features.UserClientLiveTest;
|
||||
import org.jclouds.iam.features.UserApiLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live", testName = "AWSUserClientLiveTest")
|
||||
public class AWSUserClientLiveTest extends UserClientLiveTest {
|
||||
public AWSUserClientLiveTest() {
|
||||
@Test(groups = "live", testName = "AWSUserApiLiveTest")
|
||||
public class AWSUserApiLiveTest extends UserApiLiveTest {
|
||||
public AWSUserApiLiveTest() {
|
||||
provider = "aws-iam";
|
||||
}
|
||||
}
|
@ -18,17 +18,17 @@
|
||||
*/
|
||||
package org.jclouds.aws.rds.features;
|
||||
|
||||
import org.jclouds.rds.features.SubnetGroupClientLiveTest;
|
||||
import org.jclouds.rds.features.InstanceApiLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live", testName = "AWSSubnetGroupClientLiveTest")
|
||||
public class AWSSubnetGroupClientLiveTest extends SubnetGroupClientLiveTest {
|
||||
@Test(groups = "live", testName = "AWSInstanceApiLiveTest")
|
||||
public class AWSInstanceApiLiveTest extends InstanceApiLiveTest {
|
||||
|
||||
public AWSSubnetGroupClientLiveTest() {
|
||||
public AWSInstanceApiLiveTest() {
|
||||
provider = "aws-rds";
|
||||
}
|
||||
|
@ -18,17 +18,17 @@
|
||||
*/
|
||||
package org.jclouds.aws.rds.features;
|
||||
|
||||
import org.jclouds.rds.features.SecurityGroupClientLiveTest;
|
||||
import org.jclouds.rds.features.SecurityGroupApiLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live", testName = "AWSSecurityGroupClientLiveTest")
|
||||
public class AWSSecurityGroupClientLiveTest extends SecurityGroupClientLiveTest {
|
||||
@Test(groups = "live", testName = "AWSSecurityGroupApiLiveTest")
|
||||
public class AWSSecurityGroupApiLiveTest extends SecurityGroupApiLiveTest {
|
||||
|
||||
public AWSSecurityGroupClientLiveTest() {
|
||||
public AWSSecurityGroupApiLiveTest() {
|
||||
provider = "aws-rds";
|
||||
}
|
||||
|
@ -18,17 +18,17 @@
|
||||
*/
|
||||
package org.jclouds.aws.rds.features;
|
||||
|
||||
import org.jclouds.rds.features.InstanceClientLiveTest;
|
||||
import org.jclouds.rds.features.SubnetGroupApiLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live", testName = "AWSInstanceClientLiveTest")
|
||||
public class AWSInstanceClientLiveTest extends InstanceClientLiveTest {
|
||||
@Test(groups = "live", testName = "AWSSubnetGroupApiLiveTest")
|
||||
public class AWSSubnetGroupApiLiveTest extends SubnetGroupApiLiveTest {
|
||||
|
||||
public AWSInstanceClientLiveTest() {
|
||||
public AWSSubnetGroupApiLiveTest() {
|
||||
provider = "aws-rds";
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ package org.jclouds.elb;
|
||||
import org.jclouds.collect.PaginatedIterable;
|
||||
import org.jclouds.collect.PaginatedIterables;
|
||||
import org.jclouds.elb.domain.LoadBalancer;
|
||||
import org.jclouds.elb.features.LoadBalancerClient;
|
||||
import org.jclouds.elb.features.LoadBalancerApi;
|
||||
import org.jclouds.elb.options.ListLoadBalancersOptions;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
@ -18,19 +18,19 @@ public class ELB {
|
||||
/**
|
||||
* List loadBalancers based on the criteria in the {@link ListLoadBalancersOptions} passed in.
|
||||
*
|
||||
* @param loadBalancerClient
|
||||
* the {@link LoadBalancerClient} to use for the request
|
||||
* @param loadBalancerApi
|
||||
* the {@link LoadBalancerApi} to use for the request
|
||||
* @param options
|
||||
* the {@link ListLoadBalancersOptions} describing the ListLoadBalancers request
|
||||
*
|
||||
* @return iterable of loadBalancers fitting the criteria
|
||||
*/
|
||||
public static Iterable<LoadBalancer> listLoadBalancers(final LoadBalancerClient loadBalancerClient, final ListLoadBalancersOptions options) {
|
||||
return PaginatedIterables.lazyContinue(loadBalancerClient.list(options), new Function<Object, PaginatedIterable<LoadBalancer>>() {
|
||||
public static Iterable<LoadBalancer> listLoadBalancers(final LoadBalancerApi loadBalancerApi, final ListLoadBalancersOptions options) {
|
||||
return PaginatedIterables.lazyContinue(loadBalancerApi.list(options), new Function<Object, PaginatedIterable<LoadBalancer>>() {
|
||||
|
||||
@Override
|
||||
public PaginatedIterable<LoadBalancer> apply(Object input) {
|
||||
return loadBalancerClient.list(options.clone().afterMarker(input));
|
||||
return loadBalancerApi.list(options.clone().afterMarker(input));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -40,8 +40,8 @@ public class ELB {
|
||||
});
|
||||
}
|
||||
|
||||
public static Iterable<LoadBalancer> listLoadBalancers(LoadBalancerClient loadBalancerClient) {
|
||||
return listLoadBalancers(loadBalancerClient, new ListLoadBalancersOptions());
|
||||
public static Iterable<LoadBalancer> listLoadBalancers(LoadBalancerApi loadBalancerApi) {
|
||||
return listLoadBalancers(loadBalancerApi, new ListLoadBalancersOptions());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -24,10 +24,10 @@ import java.util.concurrent.TimeUnit;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import org.jclouds.concurrent.Timeout;
|
||||
import org.jclouds.elb.features.InstanceClient;
|
||||
import org.jclouds.elb.features.LoadBalancerClient;
|
||||
import org.jclouds.elb.features.PolicyClient;
|
||||
import org.jclouds.elb.features.AvailabilityZoneClient;
|
||||
import org.jclouds.elb.features.InstanceApi;
|
||||
import org.jclouds.elb.features.LoadBalancerApi;
|
||||
import org.jclouds.elb.features.PolicyApi;
|
||||
import org.jclouds.elb.features.AvailabilityZoneApi;
|
||||
import org.jclouds.location.Region;
|
||||
import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
|
||||
import org.jclouds.rest.annotations.Delegate;
|
||||
@ -41,11 +41,11 @@ import com.google.inject.Provides;
|
||||
* <p/>
|
||||
*
|
||||
* @author Adrian Cole
|
||||
* @see ELBAsyncClient
|
||||
* @see ELBAsyncApi
|
||||
*/
|
||||
@Beta
|
||||
@Timeout(duration = 30, timeUnit = TimeUnit.SECONDS)
|
||||
public interface ELBClient {
|
||||
public interface ELBApi {
|
||||
/**
|
||||
*
|
||||
* @return the Region codes configured
|
||||
@ -58,40 +58,40 @@ public interface ELBClient {
|
||||
* Provides synchronous access to LoadBalancer features.
|
||||
*/
|
||||
@Delegate
|
||||
LoadBalancerClient getLoadBalancerClient();
|
||||
LoadBalancerApi getLoadBalancerApi();
|
||||
|
||||
@Delegate
|
||||
LoadBalancerClient getLoadBalancerClientForRegion(
|
||||
LoadBalancerApi getLoadBalancerApiForRegion(
|
||||
@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
|
||||
|
||||
/**
|
||||
* Provides synchronous access to Policy features.
|
||||
*/
|
||||
@Delegate
|
||||
PolicyClient getPolicyClient();
|
||||
PolicyApi getPolicyApi();
|
||||
|
||||
@Delegate
|
||||
PolicyClient getPolicyClientForRegion(
|
||||
PolicyApi getPolicyApiForRegion(
|
||||
@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
|
||||
|
||||
/**
|
||||
* Provides synchronous access to Instance features.
|
||||
*/
|
||||
@Delegate
|
||||
InstanceClient getInstanceClient();
|
||||
InstanceApi getInstanceApi();
|
||||
|
||||
@Delegate
|
||||
InstanceClient getInstanceClientForRegion(
|
||||
InstanceApi getInstanceApiForRegion(
|
||||
@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
|
||||
|
||||
/**
|
||||
* Provides synchronous access to Zone features.
|
||||
*/
|
||||
@Delegate
|
||||
AvailabilityZoneClient getAvailabilityZoneClient();
|
||||
AvailabilityZoneApi getAvailabilityZoneApi();
|
||||
|
||||
@Delegate
|
||||
AvailabilityZoneClient getAvailabilityZoneClientForRegion(
|
||||
AvailabilityZoneApi getAvailabilityZoneApiForRegion(
|
||||
@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
|
||||
|
||||
}
|
@ -45,7 +45,7 @@ public class ELBApiMetadata extends BaseRestApiMetadata {
|
||||
/** The serialVersionUID */
|
||||
private static final long serialVersionUID = -7077953935392202824L;
|
||||
|
||||
public static final TypeToken<RestContext<ELBClient, ELBAsyncClient>> CONTEXT_TOKEN = new TypeToken<RestContext<ELBClient, ELBAsyncClient>>() {
|
||||
public static final TypeToken<RestContext<ELBApi, ELBAsyncApi>> CONTEXT_TOKEN = new TypeToken<RestContext<ELBApi, ELBAsyncApi>>() {
|
||||
private static final long serialVersionUID = -5070937833892503232L;
|
||||
};
|
||||
|
||||
@ -55,7 +55,7 @@ public class ELBApiMetadata extends BaseRestApiMetadata {
|
||||
}
|
||||
|
||||
public ELBApiMetadata() {
|
||||
this(new Builder(ELBClient.class, ELBAsyncClient.class));
|
||||
this(new Builder(ELBApi.class, ELBAsyncApi.class));
|
||||
}
|
||||
|
||||
protected ELBApiMetadata(Builder builder) {
|
||||
@ -71,8 +71,8 @@ public class ELBApiMetadata extends BaseRestApiMetadata {
|
||||
|
||||
public static class Builder extends BaseRestApiMetadata.Builder {
|
||||
|
||||
protected Builder(Class<?> client, Class<?> asyncClient) {
|
||||
super(client, asyncClient);
|
||||
protected Builder(Class<?> api, Class<?> asyncApi) {
|
||||
super(api, asyncApi);
|
||||
id("elb")
|
||||
.name("Amazon Elastic Load Balancing Api")
|
||||
.identityName("Access Key ID")
|
||||
@ -97,4 +97,4 @@ public class ELBApiMetadata extends BaseRestApiMetadata {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -23,10 +23,10 @@ import java.util.Set;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import org.jclouds.aws.filters.FormSigner;
|
||||
import org.jclouds.elb.features.InstanceAsyncClient;
|
||||
import org.jclouds.elb.features.LoadBalancerAsyncClient;
|
||||
import org.jclouds.elb.features.PolicyAsyncClient;
|
||||
import org.jclouds.elb.features.AvailabilityZoneAsyncClient;
|
||||
import org.jclouds.elb.features.InstanceAsyncApi;
|
||||
import org.jclouds.elb.features.LoadBalancerAsyncApi;
|
||||
import org.jclouds.elb.features.PolicyAsyncApi;
|
||||
import org.jclouds.elb.features.AvailabilityZoneAsyncApi;
|
||||
import org.jclouds.location.Region;
|
||||
import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
|
||||
import org.jclouds.rest.annotations.Delegate;
|
||||
@ -48,7 +48,7 @@ import com.google.inject.Provides;
|
||||
@Beta
|
||||
@RequestFilters(FormSigner.class)
|
||||
@VirtualHost
|
||||
public interface ELBAsyncClient {
|
||||
public interface ELBAsyncApi {
|
||||
/**
|
||||
*
|
||||
* @return the Region codes configured
|
||||
@ -61,40 +61,40 @@ public interface ELBAsyncClient {
|
||||
* Provides asynchronous access to LoadBalancer features.
|
||||
*/
|
||||
@Delegate
|
||||
LoadBalancerAsyncClient getLoadBalancerClient();
|
||||
LoadBalancerAsyncApi getLoadBalancerApi();
|
||||
|
||||
@Delegate
|
||||
LoadBalancerAsyncClient getLoadBalancerClientForRegion(
|
||||
LoadBalancerAsyncApi getLoadBalancerApiForRegion(
|
||||
@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
|
||||
|
||||
/**
|
||||
* Provides asynchronous access to Policy features.
|
||||
*/
|
||||
@Delegate
|
||||
PolicyAsyncClient getPolicyClient();
|
||||
PolicyAsyncApi getPolicyApi();
|
||||
|
||||
@Delegate
|
||||
PolicyAsyncClient getPolicyClientForRegion(
|
||||
PolicyAsyncApi getPolicyApiForRegion(
|
||||
@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
|
||||
|
||||
/**
|
||||
* Provides asynchronous access to Instance features.
|
||||
*/
|
||||
@Delegate
|
||||
InstanceAsyncClient getInstanceClient();
|
||||
InstanceAsyncApi getInstanceApi();
|
||||
|
||||
@Delegate
|
||||
InstanceAsyncClient getInstanceClientForRegion(
|
||||
InstanceAsyncApi getInstanceApiForRegion(
|
||||
@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
|
||||
|
||||
/**
|
||||
* Provides asynchronous access to AvailabilityZone features.
|
||||
*/
|
||||
@Delegate
|
||||
AvailabilityZoneAsyncClient getAvailabilityZoneClient();
|
||||
AvailabilityZoneAsyncApi getAvailabilityZoneApi();
|
||||
|
||||
@Delegate
|
||||
AvailabilityZoneAsyncClient getAvailabilityZoneClientForRegion(
|
||||
AvailabilityZoneAsyncApi getAvailabilityZoneApiForRegion(
|
||||
@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
|
||||
|
||||
}
|
@ -21,16 +21,16 @@ package org.jclouds.elb.config;
|
||||
import java.util.Map;
|
||||
|
||||
import org.jclouds.aws.config.FormSigningRestClientModule;
|
||||
import org.jclouds.elb.ELBAsyncClient;
|
||||
import org.jclouds.elb.ELBClient;
|
||||
import org.jclouds.elb.features.InstanceAsyncClient;
|
||||
import org.jclouds.elb.features.InstanceClient;
|
||||
import org.jclouds.elb.features.LoadBalancerAsyncClient;
|
||||
import org.jclouds.elb.features.LoadBalancerClient;
|
||||
import org.jclouds.elb.features.PolicyAsyncClient;
|
||||
import org.jclouds.elb.features.PolicyClient;
|
||||
import org.jclouds.elb.features.AvailabilityZoneAsyncClient;
|
||||
import org.jclouds.elb.features.AvailabilityZoneClient;
|
||||
import org.jclouds.elb.ELBAsyncApi;
|
||||
import org.jclouds.elb.ELBApi;
|
||||
import org.jclouds.elb.features.InstanceAsyncApi;
|
||||
import org.jclouds.elb.features.InstanceApi;
|
||||
import org.jclouds.elb.features.LoadBalancerAsyncApi;
|
||||
import org.jclouds.elb.features.LoadBalancerApi;
|
||||
import org.jclouds.elb.features.PolicyAsyncApi;
|
||||
import org.jclouds.elb.features.PolicyApi;
|
||||
import org.jclouds.elb.features.AvailabilityZoneAsyncApi;
|
||||
import org.jclouds.elb.features.AvailabilityZoneApi;
|
||||
import org.jclouds.rest.ConfiguresRestClient;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
@ -42,15 +42,15 @@ import com.google.common.reflect.TypeToken;
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@ConfiguresRestClient
|
||||
public class ELBRestClientModule extends FormSigningRestClientModule<ELBClient, ELBAsyncClient> {
|
||||
public class ELBRestClientModule extends FormSigningRestClientModule<ELBApi, ELBAsyncApi> {
|
||||
public static final Map<Class<?>, Class<?>> DELEGATE_MAP = ImmutableMap.<Class<?>, Class<?>> builder()//
|
||||
.put(LoadBalancerClient.class, LoadBalancerAsyncClient.class)
|
||||
.put(PolicyClient.class, PolicyAsyncClient.class)
|
||||
.put(InstanceClient.class, InstanceAsyncClient.class)
|
||||
.put(AvailabilityZoneClient.class, AvailabilityZoneAsyncClient.class)
|
||||
.put(LoadBalancerApi.class, LoadBalancerAsyncApi.class)
|
||||
.put(PolicyApi.class, PolicyAsyncApi.class)
|
||||
.put(InstanceApi.class, InstanceAsyncApi.class)
|
||||
.put(AvailabilityZoneApi.class, AvailabilityZoneAsyncApi.class)
|
||||
.build();
|
||||
|
||||
public ELBRestClientModule() {
|
||||
super(TypeToken.of(ELBClient.class), TypeToken.of(ELBAsyncClient.class), DELEGATE_MAP);
|
||||
super(TypeToken.of(ELBApi.class), TypeToken.of(ELBAsyncApi.class), DELEGATE_MAP);
|
||||
}
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ import com.google.common.base.Optional;
|
||||
import com.google.common.base.Objects.ToStringHelper;
|
||||
|
||||
/**
|
||||
* Listener is a process that listens for client connection requests. It is configured with a
|
||||
* Listener is a process that listens for api connection requests. It is configured with a
|
||||
* protocol and a port number for front-end (Load Balancer) and back-end (Back-end instance)
|
||||
* connections.
|
||||
*
|
||||
|
@ -59,4 +59,4 @@ public enum Scheme {
|
||||
return UNRECOGNIZED;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,17 +28,17 @@ import org.jclouds.concurrent.Timeout;
|
||||
* <p/>
|
||||
*
|
||||
* @see <a href="http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/APIReference" />
|
||||
* @see AvailabilityZoneAsyncClient
|
||||
* @see AvailabilityZoneAsyncApi
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Timeout(duration = 30, timeUnit = TimeUnit.SECONDS)
|
||||
public interface AvailabilityZoneClient {
|
||||
public interface AvailabilityZoneApi {
|
||||
|
||||
/**
|
||||
* Adds one or more EC2 Availability Zones to the LoadBalancer.
|
||||
*
|
||||
* The LoadBalancer evenly distributes requests across all its registered Availability Zones that
|
||||
* contain instances. As a result, the client must ensure that its LoadBalancer is appropriately
|
||||
* contain instances. As a result, the api must ensure that its LoadBalancer is appropriately
|
||||
* scaled for each registered Availability Zone.
|
||||
*
|
||||
* <h4>Note</h4>
|
||||
@ -51,7 +51,7 @@ public interface AvailabilityZoneClient {
|
||||
* be in the same Region as the LoadBalancer.
|
||||
*
|
||||
* @param loadBalancerName
|
||||
* The name associated with the LoadBalancer. The name must be unique within the client
|
||||
* The name associated with the LoadBalancer. The name must be unique within the api
|
||||
* AWS account.
|
||||
*
|
||||
* @return An updated list of Availability Zones for the LoadBalancer.
|
||||
@ -66,7 +66,7 @@ public interface AvailabilityZoneClient {
|
||||
*
|
||||
*
|
||||
* There must be at least one Availability Zone registered with a LoadBalancer at all times. A
|
||||
* client cannot remove all the Availability Zones from a LoadBalancer. Once an Availability Zone
|
||||
* api cannot remove all the Availability Zones from a LoadBalancer. Once an Availability Zone
|
||||
* is removed, all the instances registered with the LoadBalancer that are in the removed
|
||||
* Availability Zone go into the OutOfService state. Upon Availability Zone removal, the
|
||||
* LoadBalancer attempts to equally balance the traffic among its remaining usable Availability
|
||||
@ -75,8 +75,8 @@ public interface AvailabilityZoneClient {
|
||||
*
|
||||
* <h4>Note</h4>
|
||||
*
|
||||
* In order for this call to be successful, the client must have created the LoadBalancer. The
|
||||
* client must provide the same account credentials as those that were used to create the
|
||||
* In order for this call to be successful, the api must have created the LoadBalancer. The
|
||||
* api must provide the same account credentials as those that were used to create the
|
||||
* LoadBalancer.
|
||||
*
|
||||
* @param zones
|
||||
@ -85,12 +85,12 @@ public interface AvailabilityZoneClient {
|
||||
* <h4>Note</h4>
|
||||
*
|
||||
* There must be at least one Availability Zone registered with a LoadBalancer at all
|
||||
* times. The client cannot remove all the Availability Zones from a LoadBalancer.
|
||||
* times. The api cannot remove all the Availability Zones from a LoadBalancer.
|
||||
* Specified Availability Zones must be in the same Region.
|
||||
*
|
||||
*
|
||||
* @param loadBalancerName
|
||||
* The name associated with the LoadBalancer. The name must be unique within the client
|
||||
* The name associated with the LoadBalancer. The name must be unique within the api
|
||||
* AWS account.
|
||||
*
|
||||
* @return A list of updated Availability Zones for the LoadBalancer.
|
@ -43,15 +43,15 @@ import com.google.common.util.concurrent.ListenableFuture;
|
||||
*
|
||||
* @see <a href="http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/APIReference"
|
||||
* >doc</a>
|
||||
* @see AvailabilityZoneClient
|
||||
* @see AvailabilityZoneApi
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@RequestFilters(FormSigner.class)
|
||||
@VirtualHost
|
||||
public interface AvailabilityZoneAsyncClient {
|
||||
public interface AvailabilityZoneAsyncApi {
|
||||
|
||||
/**
|
||||
* @see AvailabilityZoneClient#addAvailabilityZonesToLoadBalancer
|
||||
* @see AvailabilityZoneApi#addAvailabilityZonesToLoadBalancer
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -63,7 +63,7 @@ public interface AvailabilityZoneAsyncClient {
|
||||
|
||||
|
||||
/**
|
||||
* @see AvailabilityZoneClient#addAvailabilityZoneToLoadBalancer
|
||||
* @see AvailabilityZoneApi#addAvailabilityZoneToLoadBalancer
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -74,7 +74,7 @@ public interface AvailabilityZoneAsyncClient {
|
||||
@FormParam("LoadBalancerName") String loadBalancerName);
|
||||
|
||||
/**
|
||||
* @see AvailabilityZoneClient#removeAvailabilityZonesFromLoadBalancer
|
||||
* @see AvailabilityZoneApi#removeAvailabilityZonesFromLoadBalancer
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -85,7 +85,7 @@ public interface AvailabilityZoneAsyncClient {
|
||||
@FormParam("LoadBalancerName") String loadBalancerName);
|
||||
|
||||
/**
|
||||
* @see AvailabilityZoneClient#removeAvailabilityZoneFromLoadBalancer
|
||||
* @see AvailabilityZoneApi#removeAvailabilityZoneFromLoadBalancer
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
@ -29,23 +29,23 @@ import org.jclouds.elb.domain.InstanceHealth;
|
||||
* <p/>
|
||||
*
|
||||
* @see <a href="http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/APIReference" />
|
||||
* @see InstanceAsyncClient
|
||||
* @see InstanceAsyncApi
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Timeout(duration = 30, timeUnit = TimeUnit.SECONDS)
|
||||
public interface InstanceClient {
|
||||
public interface InstanceApi {
|
||||
|
||||
/**
|
||||
* Returns the current state of the instances of the specified LoadBalancer.
|
||||
*
|
||||
* <h4>Note</h4>
|
||||
*
|
||||
* The client must have created the specified input LoadBalancer in order to retrieve this
|
||||
* information; the client must provide the same account credentials as those that were used to
|
||||
* The api must have created the specified input LoadBalancer in order to retrieve this
|
||||
* information; the api must provide the same account credentials as those that were used to
|
||||
* create the LoadBalancer.
|
||||
*
|
||||
* @param loadBalancerName
|
||||
* The name associated with the LoadBalancer. The name must be unique within the client
|
||||
* The name associated with the LoadBalancer. The name must be unique within the api
|
||||
* AWS account.
|
||||
*
|
||||
* @return state of all instances of the load balancer
|
||||
@ -57,14 +57,14 @@ public interface InstanceClient {
|
||||
*
|
||||
* <h4>Note</h4>
|
||||
*
|
||||
* The client must have created the specified input LoadBalancer in order to retrieve this
|
||||
* information; the client must provide the same account credentials as those that were used to
|
||||
* The api must have created the specified input LoadBalancer in order to retrieve this
|
||||
* information; the api must provide the same account credentials as those that were used to
|
||||
* create the LoadBalancer.
|
||||
*
|
||||
* @param instanceIds
|
||||
* A list of instance IDs whose states are being queried.
|
||||
* @param loadBalancerName
|
||||
* The name associated with the LoadBalancer. The name must be unique within the client
|
||||
* The name associated with the LoadBalancer. The name must be unique within the api
|
||||
* AWS account.
|
||||
*
|
||||
* @return state of all instances of the load balancer
|
||||
@ -81,8 +81,8 @@ public interface InstanceClient {
|
||||
*
|
||||
* <h4>Note</h4>
|
||||
*
|
||||
* In order for this call to be successful, the client must have created the LoadBalancer. The
|
||||
* client must provide the same account credentials as those that were used to create the
|
||||
* In order for this call to be successful, the api must have created the LoadBalancer. The
|
||||
* api must provide the same account credentials as those that were used to create the
|
||||
* LoadBalancer.
|
||||
*
|
||||
* <h4>Note</h4>
|
||||
@ -105,7 +105,7 @@ public interface InstanceClient {
|
||||
*
|
||||
*
|
||||
* @param loadBalancerName
|
||||
* The name associated with the LoadBalancer. The name must be unique within the client
|
||||
* The name associated with the LoadBalancer. The name must be unique within the api
|
||||
* AWS account.
|
||||
*
|
||||
* @return instanceIds registered with load balancer
|
||||
@ -125,7 +125,7 @@ public interface InstanceClient {
|
||||
* A list of EC2 instance IDs consisting of all instances to be deregistered.
|
||||
*
|
||||
* @param loadBalancerName
|
||||
* The name associated with the LoadBalancer. The name must be unique within the client
|
||||
* The name associated with the LoadBalancer. The name must be unique within the api
|
||||
* AWS account.
|
||||
*
|
||||
* @return instanceIds still registered with load balancer
|
@ -47,15 +47,15 @@ import com.google.common.util.concurrent.ListenableFuture;
|
||||
*
|
||||
* @see <a href="http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/APIReference"
|
||||
* >doc</a>
|
||||
* @see InstanceClient
|
||||
* @see InstanceApi
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@RequestFilters(FormSigner.class)
|
||||
@VirtualHost
|
||||
public interface InstanceAsyncClient {
|
||||
public interface InstanceAsyncApi {
|
||||
|
||||
/**
|
||||
* @see InstanceClient#getHealthOfInstancesOfLoadBalancer(String)
|
||||
* @see InstanceApi#getHealthOfInstancesOfLoadBalancer(String)
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -66,7 +66,7 @@ public interface InstanceAsyncClient {
|
||||
@FormParam("LoadBalancerName") String loadBalancerName);
|
||||
|
||||
/**
|
||||
* @see InstanceClient#getHealthOfInstancesOfLoadBalancer(Iterable, String)
|
||||
* @see InstanceApi#getHealthOfInstancesOfLoadBalancer(Iterable, String)
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -79,7 +79,7 @@ public interface InstanceAsyncClient {
|
||||
|
||||
|
||||
/**
|
||||
* @see InstanceClient#registerInstancesWithLoadBalancer
|
||||
* @see InstanceApi#registerInstancesWithLoadBalancer
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -91,7 +91,7 @@ public interface InstanceAsyncClient {
|
||||
|
||||
|
||||
/**
|
||||
* @see InstanceClient#registerInstanceWithLoadBalancer
|
||||
* @see InstanceApi#registerInstanceWithLoadBalancer
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -102,7 +102,7 @@ public interface InstanceAsyncClient {
|
||||
@FormParam("LoadBalancerName") String loadBalancerName);
|
||||
|
||||
/**
|
||||
* @see InstanceClient#deregisterInstancesFromLoadBalancer
|
||||
* @see InstanceApi#deregisterInstancesFromLoadBalancer
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -113,7 +113,7 @@ public interface InstanceAsyncClient {
|
||||
@FormParam("LoadBalancerName") String loadBalancerName);
|
||||
|
||||
/**
|
||||
* @see InstanceClient#deregisterInstanceFromLoadBalancer
|
||||
* @see InstanceApi#deregisterInstanceFromLoadBalancer
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
@ -32,11 +32,11 @@ import org.jclouds.javax.annotation.Nullable;
|
||||
* <p/>
|
||||
*
|
||||
* @see <a href="http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/APIReference" >doc</a>
|
||||
* @see LoadBalancerAsyncClient
|
||||
* @see LoadBalancerAsyncApi
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Timeout(duration = 30, timeUnit = TimeUnit.SECONDS)
|
||||
public interface LoadBalancerClient {
|
||||
public interface LoadBalancerApi {
|
||||
|
||||
String createLoadBalancerListeningInAvailabilityZones(String name, Iterable<Listener> listeners,
|
||||
Iterable<String> availabilityZones);
|
||||
@ -86,14 +86,14 @@ public interface LoadBalancerClient {
|
||||
* Deletes the specified LoadBalancer.
|
||||
*
|
||||
* <p/>
|
||||
* If attempting to recreate the LoadBalancer, the client must reconfigure all the settings. The
|
||||
* If attempting to recreate the LoadBalancer, the api must reconfigure all the settings. The
|
||||
* DNS name associated with a deleted LoadBalancer will no longer be usable. Once deleted, the
|
||||
* name and associated DNS record of the LoadBalancer no longer exist and traffic sent to any of
|
||||
* its IP addresses will no longer be delivered to client instances. The client will not receive
|
||||
* its IP addresses will no longer be delivered to api instances. The api will not receive
|
||||
* the same DNS name even if a new LoadBalancer with same LoadBalancerName is created.
|
||||
*
|
||||
* <p/>
|
||||
* To successfully call this API, the client must provide the same account credentials as were
|
||||
* To successfully call this API, the api must provide the same account credentials as were
|
||||
* used to create the LoadBalancer.
|
||||
*
|
||||
* <h4>Note</h4>
|
@ -53,14 +53,14 @@ import com.google.common.util.concurrent.ListenableFuture;
|
||||
*
|
||||
* @see <a href="http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/APIReference"
|
||||
* >doc</a>
|
||||
* @see LoadBalancerClient
|
||||
* @see LoadBalancerApi
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@RequestFilters(FormSigner.class)
|
||||
@VirtualHost
|
||||
public interface LoadBalancerAsyncClient {
|
||||
public interface LoadBalancerAsyncApi {
|
||||
/**
|
||||
* @see LoadBalancerClient#createLoadBalancerListeningInAvailabilityZones()
|
||||
* @see LoadBalancerApi#createLoadBalancerListeningInAvailabilityZones()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -71,7 +71,7 @@ public interface LoadBalancerAsyncClient {
|
||||
@BinderParam(BindAvailabilityZonesToIndexedFormParams.class) Iterable<String> availabilityZones);
|
||||
|
||||
/**
|
||||
* @see LoadBalancerClient#createLoadBalancerListeningInAvailabilityZones()
|
||||
* @see LoadBalancerApi#createLoadBalancerListeningInAvailabilityZones()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -82,7 +82,7 @@ public interface LoadBalancerAsyncClient {
|
||||
@BinderParam(BindAvailabilityZonesToIndexedFormParams.class) Iterable<String> availabilityZones);
|
||||
|
||||
/**
|
||||
* @see LoadBalancerClient#createLoadBalancerListeningInSubnetAssignedToSecurityGroups()
|
||||
* @see LoadBalancerApi#createLoadBalancerListeningInSubnetAssignedToSecurityGroups()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -94,7 +94,7 @@ public interface LoadBalancerAsyncClient {
|
||||
@BinderParam(BindSecurityGroupsToIndexedFormParams.class) Iterable<String> securityGroupIds);
|
||||
|
||||
/**
|
||||
* @see LoadBalancerClient#createLoadBalancerListeningInSubnetsAssignedToSecurityGroups()
|
||||
* @see LoadBalancerApi#createLoadBalancerListeningInSubnetsAssignedToSecurityGroups()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -106,7 +106,7 @@ public interface LoadBalancerAsyncClient {
|
||||
@BinderParam(BindSecurityGroupsToIndexedFormParams.class) Iterable<String> securityGroupIds);
|
||||
|
||||
/**
|
||||
* @see LoadBalancerClient#get()
|
||||
* @see LoadBalancerApi#get()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -116,7 +116,7 @@ public interface LoadBalancerAsyncClient {
|
||||
ListenableFuture<LoadBalancer> get(@FormParam("LoadBalancerNames.member.1") String name);
|
||||
|
||||
/**
|
||||
* @see LoadBalancerClient#list()
|
||||
* @see LoadBalancerApi#list()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -125,7 +125,7 @@ public interface LoadBalancerAsyncClient {
|
||||
ListenableFuture<PaginatedIterable<LoadBalancer>> list();
|
||||
|
||||
/**
|
||||
* @see LoadBalancerClient#list(ListLoadBalancersOptions)
|
||||
* @see LoadBalancerApi#list(ListLoadBalancersOptions)
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -134,7 +134,7 @@ public interface LoadBalancerAsyncClient {
|
||||
ListenableFuture<PaginatedIterable<LoadBalancer>> list(ListLoadBalancersOptions options);
|
||||
|
||||
/**
|
||||
* @see LoadBalancerClient#delete()
|
||||
* @see LoadBalancerApi#delete()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
@ -35,7 +35,7 @@ import org.jclouds.javax.annotation.Nullable;
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Timeout(duration = 30, timeUnit = TimeUnit.SECONDS)
|
||||
public interface PolicyClient {
|
||||
public interface PolicyApi {
|
||||
|
||||
/**
|
||||
* Retrieves information about the specified policy.
|
@ -49,15 +49,15 @@ import com.google.common.util.concurrent.ListenableFuture;
|
||||
* <p/>
|
||||
*
|
||||
* @see <a href="http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/APIReference" >doc</a>
|
||||
* @see PolicyClient
|
||||
* @see PolicyApi
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@RequestFilters(FormSigner.class)
|
||||
@VirtualHost
|
||||
public interface PolicyAsyncClient {
|
||||
public interface PolicyAsyncApi {
|
||||
|
||||
/**
|
||||
* @see PolicyClient#get()
|
||||
* @see PolicyApi#get()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -67,7 +67,7 @@ public interface PolicyAsyncClient {
|
||||
ListenableFuture<Policy> get(@FormParam("PolicyNames.member.1") String name);
|
||||
|
||||
/**
|
||||
* @see PolicyClient#list()
|
||||
* @see PolicyApi#list()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -77,7 +77,7 @@ public interface PolicyAsyncClient {
|
||||
ListenableFuture<Set<Policy>> list();
|
||||
|
||||
/**
|
||||
* @see PolicyClient#list(ListPoliciesOptions)
|
||||
* @see PolicyApi#list(ListPoliciesOptions)
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -88,7 +88,7 @@ public interface PolicyAsyncClient {
|
||||
|
||||
|
||||
/**
|
||||
* @see PolicyClient#getType()
|
||||
* @see PolicyApi#getType()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -98,7 +98,7 @@ public interface PolicyAsyncClient {
|
||||
ListenableFuture<PolicyType> getType(@FormParam("PolicyTypeNames.member.1") String name);
|
||||
|
||||
/**
|
||||
* @see PolicyClient#listTypes()
|
||||
* @see PolicyApi#listTypes()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -108,7 +108,7 @@ public interface PolicyAsyncClient {
|
||||
ListenableFuture<Set<PolicyType>> listTypes();
|
||||
|
||||
/**
|
||||
* @see PolicyClient#listTypes(Iterable<String>)
|
||||
* @see PolicyApi#listTypes(Iterable<String>)
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
@ -52,4 +52,4 @@ public class ELBBindLoadBalancerStrategiesByClass extends BindLoadBalancerStrate
|
||||
protected Class<? extends ListLoadBalancersStrategy> defineListLoadBalancersStrategy() {
|
||||
return ELBListLoadBalancersStrategy.class;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -72,4 +72,4 @@ public class LoadBalancerToLoadBalancerMetadata implements Function<LoadBalancer
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.elb.ELBClient;
|
||||
import org.jclouds.elb.ELBApi;
|
||||
import org.jclouds.loadbalancer.domain.LoadBalancerMetadata;
|
||||
import org.jclouds.loadbalancer.reference.LoadBalancerConstants;
|
||||
import org.jclouds.loadbalancer.strategy.DestroyLoadBalancerStrategy;
|
||||
@ -43,12 +43,12 @@ public class ELBDestroyLoadBalancerStrategy implements DestroyLoadBalancerStrate
|
||||
@Named(LoadBalancerConstants.LOADBALANCER_LOGGER)
|
||||
protected Logger logger = Logger.NULL;
|
||||
|
||||
private final ELBClient elbClient;
|
||||
private final ELBApi elbApi;
|
||||
private final GetLoadBalancerMetadataStrategy getLoadBalancer;
|
||||
|
||||
@Inject
|
||||
protected ELBDestroyLoadBalancerStrategy(ELBClient elbClient, GetLoadBalancerMetadataStrategy getLoadBalancer) {
|
||||
this.elbClient = checkNotNull(elbClient, "elbClient");
|
||||
protected ELBDestroyLoadBalancerStrategy(ELBApi elbApi, GetLoadBalancerMetadataStrategy getLoadBalancer) {
|
||||
this.elbApi = checkNotNull(elbApi, "elbApi");
|
||||
this.getLoadBalancer = checkNotNull(getLoadBalancer, "getLoadBalancer");
|
||||
}
|
||||
|
||||
@ -57,7 +57,7 @@ public class ELBDestroyLoadBalancerStrategy implements DestroyLoadBalancerStrate
|
||||
String[] parts = parseHandle(id);
|
||||
String region = parts[0];
|
||||
String instanceId = parts[1];
|
||||
elbClient.getLoadBalancerClientForRegion(region).delete(instanceId);
|
||||
elbApi.getLoadBalancerApiForRegion(region).delete(instanceId);
|
||||
return getLoadBalancer.getLoadBalancer(id);
|
||||
}
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ import static org.jclouds.aws.util.AWSUtils.parseHandle;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.elb.ELBClient;
|
||||
import org.jclouds.elb.ELBApi;
|
||||
import org.jclouds.elb.domain.LoadBalancer;
|
||||
import org.jclouds.elb.domain.regionscoped.LoadBalancerInRegion;
|
||||
import org.jclouds.loadbalancer.domain.LoadBalancerMetadata;
|
||||
@ -39,13 +39,13 @@ import com.google.common.base.Function;
|
||||
@Singleton
|
||||
public class ELBGetLoadBalancerMetadataStrategy implements GetLoadBalancerMetadataStrategy {
|
||||
|
||||
private final ELBClient client;
|
||||
private final ELBApi api;
|
||||
private final Function<LoadBalancerInRegion, LoadBalancerMetadata> converter;
|
||||
|
||||
@Inject
|
||||
protected ELBGetLoadBalancerMetadataStrategy(ELBClient client,
|
||||
protected ELBGetLoadBalancerMetadataStrategy(ELBApi api,
|
||||
Function<LoadBalancerInRegion, LoadBalancerMetadata> converter) {
|
||||
this.client = checkNotNull(client, "client");
|
||||
this.api = checkNotNull(api, "api");
|
||||
this.converter = checkNotNull(converter, "converter");
|
||||
}
|
||||
|
||||
@ -54,8 +54,8 @@ public class ELBGetLoadBalancerMetadataStrategy implements GetLoadBalancerMetada
|
||||
String[] parts = parseHandle(id);
|
||||
String region = parts[0];
|
||||
String name = parts[1];
|
||||
LoadBalancer input = client.getLoadBalancerClientForRegion(region).get(name);
|
||||
LoadBalancer input = api.getLoadBalancerApiForRegion(region).get(name);
|
||||
return input != null ? converter.apply(new LoadBalancerInRegion(input, region)) : null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.Constants;
|
||||
import org.jclouds.concurrent.Futures;
|
||||
import org.jclouds.elb.ELBAsyncClient;
|
||||
import org.jclouds.elb.ELBAsyncApi;
|
||||
import org.jclouds.elb.domain.LoadBalancer;
|
||||
import org.jclouds.elb.domain.regionscoped.LoadBalancerInRegion;
|
||||
import org.jclouds.loadbalancer.domain.LoadBalancerMetadata;
|
||||
@ -58,16 +58,16 @@ public class ELBListLoadBalancersStrategy implements ListLoadBalancersStrategy {
|
||||
@Named(LoadBalancerConstants.LOADBALANCER_LOGGER)
|
||||
protected Logger logger = Logger.NULL;
|
||||
|
||||
private final ELBAsyncClient aclient;
|
||||
private final ELBAsyncApi aapi;
|
||||
private final Function<LoadBalancerInRegion, LoadBalancerMetadata> converter;
|
||||
private final ExecutorService executor;
|
||||
private final Supplier<Set<String>> regions;
|
||||
|
||||
@Inject
|
||||
protected ELBListLoadBalancersStrategy(ELBAsyncClient aclient,
|
||||
protected ELBListLoadBalancersStrategy(ELBAsyncApi aapi,
|
||||
Function<LoadBalancerInRegion, LoadBalancerMetadata> converter,
|
||||
@Named(Constants.PROPERTY_USER_THREADS) ExecutorService executor, @Region Supplier<Set<String>> regions) {
|
||||
this.aclient = checkNotNull(aclient, "aclient");
|
||||
this.aapi = checkNotNull(aapi, "aapi");
|
||||
this.regions = checkNotNull(regions, "regions");
|
||||
this.converter = checkNotNull(converter, "converter");
|
||||
this.executor = checkNotNull(executor, "executor");
|
||||
@ -82,7 +82,7 @@ public class ELBListLoadBalancersStrategy implements ListLoadBalancersStrategy {
|
||||
@Override
|
||||
public ListenableFuture<? extends Iterable<LoadBalancerInRegion>> apply(final String from) {
|
||||
// TODO: ELB.listLoadBalancers
|
||||
return Futures.compose(aclient.getLoadBalancerClientForRegion(from).list(),
|
||||
return Futures.compose(aapi.getLoadBalancerApiForRegion(from).list(),
|
||||
new Function<Iterable<LoadBalancer>, Iterable<LoadBalancerInRegion>>() {
|
||||
|
||||
@Override
|
||||
|
@ -34,7 +34,7 @@ import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.compute.domain.NodeMetadata;
|
||||
import org.jclouds.domain.Location;
|
||||
import org.jclouds.elb.ELBClient;
|
||||
import org.jclouds.elb.ELBApi;
|
||||
import org.jclouds.elb.domain.Listener;
|
||||
import org.jclouds.elb.domain.Protocol;
|
||||
import org.jclouds.elb.domain.regionscoped.LoadBalancerInRegion;
|
||||
@ -56,13 +56,13 @@ public class ELBLoadBalanceNodesStrategy implements LoadBalanceNodesStrategy {
|
||||
@Resource
|
||||
@Named(LoadBalancerConstants.LOADBALANCER_LOGGER)
|
||||
protected Logger logger = Logger.NULL;
|
||||
protected final ELBClient client;
|
||||
protected final ELBApi api;
|
||||
protected final Function<LoadBalancerInRegion, LoadBalancerMetadata> converter;
|
||||
|
||||
@Inject
|
||||
protected ELBLoadBalanceNodesStrategy(ELBClient client,
|
||||
protected ELBLoadBalanceNodesStrategy(ELBApi api,
|
||||
Function<LoadBalancerInRegion, LoadBalancerMetadata> converter) {
|
||||
this.client = checkNotNull(client, "client");
|
||||
this.api = checkNotNull(api, "api");
|
||||
this.converter = checkNotNull(converter, "converter");
|
||||
}
|
||||
|
||||
@ -82,20 +82,20 @@ public class ELBLoadBalanceNodesStrategy implements LoadBalanceNodesStrategy {
|
||||
|
||||
logger.debug(">> creating loadBalancer(%s) in zones(%s)", name, zonesDesired);
|
||||
try {
|
||||
String dnsName = client.getLoadBalancerClientForRegion(region).createLoadBalancerListeningInAvailabilityZones(
|
||||
String dnsName = api.getLoadBalancerApiForRegion(region).createLoadBalancerListeningInAvailabilityZones(
|
||||
name,
|
||||
ImmutableSet.of(Listener.builder().port(loadBalancerPort).instancePort(instancePort)
|
||||
.protocol(Protocol.valueOf(protocol)).build()), zonesDesired);
|
||||
logger.debug("<< created loadBalancer(%s) dnsName(%s)", name, dnsName);
|
||||
} catch (IllegalStateException e) {
|
||||
logger.debug("<< converging zones(%s) in loadBalancer(%s)", zonesDesired, name);
|
||||
Set<String> currentZones = client.getLoadBalancerClient().get(name).getAvailabilityZones();
|
||||
Set<String> currentZones = api.getLoadBalancerApi().get(name).getAvailabilityZones();
|
||||
Set<String> zonesToAdd = Sets.difference(zonesDesired, currentZones);
|
||||
if (zonesToAdd.size() > 0)
|
||||
currentZones = client.getAvailabilityZoneClient().addAvailabilityZonesToLoadBalancer(zonesToAdd, name);
|
||||
currentZones = api.getAvailabilityZoneApi().addAvailabilityZonesToLoadBalancer(zonesToAdd, name);
|
||||
Set<String> zonesToRemove = Sets.difference(currentZones, zonesDesired);
|
||||
if (zonesToRemove.size() > 0)
|
||||
client.getAvailabilityZoneClient().removeAvailabilityZonesFromLoadBalancer(zonesToRemove, name);
|
||||
api.getAvailabilityZoneApi().removeAvailabilityZonesFromLoadBalancer(zonesToRemove, name);
|
||||
}
|
||||
|
||||
Set<String> instanceIds = ImmutableSet.copyOf(transform(nodes, new Function<NodeMetadata, String>() {
|
||||
@ -107,16 +107,16 @@ public class ELBLoadBalanceNodesStrategy implements LoadBalanceNodesStrategy {
|
||||
}));
|
||||
|
||||
logger.debug(">> converging loadBalancer(%s) to instances(%s)", name, instanceIds);
|
||||
Set<String> registeredInstanceIds = client.getInstanceClientForRegion(region).registerInstancesWithLoadBalancer(
|
||||
Set<String> registeredInstanceIds = api.getInstanceApiForRegion(region).registerInstancesWithLoadBalancer(
|
||||
instanceIds, name);
|
||||
|
||||
Set<String> instancesToRemove = filter(registeredInstanceIds, not(in(instanceIds)));
|
||||
if (instancesToRemove.size() > 0) {
|
||||
logger.debug(">> deregistering instances(%s) from loadBalancer(%s)", instancesToRemove, name);
|
||||
client.getInstanceClientForRegion(region).deregisterInstancesFromLoadBalancer(instancesToRemove, name);
|
||||
api.getInstanceApiForRegion(region).deregisterInstancesFromLoadBalancer(instancesToRemove, name);
|
||||
}
|
||||
logger.debug("<< converged loadBalancer(%s) ", name);
|
||||
|
||||
return converter.apply(new LoadBalancerInRegion(client.getLoadBalancerClientForRegion(region).get(name), region));
|
||||
return converter.apply(new LoadBalancerInRegion(api.getLoadBalancerApiForRegion(region).get(name), region));
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ import org.easymock.EasyMock;
|
||||
import org.jclouds.collect.PaginatedIterable;
|
||||
import org.jclouds.collect.PaginatedIterables;
|
||||
import org.jclouds.elb.domain.LoadBalancer;
|
||||
import org.jclouds.elb.features.LoadBalancerClient;
|
||||
import org.jclouds.elb.features.LoadBalancerApi;
|
||||
import org.jclouds.elb.options.ListLoadBalancersOptions;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
@ -27,37 +27,37 @@ public class ELBTest {
|
||||
|
||||
@Test
|
||||
public void testSinglePageResult() throws Exception {
|
||||
LoadBalancerClient loadBalancerClient = createMock(LoadBalancerClient.class);
|
||||
LoadBalancerApi loadBalancerApi = createMock(LoadBalancerApi.class);
|
||||
ListLoadBalancersOptions options = new ListLoadBalancersOptions();
|
||||
PaginatedIterable<LoadBalancer> response = PaginatedIterables.forward(ImmutableSet.of(createMock(LoadBalancer.class)));
|
||||
|
||||
expect(loadBalancerClient.list(options))
|
||||
expect(loadBalancerApi.list(options))
|
||||
.andReturn(response)
|
||||
.once();
|
||||
|
||||
EasyMock.replay(loadBalancerClient);
|
||||
EasyMock.replay(loadBalancerApi);
|
||||
|
||||
Assert.assertEquals(1, Iterables.size(ELB.listLoadBalancers(loadBalancerClient, options)));
|
||||
Assert.assertEquals(1, Iterables.size(ELB.listLoadBalancers(loadBalancerApi, options)));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testMultiPageResult() throws Exception {
|
||||
LoadBalancerClient loadBalancerClient = createMock(LoadBalancerClient.class);
|
||||
LoadBalancerApi loadBalancerApi = createMock(LoadBalancerApi.class);
|
||||
ListLoadBalancersOptions options = new ListLoadBalancersOptions();
|
||||
PaginatedIterable<LoadBalancer> response1 = PaginatedIterables.forwardWithMarker(ImmutableSet.of(createMock(LoadBalancer.class)), "NEXTTOKEN");
|
||||
PaginatedIterable<LoadBalancer> response2 = PaginatedIterables.forward(ImmutableSet.of(createMock(LoadBalancer.class)));
|
||||
|
||||
expect(loadBalancerClient.list(anyObject(ListLoadBalancersOptions.class)))
|
||||
expect(loadBalancerApi.list(anyObject(ListLoadBalancersOptions.class)))
|
||||
.andReturn(response1)
|
||||
.once();
|
||||
expect(loadBalancerClient.list(anyObject(ListLoadBalancersOptions.class)))
|
||||
expect(loadBalancerApi.list(anyObject(ListLoadBalancersOptions.class)))
|
||||
.andReturn(response2)
|
||||
.once();
|
||||
|
||||
EasyMock.replay(loadBalancerClient);
|
||||
EasyMock.replay(loadBalancerApi);
|
||||
|
||||
Assert.assertEquals(2, Iterables.size(ELB.listLoadBalancers(loadBalancerClient, options)));
|
||||
Assert.assertEquals(2, Iterables.size(ELB.listLoadBalancers(loadBalancerApi, options)));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -23,8 +23,8 @@ import static org.testng.Assert.assertEquals;
|
||||
import java.net.URI;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import org.jclouds.elb.ELBClient;
|
||||
import org.jclouds.elb.internal.BaseELBClientExpectTest;
|
||||
import org.jclouds.elb.ELBApi;
|
||||
import org.jclouds.elb.internal.BaseELBApiExpectTest;
|
||||
import org.jclouds.elb.parse.AvailabilityZonesResultHandlerTest;
|
||||
import org.jclouds.http.HttpRequest;
|
||||
import org.jclouds.http.HttpResponse;
|
||||
@ -37,10 +37,10 @@ import com.google.common.collect.ImmutableSet;
|
||||
/**
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "unit", testName = "AvailabilityZoneClientExpectTest")
|
||||
public class AvailabilityZoneClientExpectTest extends BaseELBClientExpectTest {
|
||||
@Test(groups = "unit", testName = "AvailabilityZoneApiExpectTest")
|
||||
public class AvailabilityZoneApiExpectTest extends BaseELBApiExpectTest {
|
||||
|
||||
public AvailabilityZoneClientExpectTest() {
|
||||
public AvailabilityZoneApiExpectTest() {
|
||||
TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
|
||||
}
|
||||
|
||||
@ -70,10 +70,10 @@ public class AvailabilityZoneClientExpectTest extends BaseELBClientExpectTest {
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/zones.xml", "text/xml")).build();
|
||||
|
||||
ELBClient clientWhenExist = requestSendsResponse(
|
||||
ELBApi apiWhenExist = requestSendsResponse(
|
||||
addZoneToLoadBalancer, getResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getAvailabilityZoneClient().addAvailabilityZoneToLoadBalancer("us-east-1a", "name").toString(), new AvailabilityZonesResultHandlerTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getAvailabilityZoneApi().addAvailabilityZoneToLoadBalancer("us-east-1a", "name").toString(), new AvailabilityZonesResultHandlerTest().expected().toString());
|
||||
}
|
||||
|
||||
@Test(expectedExceptions = ResourceNotFoundException.class)
|
||||
@ -81,10 +81,10 @@ public class AvailabilityZoneClientExpectTest extends BaseELBClientExpectTest {
|
||||
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
ELBClient clientWhenDontExist = requestSendsResponse(
|
||||
ELBApi apiWhenDontExist = requestSendsResponse(
|
||||
addZoneToLoadBalancer, getResponse);
|
||||
|
||||
clientWhenDontExist.getAvailabilityZoneClient().addAvailabilityZoneToLoadBalancer("us-east-1a", "name");
|
||||
apiWhenDontExist.getAvailabilityZoneApi().addAvailabilityZoneToLoadBalancer("us-east-1a", "name");
|
||||
}
|
||||
|
||||
HttpRequest addZonesToLoadBalancer = HttpRequest.builder()
|
||||
@ -114,10 +114,10 @@ public class AvailabilityZoneClientExpectTest extends BaseELBClientExpectTest {
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/zones.xml", "text/xml")).build();
|
||||
|
||||
ELBClient clientWhenExist = requestSendsResponse(addZonesToLoadBalancer, getResponse);
|
||||
ELBApi apiWhenExist = requestSendsResponse(addZonesToLoadBalancer, getResponse);
|
||||
|
||||
assertEquals(
|
||||
clientWhenExist.getAvailabilityZoneClient().addAvailabilityZonesToLoadBalancer(ImmutableSet.of("us-east-1a", "us-east-1b"), "name")
|
||||
apiWhenExist.getAvailabilityZoneApi().addAvailabilityZonesToLoadBalancer(ImmutableSet.of("us-east-1a", "us-east-1b"), "name")
|
||||
.toString(), new AvailabilityZonesResultHandlerTest().expected().toString());
|
||||
}
|
||||
|
||||
@ -126,9 +126,9 @@ public class AvailabilityZoneClientExpectTest extends BaseELBClientExpectTest {
|
||||
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
ELBClient clientWhenDontExist = requestSendsResponse(addZonesToLoadBalancer, getResponse);
|
||||
ELBApi apiWhenDontExist = requestSendsResponse(addZonesToLoadBalancer, getResponse);
|
||||
|
||||
clientWhenDontExist.getAvailabilityZoneClient().addAvailabilityZonesToLoadBalancer(ImmutableSet.of("us-east-1a", "us-east-1b"), "name");
|
||||
apiWhenDontExist.getAvailabilityZoneApi().addAvailabilityZonesToLoadBalancer(ImmutableSet.of("us-east-1a", "us-east-1b"), "name");
|
||||
}
|
||||
|
||||
|
||||
@ -158,10 +158,10 @@ public class AvailabilityZoneClientExpectTest extends BaseELBClientExpectTest {
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/zones.xml", "text/xml")).build();
|
||||
|
||||
ELBClient clientWhenExist = requestSendsResponse(
|
||||
ELBApi apiWhenExist = requestSendsResponse(
|
||||
removeZoneFromLoadBalancer, getResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getAvailabilityZoneClient().removeAvailabilityZoneFromLoadBalancer("us-east-1a", "name").toString(), new AvailabilityZonesResultHandlerTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getAvailabilityZoneApi().removeAvailabilityZoneFromLoadBalancer("us-east-1a", "name").toString(), new AvailabilityZonesResultHandlerTest().expected().toString());
|
||||
}
|
||||
|
||||
@Test(expectedExceptions = ResourceNotFoundException.class)
|
||||
@ -169,10 +169,10 @@ public class AvailabilityZoneClientExpectTest extends BaseELBClientExpectTest {
|
||||
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
ELBClient clientWhenDontExist = requestSendsResponse(
|
||||
ELBApi apiWhenDontExist = requestSendsResponse(
|
||||
removeZoneFromLoadBalancer, getResponse);
|
||||
|
||||
clientWhenDontExist.getAvailabilityZoneClient().removeAvailabilityZoneFromLoadBalancer("us-east-1a", "name");
|
||||
apiWhenDontExist.getAvailabilityZoneApi().removeAvailabilityZoneFromLoadBalancer("us-east-1a", "name");
|
||||
}
|
||||
|
||||
HttpRequest removeZonesFromLoadBalancer = HttpRequest.builder()
|
||||
@ -202,10 +202,10 @@ public class AvailabilityZoneClientExpectTest extends BaseELBClientExpectTest {
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/zones.xml", "text/xml")).build();
|
||||
|
||||
ELBClient clientWhenExist = requestSendsResponse(removeZonesFromLoadBalancer, getResponse);
|
||||
ELBApi apiWhenExist = requestSendsResponse(removeZonesFromLoadBalancer, getResponse);
|
||||
|
||||
assertEquals(
|
||||
clientWhenExist.getAvailabilityZoneClient().removeAvailabilityZonesFromLoadBalancer(ImmutableSet.of("us-east-1a", "us-east-1b"), "name")
|
||||
apiWhenExist.getAvailabilityZoneApi().removeAvailabilityZonesFromLoadBalancer(ImmutableSet.of("us-east-1a", "us-east-1b"), "name")
|
||||
.toString(), new AvailabilityZonesResultHandlerTest().expected().toString());
|
||||
}
|
||||
|
||||
@ -214,8 +214,8 @@ public class AvailabilityZoneClientExpectTest extends BaseELBClientExpectTest {
|
||||
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
ELBClient clientWhenDontExist = requestSendsResponse(removeZonesFromLoadBalancer, getResponse);
|
||||
ELBApi apiWhenDontExist = requestSendsResponse(removeZonesFromLoadBalancer, getResponse);
|
||||
|
||||
clientWhenDontExist.getAvailabilityZoneClient().removeAvailabilityZonesFromLoadBalancer(ImmutableSet.of("us-east-1a", "us-east-1b"), "name");
|
||||
apiWhenDontExist.getAvailabilityZoneApi().removeAvailabilityZonesFromLoadBalancer(ImmutableSet.of("us-east-1a", "us-east-1b"), "name");
|
||||
}
|
||||
}
|
@ -18,16 +18,16 @@
|
||||
*/
|
||||
package org.jclouds.elb.features;
|
||||
|
||||
import org.jclouds.elb.internal.BaseELBClientLiveTest;
|
||||
import org.jclouds.elb.internal.BaseELBApiLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live", testName = "AvailabilityZoneClientLiveTest")
|
||||
public class AvailabilityZoneClientLiveTest extends BaseELBClientLiveTest {
|
||||
@Test(groups = "live", testName = "AvailabilityZoneApiLiveTest")
|
||||
public class AvailabilityZoneApiLiveTest extends BaseELBApiLiveTest {
|
||||
|
||||
protected AvailabilityZoneClient client() {
|
||||
return context.getApi().getAvailabilityZoneClient();
|
||||
protected AvailabilityZoneApi api() {
|
||||
return context.getApi().getAvailabilityZoneApi();
|
||||
}
|
||||
}
|
@ -23,8 +23,8 @@ import static org.testng.Assert.assertEquals;
|
||||
import java.net.URI;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import org.jclouds.elb.ELBClient;
|
||||
import org.jclouds.elb.internal.BaseELBClientExpectTest;
|
||||
import org.jclouds.elb.ELBApi;
|
||||
import org.jclouds.elb.internal.BaseELBApiExpectTest;
|
||||
import org.jclouds.elb.parse.DescribeInstanceHealthResponseTest;
|
||||
import org.jclouds.elb.parse.InstancesResultHandlerTest;
|
||||
import org.jclouds.http.HttpRequest;
|
||||
@ -38,10 +38,10 @@ import com.google.common.collect.ImmutableSet;
|
||||
/**
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "unit", testName = "InstanceClientExpectTest")
|
||||
public class InstanceClientExpectTest extends BaseELBClientExpectTest {
|
||||
@Test(groups = "unit", testName = "InstanceApiExpectTest")
|
||||
public class InstanceApiExpectTest extends BaseELBApiExpectTest {
|
||||
|
||||
public InstanceClientExpectTest() {
|
||||
public InstanceApiExpectTest() {
|
||||
TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
|
||||
}
|
||||
|
||||
@ -70,20 +70,20 @@ public class InstanceClientExpectTest extends BaseELBClientExpectTest {
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/describe_instancehealth.xml", "text/xml")).build();
|
||||
|
||||
ELBClient clientWhenExist = requestSendsResponse(
|
||||
ELBApi apiWhenExist = requestSendsResponse(
|
||||
get, getResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getInstanceClient().getHealthOfInstancesOfLoadBalancer("name").toString(), new DescribeInstanceHealthResponseTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getInstanceApi().getHealthOfInstancesOfLoadBalancer("name").toString(), new DescribeInstanceHealthResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
public void testGetHealthOfInstancesOfLoadBalancerWhenResponseIs404() throws Exception {
|
||||
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
ELBClient clientWhenDontExist = requestSendsResponse(
|
||||
ELBApi apiWhenDontExist = requestSendsResponse(
|
||||
get, getResponse);
|
||||
|
||||
assertEquals(clientWhenDontExist.getInstanceClient().getHealthOfInstancesOfLoadBalancer("name"), ImmutableSet.of());
|
||||
assertEquals(apiWhenDontExist.getInstanceApi().getHealthOfInstancesOfLoadBalancer("name"), ImmutableSet.of());
|
||||
}
|
||||
|
||||
HttpRequest registerInstanceWithLoadBalancer = HttpRequest.builder()
|
||||
@ -112,10 +112,10 @@ public class InstanceClientExpectTest extends BaseELBClientExpectTest {
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/instances.xml", "text/xml")).build();
|
||||
|
||||
ELBClient clientWhenExist = requestSendsResponse(
|
||||
ELBApi apiWhenExist = requestSendsResponse(
|
||||
registerInstanceWithLoadBalancer, getResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getInstanceClient().registerInstanceWithLoadBalancer("i-6055fa09", "name").toString(), new InstancesResultHandlerTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getInstanceApi().registerInstanceWithLoadBalancer("i-6055fa09", "name").toString(), new InstancesResultHandlerTest().expected().toString());
|
||||
}
|
||||
|
||||
@Test(expectedExceptions = ResourceNotFoundException.class)
|
||||
@ -123,10 +123,10 @@ public class InstanceClientExpectTest extends BaseELBClientExpectTest {
|
||||
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
ELBClient clientWhenDontExist = requestSendsResponse(
|
||||
ELBApi apiWhenDontExist = requestSendsResponse(
|
||||
registerInstanceWithLoadBalancer, getResponse);
|
||||
|
||||
clientWhenDontExist.getInstanceClient().registerInstanceWithLoadBalancer("i-6055fa09", "name");
|
||||
apiWhenDontExist.getInstanceApi().registerInstanceWithLoadBalancer("i-6055fa09", "name");
|
||||
}
|
||||
|
||||
HttpRequest registerInstancesWithLoadBalancer = HttpRequest.builder()
|
||||
@ -156,10 +156,10 @@ public class InstanceClientExpectTest extends BaseELBClientExpectTest {
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/instances.xml", "text/xml")).build();
|
||||
|
||||
ELBClient clientWhenExist = requestSendsResponse(registerInstancesWithLoadBalancer, getResponse);
|
||||
ELBApi apiWhenExist = requestSendsResponse(registerInstancesWithLoadBalancer, getResponse);
|
||||
|
||||
assertEquals(
|
||||
clientWhenExist.getInstanceClient().registerInstancesWithLoadBalancer(ImmutableSet.of("i-6055fa09", "i-9055fa55"), "name")
|
||||
apiWhenExist.getInstanceApi().registerInstancesWithLoadBalancer(ImmutableSet.of("i-6055fa09", "i-9055fa55"), "name")
|
||||
.toString(), new InstancesResultHandlerTest().expected().toString());
|
||||
}
|
||||
|
||||
@ -168,9 +168,9 @@ public class InstanceClientExpectTest extends BaseELBClientExpectTest {
|
||||
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
ELBClient clientWhenDontExist = requestSendsResponse(registerInstancesWithLoadBalancer, getResponse);
|
||||
ELBApi apiWhenDontExist = requestSendsResponse(registerInstancesWithLoadBalancer, getResponse);
|
||||
|
||||
clientWhenDontExist.getInstanceClient().registerInstancesWithLoadBalancer(ImmutableSet.of("i-6055fa09", "i-9055fa55"), "name");
|
||||
apiWhenDontExist.getInstanceApi().registerInstancesWithLoadBalancer(ImmutableSet.of("i-6055fa09", "i-9055fa55"), "name");
|
||||
}
|
||||
|
||||
|
||||
@ -200,10 +200,10 @@ public class InstanceClientExpectTest extends BaseELBClientExpectTest {
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/instances.xml", "text/xml")).build();
|
||||
|
||||
ELBClient clientWhenExist = requestSendsResponse(
|
||||
ELBApi apiWhenExist = requestSendsResponse(
|
||||
deregisterInstanceFromLoadBalancer, getResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getInstanceClient().deregisterInstanceFromLoadBalancer("i-6055fa09", "name").toString(), new InstancesResultHandlerTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getInstanceApi().deregisterInstanceFromLoadBalancer("i-6055fa09", "name").toString(), new InstancesResultHandlerTest().expected().toString());
|
||||
}
|
||||
|
||||
@Test(expectedExceptions = ResourceNotFoundException.class)
|
||||
@ -211,10 +211,10 @@ public class InstanceClientExpectTest extends BaseELBClientExpectTest {
|
||||
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
ELBClient clientWhenDontExist = requestSendsResponse(
|
||||
ELBApi apiWhenDontExist = requestSendsResponse(
|
||||
deregisterInstanceFromLoadBalancer, getResponse);
|
||||
|
||||
clientWhenDontExist.getInstanceClient().deregisterInstanceFromLoadBalancer("i-6055fa09", "name");
|
||||
apiWhenDontExist.getInstanceApi().deregisterInstanceFromLoadBalancer("i-6055fa09", "name");
|
||||
}
|
||||
|
||||
HttpRequest deregisterInstancesFromLoadBalancer = HttpRequest.builder()
|
||||
@ -244,10 +244,10 @@ public class InstanceClientExpectTest extends BaseELBClientExpectTest {
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/instances.xml", "text/xml")).build();
|
||||
|
||||
ELBClient clientWhenExist = requestSendsResponse(deregisterInstancesFromLoadBalancer, getResponse);
|
||||
ELBApi apiWhenExist = requestSendsResponse(deregisterInstancesFromLoadBalancer, getResponse);
|
||||
|
||||
assertEquals(
|
||||
clientWhenExist.getInstanceClient().deregisterInstancesFromLoadBalancer(ImmutableSet.of("i-6055fa09", "i-9055fa55"), "name")
|
||||
apiWhenExist.getInstanceApi().deregisterInstancesFromLoadBalancer(ImmutableSet.of("i-6055fa09", "i-9055fa55"), "name")
|
||||
.toString(), new InstancesResultHandlerTest().expected().toString());
|
||||
}
|
||||
|
||||
@ -256,8 +256,8 @@ public class InstanceClientExpectTest extends BaseELBClientExpectTest {
|
||||
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
ELBClient clientWhenDontExist = requestSendsResponse(deregisterInstancesFromLoadBalancer, getResponse);
|
||||
ELBApi apiWhenDontExist = requestSendsResponse(deregisterInstancesFromLoadBalancer, getResponse);
|
||||
|
||||
clientWhenDontExist.getInstanceClient().deregisterInstancesFromLoadBalancer(ImmutableSet.of("i-6055fa09", "i-9055fa55"), "name");
|
||||
apiWhenDontExist.getInstanceApi().deregisterInstancesFromLoadBalancer(ImmutableSet.of("i-6055fa09", "i-9055fa55"), "name");
|
||||
}
|
||||
}
|
@ -24,7 +24,7 @@ import java.util.Set;
|
||||
|
||||
import org.jclouds.elb.domain.InstanceHealth;
|
||||
import org.jclouds.elb.domain.LoadBalancer;
|
||||
import org.jclouds.elb.internal.BaseELBClientLiveTest;
|
||||
import org.jclouds.elb.internal.BaseELBApiLiveTest;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
@ -33,8 +33,8 @@ import com.google.common.collect.ImmutableSet;
|
||||
/**
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live", testName = "InstanceClientLiveTest")
|
||||
public class InstanceClientLiveTest extends BaseELBClientLiveTest {
|
||||
@Test(groups = "live", testName = "InstanceApiLiveTest")
|
||||
public class InstanceApiLiveTest extends BaseELBApiLiveTest {
|
||||
|
||||
private void checkInstanceState(InstanceHealth instanceState) {
|
||||
checkNotNull(instanceState.getDescription(), "Description cannot be null for InstanceState");
|
||||
@ -46,8 +46,8 @@ public class InstanceClientLiveTest extends BaseELBClientLiveTest {
|
||||
|
||||
@Test
|
||||
protected void testListInstanceStates() {
|
||||
for (LoadBalancer loadBalancer : context.getApi().getLoadBalancerClient().list()) {
|
||||
Set<InstanceHealth> response = client().getHealthOfInstancesOfLoadBalancer(loadBalancer.getName());
|
||||
for (LoadBalancer loadBalancer : context.getApi().getLoadBalancerApi().list()) {
|
||||
Set<InstanceHealth> response = api().getHealthOfInstancesOfLoadBalancer(loadBalancer.getName());
|
||||
|
||||
for (InstanceHealth instanceState : response) {
|
||||
checkInstanceState(instanceState);
|
||||
@ -56,14 +56,14 @@ public class InstanceClientLiveTest extends BaseELBClientLiveTest {
|
||||
if (response.size() > 0) {
|
||||
InstanceHealth instanceState = response.iterator().next();
|
||||
Assert.assertEquals(
|
||||
ImmutableSet.of(client().getHealthOfInstancesOfLoadBalancer(ImmutableSet.of(instanceState.getInstanceId()),
|
||||
ImmutableSet.of(api().getHealthOfInstancesOfLoadBalancer(ImmutableSet.of(instanceState.getInstanceId()),
|
||||
loadBalancer.getName())), instanceState);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected InstanceClient client() {
|
||||
return context.getApi().getInstanceClient();
|
||||
protected InstanceApi api() {
|
||||
return context.getApi().getInstanceApi();
|
||||
}
|
||||
}
|
@ -25,8 +25,8 @@ import static org.testng.Assert.assertNull;
|
||||
import java.net.URI;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import org.jclouds.elb.ELBClient;
|
||||
import org.jclouds.elb.internal.BaseELBClientExpectTest;
|
||||
import org.jclouds.elb.ELBApi;
|
||||
import org.jclouds.elb.internal.BaseELBApiExpectTest;
|
||||
import org.jclouds.elb.parse.DescribeLoadBalancersResponseTest;
|
||||
import org.jclouds.elb.parse.GetLoadBalancerResponseTest;
|
||||
import org.jclouds.http.HttpRequest;
|
||||
@ -39,10 +39,10 @@ import com.google.common.collect.ImmutableMultimap;
|
||||
/**
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "unit", testName = "LoadBalancerClientExpectTest")
|
||||
public class LoadBalancerClientExpectTest extends BaseELBClientExpectTest {
|
||||
@Test(groups = "unit", testName = "LoadBalancerApiExpectTest")
|
||||
public class LoadBalancerApiExpectTest extends BaseELBApiExpectTest {
|
||||
|
||||
public LoadBalancerClientExpectTest() {
|
||||
public LoadBalancerApiExpectTest() {
|
||||
TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
|
||||
}
|
||||
|
||||
@ -71,20 +71,20 @@ public class LoadBalancerClientExpectTest extends BaseELBClientExpectTest {
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/describe_loadbalancers.xml", "text/xml")).build();
|
||||
|
||||
ELBClient clientWhenExist = requestSendsResponse(
|
||||
ELBApi apiWhenExist = requestSendsResponse(
|
||||
get, getResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getLoadBalancerClient().get("name").toString(), new GetLoadBalancerResponseTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getLoadBalancerApi().get("name").toString(), new GetLoadBalancerResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
public void testGetWhenResponseIs404() throws Exception {
|
||||
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
ELBClient clientWhenDontExist = requestSendsResponse(
|
||||
ELBApi apiWhenDontExist = requestSendsResponse(
|
||||
get, getResponse);
|
||||
|
||||
assertNull(clientWhenDontExist.getLoadBalancerClient().get("name"));
|
||||
assertNull(apiWhenDontExist.getLoadBalancerApi().get("name"));
|
||||
}
|
||||
|
||||
HttpRequest list = HttpRequest.builder()
|
||||
@ -110,10 +110,10 @@ public class LoadBalancerClientExpectTest extends BaseELBClientExpectTest {
|
||||
HttpResponse listResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/describe_loadbalancers.xml", "text/xml")).build();
|
||||
|
||||
ELBClient clientWhenExist = requestSendsResponse(
|
||||
ELBApi apiWhenExist = requestSendsResponse(
|
||||
list, listResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getLoadBalancerClient().list().toString(), new DescribeLoadBalancersResponseTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getLoadBalancerApi().list().toString(), new DescribeLoadBalancersResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
// TODO: this should really be an empty set
|
||||
@ -122,10 +122,10 @@ public class LoadBalancerClientExpectTest extends BaseELBClientExpectTest {
|
||||
|
||||
HttpResponse listResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
ELBClient clientWhenDontExist = requestSendsResponse(
|
||||
ELBApi apiWhenDontExist = requestSendsResponse(
|
||||
list, listResponse);
|
||||
|
||||
clientWhenDontExist.getLoadBalancerClient().list();
|
||||
apiWhenDontExist.getLoadBalancerApi().list();
|
||||
}
|
||||
|
||||
public void testListWithOptionsWhenResponseIs2xx() throws Exception {
|
||||
@ -151,10 +151,10 @@ public class LoadBalancerClientExpectTest extends BaseELBClientExpectTest {
|
||||
HttpResponse listWithOptionsResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/describe_loadbalancers.xml", "text/xml")).build();
|
||||
|
||||
ELBClient clientWhenWithOptionsExist = requestSendsResponse(listWithOptions,
|
||||
ELBApi apiWhenWithOptionsExist = requestSendsResponse(listWithOptions,
|
||||
listWithOptionsResponse);
|
||||
|
||||
assertEquals(clientWhenWithOptionsExist.getLoadBalancerClient().list(afterMarker("MARKER")).toString(),
|
||||
assertEquals(apiWhenWithOptionsExist.getLoadBalancerApi().list(afterMarker("MARKER")).toString(),
|
||||
new DescribeLoadBalancersResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
@ -181,17 +181,17 @@ public class LoadBalancerClientExpectTest extends BaseELBClientExpectTest {
|
||||
|
||||
HttpResponse deleteResponse = HttpResponse.builder().statusCode(200).build();
|
||||
|
||||
ELBClient clientWhenExist = requestSendsResponse(delete, deleteResponse);
|
||||
ELBApi apiWhenExist = requestSendsResponse(delete, deleteResponse);
|
||||
|
||||
clientWhenExist.getLoadBalancerClient().delete("name");
|
||||
apiWhenExist.getLoadBalancerApi().delete("name");
|
||||
}
|
||||
|
||||
public void testDeleteWhenResponseIs404() throws Exception {
|
||||
|
||||
HttpResponse deleteResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
ELBClient clientWhenDontExist = requestSendsResponse(delete, deleteResponse);
|
||||
ELBApi apiWhenDontExist = requestSendsResponse(delete, deleteResponse);
|
||||
|
||||
clientWhenDontExist.getLoadBalancerClient().delete("name");
|
||||
apiWhenDontExist.getLoadBalancerApi().delete("name");
|
||||
}
|
||||
}
|
@ -24,7 +24,7 @@ import static com.google.common.base.Preconditions.checkState;
|
||||
import org.jclouds.collect.PaginatedIterable;
|
||||
import org.jclouds.elb.domain.ListenerWithPolicies;
|
||||
import org.jclouds.elb.domain.LoadBalancer;
|
||||
import org.jclouds.elb.internal.BaseELBClientLiveTest;
|
||||
import org.jclouds.elb.internal.BaseELBApiLiveTest;
|
||||
import org.jclouds.elb.options.ListLoadBalancersOptions;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
@ -34,8 +34,8 @@ import com.google.common.collect.Iterables;
|
||||
/**
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live", testName = "LoadBalancerClientLiveTest")
|
||||
public class LoadBalancerClientLiveTest extends BaseELBClientLiveTest {
|
||||
@Test(groups = "live", testName = "LoadBalancerApiLiveTest")
|
||||
public class LoadBalancerApiLiveTest extends BaseELBApiLiveTest {
|
||||
|
||||
private void checkLoadBalancer(LoadBalancer loadBalancer) {
|
||||
checkNotNull(loadBalancer.getName(), "While Name can be null for a LoadBalancer, its Optional wrapper cannot: %s", loadBalancer);
|
||||
@ -72,7 +72,7 @@ public class LoadBalancerClientLiveTest extends BaseELBClientLiveTest {
|
||||
|
||||
@Test
|
||||
protected void testDescribeLoadBalancers() {
|
||||
PaginatedIterable<LoadBalancer> response = client().list();
|
||||
PaginatedIterable<LoadBalancer> response = api().list();
|
||||
|
||||
for (LoadBalancer loadBalancer : response) {
|
||||
checkLoadBalancer(loadBalancer);
|
||||
@ -83,17 +83,17 @@ public class LoadBalancerClientLiveTest extends BaseELBClientLiveTest {
|
||||
|
||||
if (Iterables.size(response) > 0) {
|
||||
LoadBalancer loadBalancer = response.iterator().next();
|
||||
Assert.assertEquals(client().get(loadBalancer.getName()), loadBalancer);
|
||||
Assert.assertEquals(api().get(loadBalancer.getName()), loadBalancer);
|
||||
}
|
||||
|
||||
// Test with a Marker, even if it's null
|
||||
response = client().list(ListLoadBalancersOptions.Builder.afterMarker(response.getNextMarker()));
|
||||
response = api().list(ListLoadBalancersOptions.Builder.afterMarker(response.getNextMarker()));
|
||||
for (LoadBalancer loadBalancer : response) {
|
||||
checkLoadBalancer(loadBalancer);
|
||||
}
|
||||
}
|
||||
|
||||
protected LoadBalancerClient client() {
|
||||
return context.getApi().getLoadBalancerClient();
|
||||
protected LoadBalancerApi api() {
|
||||
return context.getApi().getLoadBalancerApi();
|
||||
}
|
||||
}
|
@ -25,8 +25,8 @@ import static org.testng.Assert.assertNull;
|
||||
import java.net.URI;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import org.jclouds.elb.ELBClient;
|
||||
import org.jclouds.elb.internal.BaseELBClientExpectTest;
|
||||
import org.jclouds.elb.ELBApi;
|
||||
import org.jclouds.elb.internal.BaseELBApiExpectTest;
|
||||
import org.jclouds.elb.parse.DescribeLoadBalancerPoliciesResponseTest;
|
||||
import org.jclouds.elb.parse.DescribeLoadBalancerPolicyTypesResponseTest;
|
||||
import org.jclouds.elb.parse.GetPolicyResponseTest;
|
||||
@ -41,10 +41,10 @@ import com.google.common.collect.ImmutableSet;
|
||||
/**
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "unit", testName = "PolicyClientExpectTest")
|
||||
public class PolicyClientExpectTest extends BaseELBClientExpectTest {
|
||||
@Test(groups = "unit", testName = "PolicyApiExpectTest")
|
||||
public class PolicyApiExpectTest extends BaseELBApiExpectTest {
|
||||
|
||||
public PolicyClientExpectTest() {
|
||||
public PolicyApiExpectTest() {
|
||||
TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
|
||||
}
|
||||
|
||||
@ -73,20 +73,20 @@ public class PolicyClientExpectTest extends BaseELBClientExpectTest {
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/describe_policy.xml", "text/xml")).build();
|
||||
|
||||
ELBClient clientWhenExist = requestSendsResponse(
|
||||
ELBApi apiWhenExist = requestSendsResponse(
|
||||
get, getResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getPolicyClient().get("name").toString(), new GetPolicyResponseTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getPolicyApi().get("name").toString(), new GetPolicyResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
public void testGetWhenResponseIs404() throws Exception {
|
||||
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
ELBClient clientWhenDontExist = requestSendsResponse(
|
||||
ELBApi apiWhenDontExist = requestSendsResponse(
|
||||
get, getResponse);
|
||||
|
||||
assertNull(clientWhenDontExist.getPolicyClient().get("name"));
|
||||
assertNull(apiWhenDontExist.getPolicyApi().get("name"));
|
||||
}
|
||||
|
||||
HttpRequest list = HttpRequest.builder()
|
||||
@ -112,20 +112,20 @@ public class PolicyClientExpectTest extends BaseELBClientExpectTest {
|
||||
HttpResponse listResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/describe_policies.xml", "text/xml")).build();
|
||||
|
||||
ELBClient clientWhenExist = requestSendsResponse(
|
||||
ELBApi apiWhenExist = requestSendsResponse(
|
||||
list, listResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getPolicyClient().list().toString(), new DescribeLoadBalancerPoliciesResponseTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getPolicyApi().list().toString(), new DescribeLoadBalancerPoliciesResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
public void testListWhenResponseIs404() throws Exception {
|
||||
|
||||
HttpResponse listResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
ELBClient clientWhenDontExist = requestSendsResponse(
|
||||
ELBApi apiWhenDontExist = requestSendsResponse(
|
||||
list, listResponse);
|
||||
|
||||
clientWhenDontExist.getPolicyClient().list();
|
||||
apiWhenDontExist.getPolicyApi().list();
|
||||
}
|
||||
|
||||
public void testListWithOptionsWhenResponseIs2xx() throws Exception {
|
||||
@ -151,10 +151,10 @@ public class PolicyClientExpectTest extends BaseELBClientExpectTest {
|
||||
HttpResponse listWithOptionsResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/describe_policies.xml", "text/xml")).build();
|
||||
|
||||
ELBClient clientWhenWithOptionsExist = requestSendsResponse(listWithOptions,
|
||||
ELBApi apiWhenWithOptionsExist = requestSendsResponse(listWithOptions,
|
||||
listWithOptionsResponse);
|
||||
|
||||
assertEquals(clientWhenWithOptionsExist.getPolicyClient().list(loadBalancerName("moo")).toString(),
|
||||
assertEquals(apiWhenWithOptionsExist.getPolicyApi().list(loadBalancerName("moo")).toString(),
|
||||
new DescribeLoadBalancerPoliciesResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
@ -184,20 +184,20 @@ public class PolicyClientExpectTest extends BaseELBClientExpectTest {
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/describe_policy_type.xml", "text/xml")).build();
|
||||
|
||||
ELBClient clientWhenExist = requestSendsResponse(
|
||||
ELBApi apiWhenExist = requestSendsResponse(
|
||||
getType, getResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getPolicyClient().getType("name").toString(), new GetPolicyTypeResponseTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getPolicyApi().getType("name").toString(), new GetPolicyTypeResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
public void testGetTypeWhenResponseIs404() throws Exception {
|
||||
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
ELBClient clientWhenDontExist = requestSendsResponse(
|
||||
ELBApi apiWhenDontExist = requestSendsResponse(
|
||||
getType, getResponse);
|
||||
|
||||
assertNull(clientWhenDontExist.getPolicyClient().getType("name"));
|
||||
assertNull(apiWhenDontExist.getPolicyApi().getType("name"));
|
||||
}
|
||||
|
||||
HttpRequest listTypes = HttpRequest.builder()
|
||||
@ -223,20 +223,20 @@ public class PolicyClientExpectTest extends BaseELBClientExpectTest {
|
||||
HttpResponse listResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/describe_policy_types.xml", "text/xml")).build();
|
||||
|
||||
ELBClient clientWhenExist = requestSendsResponse(
|
||||
ELBApi apiWhenExist = requestSendsResponse(
|
||||
listTypes, listResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getPolicyClient().listTypes().toString(), new DescribeLoadBalancerPolicyTypesResponseTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getPolicyApi().listTypes().toString(), new DescribeLoadBalancerPolicyTypesResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
public void testListTypesWhenResponseIs404() throws Exception {
|
||||
|
||||
HttpResponse listResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
ELBClient clientWhenDontExist = requestSendsResponse(
|
||||
ELBApi apiWhenDontExist = requestSendsResponse(
|
||||
listTypes, listResponse);
|
||||
|
||||
clientWhenDontExist.getPolicyClient().listTypes();
|
||||
apiWhenDontExist.getPolicyApi().listTypes();
|
||||
}
|
||||
|
||||
public void testListTypesByNamesWhenResponseIs2xx() throws Exception {
|
||||
@ -262,10 +262,10 @@ public class PolicyClientExpectTest extends BaseELBClientExpectTest {
|
||||
HttpResponse listWithOptionsResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/describe_policy_types.xml", "text/xml")).build();
|
||||
|
||||
ELBClient clientWhenWithOptionsExist = requestSendsResponse(listWithOptions,
|
||||
ELBApi apiWhenWithOptionsExist = requestSendsResponse(listWithOptions,
|
||||
listWithOptionsResponse);
|
||||
|
||||
assertEquals(clientWhenWithOptionsExist.getPolicyClient().listTypes(ImmutableSet.of("moo")).toString(),
|
||||
assertEquals(apiWhenWithOptionsExist.getPolicyApi().listTypes(ImmutableSet.of("moo")).toString(),
|
||||
new DescribeLoadBalancerPolicyTypesResponseTest().expected().toString());
|
||||
}
|
||||
}
|
@ -27,7 +27,7 @@ import javax.annotation.Nullable;
|
||||
import org.jclouds.elb.domain.AttributeMetadata;
|
||||
import org.jclouds.elb.domain.Policy;
|
||||
import org.jclouds.elb.domain.PolicyType;
|
||||
import org.jclouds.elb.internal.BaseELBClientLiveTest;
|
||||
import org.jclouds.elb.internal.BaseELBApiLiveTest;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
@ -37,8 +37,8 @@ import com.google.common.collect.Iterables;
|
||||
/**
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live", testName = "PolicyClientLiveTest")
|
||||
public class PolicyClientLiveTest extends BaseELBClientLiveTest {
|
||||
@Test(groups = "live", testName = "PolicyApiLiveTest")
|
||||
public class PolicyApiLiveTest extends BaseELBApiLiveTest {
|
||||
|
||||
private void checkPolicy(Policy policy) {
|
||||
checkNotNull(policy.getName(), "Name cannot be null for a Policy.");
|
||||
@ -48,7 +48,7 @@ public class PolicyClientLiveTest extends BaseELBClientLiveTest {
|
||||
|
||||
@Test
|
||||
protected void testDescribePolicies() {
|
||||
Set<Policy> response = client().list();
|
||||
Set<Policy> response = api().list();
|
||||
|
||||
for (Policy policy : response) {
|
||||
checkPolicy(policy);
|
||||
@ -56,7 +56,7 @@ public class PolicyClientLiveTest extends BaseELBClientLiveTest {
|
||||
|
||||
if (response.size() > 0) {
|
||||
Policy policy = response.iterator().next();
|
||||
Assert.assertEquals(client().get(policy.getName()), policy);
|
||||
Assert.assertEquals(api().get(policy.getName()), policy);
|
||||
}
|
||||
|
||||
}
|
||||
@ -80,7 +80,7 @@ public class PolicyClientLiveTest extends BaseELBClientLiveTest {
|
||||
|
||||
@Test
|
||||
protected void testDescribePolicyTypes() {
|
||||
Set<PolicyType> response = client().listTypes();
|
||||
Set<PolicyType> response = api().listTypes();
|
||||
|
||||
for (PolicyType policyType : response) {
|
||||
checkPolicyType(policyType);
|
||||
@ -88,7 +88,7 @@ public class PolicyClientLiveTest extends BaseELBClientLiveTest {
|
||||
|
||||
if (response.size() > 0) {
|
||||
PolicyType policyType = response.iterator().next();
|
||||
Assert.assertEquals(client().getType(policyType.getName()), policyType);
|
||||
Assert.assertEquals(api().getType(policyType.getName()), policyType);
|
||||
}
|
||||
|
||||
if (response.size() > 0) {
|
||||
@ -100,11 +100,11 @@ public class PolicyClientLiveTest extends BaseELBClientLiveTest {
|
||||
}
|
||||
|
||||
});
|
||||
Assert.assertEquals(client().listTypes(names), response);
|
||||
Assert.assertEquals(api().listTypes(names), response);
|
||||
}
|
||||
}
|
||||
|
||||
protected PolicyClient client() {
|
||||
return context.getApi().getPolicyClient();
|
||||
protected PolicyApi api() {
|
||||
return context.getApi().getPolicyApi();
|
||||
}
|
||||
}
|
@ -18,13 +18,13 @@
|
||||
*/
|
||||
package org.jclouds.elb.internal;
|
||||
|
||||
import org.jclouds.elb.ELBClient;
|
||||
import org.jclouds.elb.ELBApi;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
public class BaseELBClientExpectTest extends BaseELBExpectTest<ELBClient> {
|
||||
public class BaseELBApiExpectTest extends BaseELBExpectTest<ELBApi> {
|
||||
|
||||
}
|
@ -20,8 +20,8 @@ package org.jclouds.elb.internal;
|
||||
|
||||
import org.jclouds.apis.BaseContextLiveTest;
|
||||
import org.jclouds.elb.ELBApiMetadata;
|
||||
import org.jclouds.elb.ELBAsyncClient;
|
||||
import org.jclouds.elb.ELBClient;
|
||||
import org.jclouds.elb.ELBAsyncApi;
|
||||
import org.jclouds.elb.ELBApi;
|
||||
import org.jclouds.rest.RestContext;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
@ -32,14 +32,14 @@ import com.google.common.reflect.TypeToken;
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live")
|
||||
public class BaseELBClientLiveTest extends BaseContextLiveTest<RestContext<ELBClient, ELBAsyncClient>> {
|
||||
public class BaseELBApiLiveTest extends BaseContextLiveTest<RestContext<ELBApi, ELBAsyncApi>> {
|
||||
|
||||
public BaseELBClientLiveTest() {
|
||||
public BaseELBApiLiveTest() {
|
||||
provider = "elb";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected TypeToken<RestContext<ELBClient, ELBAsyncClient>> contextType() {
|
||||
protected TypeToken<RestContext<ELBApi, ELBAsyncApi>> contextType() {
|
||||
return ELBApiMetadata.CONTEXT_TOKEN;
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ package org.jclouds.elb.internal;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
import org.jclouds.elb.ELBAsyncClient;
|
||||
import org.jclouds.elb.ELBAsyncApi;
|
||||
import org.jclouds.http.HttpRequest;
|
||||
import org.jclouds.http.HttpResponse;
|
||||
|
||||
@ -31,8 +31,8 @@ import com.google.inject.Module;
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
public class BaseELBAsyncClientExpectTest extends BaseELBExpectTest<ELBAsyncClient> {
|
||||
public ELBAsyncClient createClient(Function<HttpRequest, HttpResponse> fn, Module module, Properties props) {
|
||||
return createInjector(fn, module, props).getInstance(ELBAsyncClient.class);
|
||||
public class BaseELBAsyncApiExpectTest extends BaseELBExpectTest<ELBAsyncApi> {
|
||||
public ELBAsyncApi createApi(Function<HttpRequest, HttpResponse> fn, Module module, Properties props) {
|
||||
return createInjector(fn, module, props).getInstance(ELBAsyncApi.class);
|
||||
}
|
||||
}
|
@ -29,7 +29,7 @@ import org.jclouds.elb.config.ELBRestClientModule;
|
||||
import org.jclouds.location.config.LocationModule;
|
||||
import org.jclouds.location.suppliers.RegionIdToURISupplier;
|
||||
import org.jclouds.rest.ConfiguresRestClient;
|
||||
import org.jclouds.rest.internal.BaseRestClientExpectTest;
|
||||
import org.jclouds.rest.internal.BaseRestApiExpectTest;
|
||||
import org.jclouds.util.Suppliers2;
|
||||
|
||||
import com.google.common.base.Supplier;
|
||||
@ -40,7 +40,7 @@ import com.google.inject.Module;
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
public class BaseELBExpectTest<T> extends BaseRestClientExpectTest<T> {
|
||||
public class BaseELBExpectTest<T> extends BaseRestApiExpectTest<T> {
|
||||
|
||||
public BaseELBExpectTest() {
|
||||
provider = "elb";
|
||||
|
@ -22,8 +22,8 @@ import static org.testng.Assert.assertEquals;
|
||||
|
||||
import org.jclouds.collect.PaginatedIterable;
|
||||
import org.jclouds.compute.domain.NodeMetadata;
|
||||
import org.jclouds.elb.ELBAsyncClient;
|
||||
import org.jclouds.elb.ELBClient;
|
||||
import org.jclouds.elb.ELBAsyncApi;
|
||||
import org.jclouds.elb.ELBApi;
|
||||
import org.jclouds.elb.domain.LoadBalancer;
|
||||
import org.jclouds.loadbalancer.BaseLoadBalancerServiceLiveTest;
|
||||
import org.jclouds.rest.RestContext;
|
||||
@ -50,17 +50,17 @@ public class ELBLoadBalancerServiceLiveTest extends BaseLoadBalancerServiceLiveT
|
||||
|
||||
@Override
|
||||
protected void validateNodesInLoadBalancer() {
|
||||
RestContext<ELBClient, ELBAsyncClient> elbContext = view.unwrap();
|
||||
RestContext<ELBApi, ELBAsyncApi> elbContext = view.unwrap();
|
||||
// TODO create a LoadBalancer object and an appropriate list method so that this
|
||||
// does not have to be EC2 specific code
|
||||
ELBClient elbClient = elbContext.getApi();
|
||||
ELBApi elbApi = elbContext.getApi();
|
||||
|
||||
Builder<String> instanceIds = ImmutableSet.<String> builder();
|
||||
for (NodeMetadata node : nodes) {
|
||||
instanceIds.add(node.getProviderId());
|
||||
}
|
||||
|
||||
PaginatedIterable<LoadBalancer> elbs = elbClient.getLoadBalancerClient().list();
|
||||
PaginatedIterable<LoadBalancer> elbs = elbApi.getLoadBalancerApi().list();
|
||||
for (LoadBalancer elb : elbs) {
|
||||
if (elb.getName().equals(group))
|
||||
assertEquals(elb.getInstanceIds(), instanceIds.build());
|
||||
|
@ -3,7 +3,7 @@ package org.jclouds.iam;
|
||||
import org.jclouds.collect.PaginatedIterable;
|
||||
import org.jclouds.collect.PaginatedIterables;
|
||||
import org.jclouds.iam.domain.User;
|
||||
import org.jclouds.iam.features.UserClient;
|
||||
import org.jclouds.iam.features.UserApi;
|
||||
import org.jclouds.iam.options.ListUsersOptions;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
@ -18,19 +18,19 @@ public class IAM {
|
||||
/**
|
||||
* List users based on the criteria in the {@link ListUsersOptions} passed in.
|
||||
*
|
||||
* @param userClient
|
||||
* the {@link UserClient} to use for the request
|
||||
* @param userApi
|
||||
* the {@link UserApi} to use for the request
|
||||
* @param options
|
||||
* the {@link ListUsersOptions} describing the ListUsers request
|
||||
*
|
||||
* @return iterable of users fitting the criteria
|
||||
*/
|
||||
public static Iterable<User> list(final UserClient userClient, final ListUsersOptions options) {
|
||||
return PaginatedIterables.lazyContinue(userClient.list(options), new Function<Object, PaginatedIterable<User>>() {
|
||||
public static Iterable<User> list(final UserApi userApi, final ListUsersOptions options) {
|
||||
return PaginatedIterables.lazyContinue(userApi.list(options), new Function<Object, PaginatedIterable<User>>() {
|
||||
|
||||
@Override
|
||||
public PaginatedIterable<User> apply(Object input) {
|
||||
return userClient.list(options.clone().afterMarker(input));
|
||||
return userApi.list(options.clone().afterMarker(input));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -22,7 +22,7 @@ import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.jclouds.concurrent.Timeout;
|
||||
import org.jclouds.iam.domain.User;
|
||||
import org.jclouds.iam.features.UserClient;
|
||||
import org.jclouds.iam.features.UserApi;
|
||||
import org.jclouds.rest.annotations.Delegate;
|
||||
|
||||
/**
|
||||
@ -35,7 +35,7 @@ import org.jclouds.rest.annotations.Delegate;
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Timeout(duration = 30, timeUnit = TimeUnit.SECONDS)
|
||||
public interface IAMClient {
|
||||
public interface IAMApi {
|
||||
/**
|
||||
* Retrieves information about the current user, including the user's path, GUID, and ARN.
|
||||
*/
|
||||
@ -45,5 +45,5 @@ public interface IAMClient {
|
||||
* Provides synchronous access to User features.
|
||||
*/
|
||||
@Delegate
|
||||
UserClient getUserClient();
|
||||
UserApi getUserApi();
|
||||
}
|
@ -41,7 +41,7 @@ public class IAMApiMetadata extends BaseRestApiMetadata {
|
||||
/** The serialVersionUID */
|
||||
private static final long serialVersionUID = 3450830053589179249L;
|
||||
|
||||
public static final TypeToken<RestContext<? extends IAMClient, ? extends IAMAsyncClient>> CONTEXT_TOKEN = new TypeToken<RestContext<? extends IAMClient, ? extends IAMAsyncClient>>() {
|
||||
public static final TypeToken<RestContext<? extends IAMApi, ? extends IAMAsyncApi>> CONTEXT_TOKEN = new TypeToken<RestContext<? extends IAMApi, ? extends IAMAsyncApi>>() {
|
||||
private static final long serialVersionUID = -5070937833892503232L;
|
||||
};
|
||||
|
||||
@ -51,7 +51,7 @@ public class IAMApiMetadata extends BaseRestApiMetadata {
|
||||
}
|
||||
|
||||
public IAMApiMetadata() {
|
||||
this(new Builder(IAMClient.class, IAMAsyncClient.class));
|
||||
this(new Builder(IAMApi.class, IAMAsyncApi.class));
|
||||
}
|
||||
|
||||
protected IAMApiMetadata(Builder builder) {
|
||||
@ -67,8 +67,8 @@ public class IAMApiMetadata extends BaseRestApiMetadata {
|
||||
|
||||
public static class Builder extends BaseRestApiMetadata.Builder {
|
||||
|
||||
protected Builder(Class<?> client, Class<?> asyncClient) {
|
||||
super(client, asyncClient);
|
||||
protected Builder(Class<?> api, Class<?> asyncApi) {
|
||||
super(api, asyncApi);
|
||||
id("iam")
|
||||
.name("Amazon IAM Api")
|
||||
.identityName("Access Key ID")
|
||||
@ -92,4 +92,4 @@ public class IAMApiMetadata extends BaseRestApiMetadata {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ import javax.ws.rs.Path;
|
||||
|
||||
import org.jclouds.aws.filters.FormSigner;
|
||||
import org.jclouds.iam.domain.User;
|
||||
import org.jclouds.iam.features.UserAsyncClient;
|
||||
import org.jclouds.iam.features.UserAsyncApi;
|
||||
import org.jclouds.iam.xml.UserHandler;
|
||||
import org.jclouds.rest.annotations.Delegate;
|
||||
import org.jclouds.rest.annotations.FormParams;
|
||||
@ -44,10 +44,10 @@ import com.google.common.util.concurrent.ListenableFuture;
|
||||
*/
|
||||
@RequestFilters(FormSigner.class)
|
||||
@VirtualHost
|
||||
public interface IAMAsyncClient {
|
||||
public interface IAMAsyncApi {
|
||||
|
||||
/**
|
||||
* @see IAMClient#getCurrentUser()
|
||||
* @see IAMApi#getCurrentUser()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -59,6 +59,6 @@ public interface IAMAsyncClient {
|
||||
* Provides asynchronous access to User features.
|
||||
*/
|
||||
@Delegate
|
||||
UserAsyncClient getUserClient();
|
||||
UserAsyncApi getUserApi();
|
||||
|
||||
}
|
@ -21,10 +21,10 @@ package org.jclouds.iam.config;
|
||||
import java.util.Map;
|
||||
|
||||
import org.jclouds.aws.config.FormSigningRestClientModule;
|
||||
import org.jclouds.iam.IAMAsyncClient;
|
||||
import org.jclouds.iam.IAMClient;
|
||||
import org.jclouds.iam.features.UserAsyncClient;
|
||||
import org.jclouds.iam.features.UserClient;
|
||||
import org.jclouds.iam.IAMAsyncApi;
|
||||
import org.jclouds.iam.IAMApi;
|
||||
import org.jclouds.iam.features.UserAsyncApi;
|
||||
import org.jclouds.iam.features.UserApi;
|
||||
import org.jclouds.rest.ConfiguresRestClient;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
@ -36,13 +36,13 @@ import com.google.common.reflect.TypeToken;
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@ConfiguresRestClient
|
||||
public class IAMRestClientModule extends FormSigningRestClientModule<IAMClient, IAMAsyncClient> {
|
||||
public class IAMRestClientModule extends FormSigningRestClientModule<IAMApi, IAMAsyncApi> {
|
||||
public static final Map<Class<?>, Class<?>> DELEGATE_MAP = ImmutableMap.<Class<?>, Class<?>> builder()//
|
||||
.put(UserClient.class, UserAsyncClient.class)
|
||||
.put(UserApi.class, UserAsyncApi.class)
|
||||
.build();
|
||||
|
||||
public IAMRestClientModule() {
|
||||
super(TypeToken.of(IAMClient.class), TypeToken.of(IAMAsyncClient.class), DELEGATE_MAP);
|
||||
super(TypeToken.of(IAMApi.class), TypeToken.of(IAMAsyncApi.class), DELEGATE_MAP);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ import org.jclouds.javax.annotation.Nullable;
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Timeout(duration = 30, timeUnit = TimeUnit.SECONDS)
|
||||
public interface UserClient {
|
||||
public interface UserApi {
|
||||
/**
|
||||
* Retrieves information about the current user, including the user's path, GUID, and ARN.
|
||||
*/
|
@ -46,10 +46,10 @@ import com.google.common.util.concurrent.ListenableFuture;
|
||||
*/
|
||||
@RequestFilters(FormSigner.class)
|
||||
@VirtualHost
|
||||
public interface UserAsyncClient {
|
||||
public interface UserAsyncApi {
|
||||
|
||||
/**
|
||||
* @see UserClient#getCurrent()
|
||||
* @see UserApi#getCurrent()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -58,7 +58,7 @@ public interface UserAsyncClient {
|
||||
ListenableFuture<User> getCurrent();
|
||||
|
||||
/**
|
||||
* @see UserClient#get()
|
||||
* @see UserApi#get()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -68,7 +68,7 @@ public interface UserAsyncClient {
|
||||
ListenableFuture<User> get(@FormParam("UserName") String name);
|
||||
|
||||
/**
|
||||
* @see UserClient#list()
|
||||
* @see UserApi#list()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -77,7 +77,7 @@ public interface UserAsyncClient {
|
||||
ListenableFuture<PaginatedIterable<User>> list();
|
||||
|
||||
/**
|
||||
* @see UserClient#list(ListUsersOptions)
|
||||
* @see UserApi#list(ListUsersOptions)
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
@ -30,29 +30,29 @@ import com.google.common.reflect.TypeToken;
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
public class IAMClientLiveTest extends BaseContextLiveTest<RestContext<? extends IAMClient, ? extends IAMAsyncClient>> {
|
||||
public class IAMApiLiveTest extends BaseContextLiveTest<RestContext<? extends IAMApi, ? extends IAMAsyncApi>> {
|
||||
|
||||
public IAMClientLiveTest() {
|
||||
public IAMApiLiveTest() {
|
||||
provider = "iam";
|
||||
}
|
||||
|
||||
private IAMClient client;
|
||||
private IAMApi api;
|
||||
|
||||
@Override
|
||||
@BeforeClass(groups = { "integration", "live" })
|
||||
public void setupContext() {
|
||||
super.setupContext();
|
||||
client = context.getApi();
|
||||
api = context.getApi();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected TypeToken<RestContext<? extends IAMClient, ? extends IAMAsyncClient>> contextType() {
|
||||
protected TypeToken<RestContext<? extends IAMApi, ? extends IAMAsyncApi>> contextType() {
|
||||
return IAMApiMetadata.CONTEXT_TOKEN;
|
||||
}
|
||||
|
||||
@Test
|
||||
protected void testWired() {
|
||||
client.getCurrentUser();
|
||||
api.getCurrentUser();
|
||||
}
|
||||
|
||||
}
|
@ -8,7 +8,7 @@ import org.easymock.EasyMock;
|
||||
import org.jclouds.collect.PaginatedIterable;
|
||||
import org.jclouds.collect.PaginatedIterables;
|
||||
import org.jclouds.iam.domain.User;
|
||||
import org.jclouds.iam.features.UserClient;
|
||||
import org.jclouds.iam.features.UserApi;
|
||||
import org.jclouds.iam.options.ListUsersOptions;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
@ -27,37 +27,37 @@ public class IAMTest {
|
||||
|
||||
@Test
|
||||
public void testSinglePageResult() throws Exception {
|
||||
UserClient userClient = createMock(UserClient.class);
|
||||
UserApi userApi = createMock(UserApi.class);
|
||||
ListUsersOptions options = new ListUsersOptions();
|
||||
PaginatedIterable<User> response = PaginatedIterables.forward(ImmutableSet.of(createMock(User.class)));
|
||||
|
||||
expect(userClient.list(options))
|
||||
expect(userApi.list(options))
|
||||
.andReturn(response)
|
||||
.once();
|
||||
|
||||
EasyMock.replay(userClient);
|
||||
EasyMock.replay(userApi);
|
||||
|
||||
Assert.assertEquals(1, Iterables.size(IAM.list(userClient, options)));
|
||||
Assert.assertEquals(1, Iterables.size(IAM.list(userApi, options)));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testMultiPageResult() throws Exception {
|
||||
UserClient userClient = createMock(UserClient.class);
|
||||
UserApi userApi = createMock(UserApi.class);
|
||||
ListUsersOptions options = new ListUsersOptions();
|
||||
PaginatedIterable<User> response1 = PaginatedIterables.forwardWithMarker(ImmutableSet.of(createMock(User.class)), "NEXTTOKEN");
|
||||
PaginatedIterable<User> response2 = PaginatedIterables.forward(ImmutableSet.of(createMock(User.class)));
|
||||
|
||||
expect(userClient.list(anyObject(ListUsersOptions.class)))
|
||||
expect(userApi.list(anyObject(ListUsersOptions.class)))
|
||||
.andReturn(response1)
|
||||
.once();
|
||||
expect(userClient.list(anyObject(ListUsersOptions.class)))
|
||||
expect(userApi.list(anyObject(ListUsersOptions.class)))
|
||||
.andReturn(response2)
|
||||
.once();
|
||||
|
||||
EasyMock.replay(userClient);
|
||||
EasyMock.replay(userApi);
|
||||
|
||||
Assert.assertEquals(2, Iterables.size(IAM.list(userClient, options)));
|
||||
Assert.assertEquals(2, Iterables.size(IAM.list(userApi, options)));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -27,8 +27,8 @@ import java.util.TimeZone;
|
||||
|
||||
import org.jclouds.http.HttpRequest;
|
||||
import org.jclouds.http.HttpResponse;
|
||||
import org.jclouds.iam.IAMClient;
|
||||
import org.jclouds.iam.internal.BaseIAMClientExpectTest;
|
||||
import org.jclouds.iam.IAMApi;
|
||||
import org.jclouds.iam.internal.BaseIAMApiExpectTest;
|
||||
import org.jclouds.iam.parse.GetUserResponseTest;
|
||||
import org.jclouds.iam.parse.ListUsersResponseTest;
|
||||
import org.jclouds.rest.ResourceNotFoundException;
|
||||
@ -39,10 +39,10 @@ import com.google.common.collect.ImmutableMultimap;
|
||||
/**
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "unit", testName = "UserClientExpectTest")
|
||||
public class UserClientExpectTest extends BaseIAMClientExpectTest {
|
||||
@Test(groups = "unit", testName = "UserApiExpectTest")
|
||||
public class UserApiExpectTest extends BaseIAMApiExpectTest {
|
||||
|
||||
public UserClientExpectTest() {
|
||||
public UserApiExpectTest() {
|
||||
TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
|
||||
}
|
||||
|
||||
@ -67,10 +67,10 @@ public class UserClientExpectTest extends BaseIAMClientExpectTest {
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/get_user.xml", "text/xml")).build();
|
||||
|
||||
IAMClient clientWhenExist = requestSendsResponse(
|
||||
IAMApi apiWhenExist = requestSendsResponse(
|
||||
get, getResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getUserClient().getCurrent().toString(), new GetUserResponseTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getUserApi().getCurrent().toString(), new GetUserResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
HttpRequest get = HttpRequest.builder()
|
||||
@ -98,20 +98,20 @@ public class UserClientExpectTest extends BaseIAMClientExpectTest {
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/get_user.xml", "text/xml")).build();
|
||||
|
||||
IAMClient clientWhenExist = requestSendsResponse(
|
||||
IAMApi apiWhenExist = requestSendsResponse(
|
||||
get, getResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getUserClient().get("name").toString(), new GetUserResponseTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getUserApi().get("name").toString(), new GetUserResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
public void testGetWhenResponseIs404() throws Exception {
|
||||
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
IAMClient clientWhenDontExist = requestSendsResponse(
|
||||
IAMApi apiWhenDontExist = requestSendsResponse(
|
||||
get, getResponse);
|
||||
|
||||
assertNull(clientWhenDontExist.getUserClient().get("name"));
|
||||
assertNull(apiWhenDontExist.getUserApi().get("name"));
|
||||
}
|
||||
|
||||
HttpRequest list = HttpRequest.builder()
|
||||
@ -137,10 +137,10 @@ public class UserClientExpectTest extends BaseIAMClientExpectTest {
|
||||
HttpResponse listResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/list_users.xml", "text/xml")).build();
|
||||
|
||||
IAMClient clientWhenExist = requestSendsResponse(
|
||||
IAMApi apiWhenExist = requestSendsResponse(
|
||||
list, listResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getUserClient().list().toString(), new ListUsersResponseTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getUserApi().list().toString(), new ListUsersResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
// TODO: this should really be an empty set
|
||||
@ -149,10 +149,10 @@ public class UserClientExpectTest extends BaseIAMClientExpectTest {
|
||||
|
||||
HttpResponse listResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
IAMClient clientWhenDontExist = requestSendsResponse(
|
||||
IAMApi apiWhenDontExist = requestSendsResponse(
|
||||
list, listResponse);
|
||||
|
||||
clientWhenDontExist.getUserClient().list();
|
||||
apiWhenDontExist.getUserApi().list();
|
||||
}
|
||||
|
||||
public void testListWithOptionsWhenResponseIs2xx() throws Exception {
|
||||
@ -179,10 +179,10 @@ public class UserClientExpectTest extends BaseIAMClientExpectTest {
|
||||
HttpResponse listWithOptionsResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/list_users.xml", "text/xml")).build();
|
||||
|
||||
IAMClient clientWhenWithOptionsExist = requestSendsResponse(listWithOptions,
|
||||
IAMApi apiWhenWithOptionsExist = requestSendsResponse(listWithOptions,
|
||||
listWithOptionsResponse);
|
||||
|
||||
assertEquals(clientWhenWithOptionsExist.getUserClient().list(pathPrefix("/foo").afterMarker("MARKER")).toString(),
|
||||
assertEquals(apiWhenWithOptionsExist.getUserApi().list(pathPrefix("/foo").afterMarker("MARKER")).toString(),
|
||||
new ListUsersResponseTest().expected().toString());
|
||||
}
|
||||
}
|
@ -22,7 +22,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import org.jclouds.collect.PaginatedIterable;
|
||||
import org.jclouds.iam.domain.User;
|
||||
import org.jclouds.iam.internal.BaseIAMClientLiveTest;
|
||||
import org.jclouds.iam.internal.BaseIAMApiLiveTest;
|
||||
import org.jclouds.iam.options.ListUsersOptions;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
@ -32,12 +32,12 @@ import com.google.common.collect.Iterables;
|
||||
/**
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live", testName = "UserClientLiveTest")
|
||||
public class UserClientLiveTest extends BaseIAMClientLiveTest {
|
||||
@Test(groups = "live", testName = "UserApiLiveTest")
|
||||
public class UserApiLiveTest extends BaseIAMApiLiveTest {
|
||||
|
||||
@Test
|
||||
protected void testGetCurrentUser() {
|
||||
User user = client().getCurrent();
|
||||
User user = api().getCurrent();
|
||||
checkUser(user);
|
||||
}
|
||||
|
||||
@ -51,7 +51,7 @@ public class UserClientLiveTest extends BaseIAMClientLiveTest {
|
||||
|
||||
@Test
|
||||
protected void testListUsers() {
|
||||
PaginatedIterable<User> response = client().list();
|
||||
PaginatedIterable<User> response = api().list();
|
||||
|
||||
for (User user : response) {
|
||||
checkUser(user);
|
||||
@ -59,17 +59,17 @@ public class UserClientLiveTest extends BaseIAMClientLiveTest {
|
||||
|
||||
if (Iterables.size(response) > 0) {
|
||||
User user = response.iterator().next();
|
||||
Assert.assertEquals(client().get(user.getName().get()), user);
|
||||
Assert.assertEquals(api().get(user.getName().get()), user);
|
||||
}
|
||||
|
||||
// Test with a Marker, even if it's null
|
||||
response = client().list(ListUsersOptions.Builder.afterMarker(response.getNextMarker()));
|
||||
response = api().list(ListUsersOptions.Builder.afterMarker(response.getNextMarker()));
|
||||
for (User user : response) {
|
||||
checkUser(user);
|
||||
}
|
||||
}
|
||||
|
||||
protected UserClient client() {
|
||||
return context.getApi().getUserClient();
|
||||
protected UserApi api() {
|
||||
return context.getApi().getUserApi();
|
||||
}
|
||||
}
|
@ -18,12 +18,12 @@
|
||||
*/
|
||||
package org.jclouds.iam.internal;
|
||||
|
||||
import org.jclouds.iam.IAMClient;
|
||||
import org.jclouds.iam.IAMApi;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
public class BaseIAMClientExpectTest extends BaseIAMExpectTest<IAMClient> {
|
||||
public class BaseIAMApiExpectTest extends BaseIAMExpectTest<IAMApi> {
|
||||
|
||||
}
|
@ -20,8 +20,8 @@ package org.jclouds.iam.internal;
|
||||
|
||||
import org.jclouds.apis.BaseContextLiveTest;
|
||||
import org.jclouds.iam.IAMApiMetadata;
|
||||
import org.jclouds.iam.IAMAsyncClient;
|
||||
import org.jclouds.iam.IAMClient;
|
||||
import org.jclouds.iam.IAMAsyncApi;
|
||||
import org.jclouds.iam.IAMApi;
|
||||
import org.jclouds.rest.RestContext;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
@ -32,15 +32,15 @@ import com.google.common.reflect.TypeToken;
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live")
|
||||
public class BaseIAMClientLiveTest extends
|
||||
BaseContextLiveTest<RestContext<? extends IAMClient, ? extends IAMAsyncClient>> {
|
||||
public class BaseIAMApiLiveTest extends
|
||||
BaseContextLiveTest<RestContext<? extends IAMApi, ? extends IAMAsyncApi>> {
|
||||
|
||||
public BaseIAMClientLiveTest() {
|
||||
public BaseIAMApiLiveTest() {
|
||||
provider = "iam";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected TypeToken<RestContext<? extends IAMClient, ? extends IAMAsyncClient>> contextType() {
|
||||
protected TypeToken<RestContext<? extends IAMApi, ? extends IAMAsyncApi>> contextType() {
|
||||
return IAMApiMetadata.CONTEXT_TOKEN;
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ import java.util.Properties;
|
||||
|
||||
import org.jclouds.http.HttpRequest;
|
||||
import org.jclouds.http.HttpResponse;
|
||||
import org.jclouds.iam.IAMAsyncClient;
|
||||
import org.jclouds.iam.IAMAsyncApi;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
import com.google.inject.Module;
|
||||
@ -31,8 +31,8 @@ import com.google.inject.Module;
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
public class BaseIAMAsyncClientExpectTest extends BaseIAMExpectTest<IAMAsyncClient> {
|
||||
public IAMAsyncClient createClient(Function<HttpRequest, HttpResponse> fn, Module module, Properties props) {
|
||||
return createInjector(fn, module, props).getInstance(IAMAsyncClient.class);
|
||||
public class BaseIAMAsyncApiExpectTest extends BaseIAMExpectTest<IAMAsyncApi> {
|
||||
public IAMAsyncApi createApi(Function<HttpRequest, HttpResponse> fn, Module module, Properties props) {
|
||||
return createInjector(fn, module, props).getInstance(IAMAsyncApi.class);
|
||||
}
|
||||
}
|
@ -21,7 +21,7 @@ package org.jclouds.iam.internal;
|
||||
import org.jclouds.date.DateService;
|
||||
import org.jclouds.iam.config.IAMRestClientModule;
|
||||
import org.jclouds.rest.ConfiguresRestClient;
|
||||
import org.jclouds.rest.internal.BaseRestClientExpectTest;
|
||||
import org.jclouds.rest.internal.BaseRestApiExpectTest;
|
||||
|
||||
import com.google.inject.Module;
|
||||
|
||||
@ -29,7 +29,7 @@ import com.google.inject.Module;
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
public class BaseIAMExpectTest<T> extends BaseRestClientExpectTest<T> {
|
||||
public class BaseIAMExpectTest<T> extends BaseRestApiExpectTest<T> {
|
||||
|
||||
public BaseIAMExpectTest() {
|
||||
provider = "iam";
|
||||
|
@ -5,9 +5,9 @@ import org.jclouds.collect.PaginatedIterables;
|
||||
import org.jclouds.rds.domain.Instance;
|
||||
import org.jclouds.rds.domain.SecurityGroup;
|
||||
import org.jclouds.rds.domain.SubnetGroup;
|
||||
import org.jclouds.rds.features.InstanceClient;
|
||||
import org.jclouds.rds.features.SecurityGroupClient;
|
||||
import org.jclouds.rds.features.SubnetGroupClient;
|
||||
import org.jclouds.rds.features.InstanceApi;
|
||||
import org.jclouds.rds.features.SecurityGroupApi;
|
||||
import org.jclouds.rds.features.SubnetGroupApi;
|
||||
import org.jclouds.rds.options.ListInstancesOptions;
|
||||
import org.jclouds.rds.options.ListSecurityGroupsOptions;
|
||||
import org.jclouds.rds.options.ListSubnetGroupsOptions;
|
||||
@ -24,21 +24,21 @@ public class RDS {
|
||||
/**
|
||||
* List instances based on the criteria in the {@link ListInstancesOptions} passed in.
|
||||
*
|
||||
* @param instanceClient
|
||||
* the {@link InstanceClient} to use for the request
|
||||
* @param instanceApi
|
||||
* the {@link InstanceApi} to use for the request
|
||||
* @param options
|
||||
* the {@link ListInstancesOptions} describing the ListInstances request
|
||||
*
|
||||
* @return iterable of instances fitting the criteria
|
||||
*/
|
||||
public static Iterable<Instance> listInstances(final InstanceClient instanceClient,
|
||||
public static Iterable<Instance> listInstances(final InstanceApi instanceApi,
|
||||
final ListInstancesOptions options) {
|
||||
return PaginatedIterables.lazyContinue(instanceClient.list(options),
|
||||
return PaginatedIterables.lazyContinue(instanceApi.list(options),
|
||||
new Function<Object, PaginatedIterable<Instance>>() {
|
||||
|
||||
@Override
|
||||
public PaginatedIterable<Instance> apply(Object input) {
|
||||
return instanceClient.list(options.clone().afterMarker(input));
|
||||
return instanceApi.list(options.clone().afterMarker(input));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -48,28 +48,28 @@ public class RDS {
|
||||
});
|
||||
}
|
||||
|
||||
public static Iterable<Instance> listInstances(InstanceClient instanceClient) {
|
||||
return listInstances(instanceClient, new ListInstancesOptions());
|
||||
public static Iterable<Instance> listInstances(InstanceApi instanceApi) {
|
||||
return listInstances(instanceApi, new ListInstancesOptions());
|
||||
}
|
||||
|
||||
/**
|
||||
* List securityGroups based on the criteria in the {@link ListSecurityGroupsOptions} passed in.
|
||||
*
|
||||
* @param securityGroupClient
|
||||
* the {@link SecurityGroupClient} to use for the request
|
||||
* @param securityGroupApi
|
||||
* the {@link SecurityGroupApi} to use for the request
|
||||
* @param options
|
||||
* the {@link ListSecurityGroupsOptions} describing the ListSecurityGroups request
|
||||
*
|
||||
* @return iterable of securityGroups fitting the criteria
|
||||
*/
|
||||
public static Iterable<SecurityGroup> listSecurityGroups(final SecurityGroupClient securityGroupClient,
|
||||
public static Iterable<SecurityGroup> listSecurityGroups(final SecurityGroupApi securityGroupApi,
|
||||
final ListSecurityGroupsOptions options) {
|
||||
return PaginatedIterables.lazyContinue(securityGroupClient.list(options),
|
||||
return PaginatedIterables.lazyContinue(securityGroupApi.list(options),
|
||||
new Function<Object, PaginatedIterable<SecurityGroup>>() {
|
||||
|
||||
@Override
|
||||
public PaginatedIterable<SecurityGroup> apply(Object input) {
|
||||
return securityGroupClient.list(options.clone().afterMarker(input));
|
||||
return securityGroupApi.list(options.clone().afterMarker(input));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -79,28 +79,28 @@ public class RDS {
|
||||
});
|
||||
}
|
||||
|
||||
public static Iterable<SecurityGroup> listSecurityGroups(SecurityGroupClient securityGroupClient) {
|
||||
return listSecurityGroups(securityGroupClient, new ListSecurityGroupsOptions());
|
||||
public static Iterable<SecurityGroup> listSecurityGroups(SecurityGroupApi securityGroupApi) {
|
||||
return listSecurityGroups(securityGroupApi, new ListSecurityGroupsOptions());
|
||||
}
|
||||
|
||||
/**
|
||||
* List subnetGroups based on the criteria in the {@link ListSubnetGroupsOptions} passed in.
|
||||
*
|
||||
* @param subnetGroupClient
|
||||
* the {@link SubnetGroupClient} to use for the request
|
||||
* @param subnetGroupApi
|
||||
* the {@link SubnetGroupApi} to use for the request
|
||||
* @param options
|
||||
* the {@link ListSubnetGroupsOptions} describing the ListSubnetGroups request
|
||||
*
|
||||
* @return iterable of subnetGroups fitting the criteria
|
||||
*/
|
||||
public static Iterable<SubnetGroup> listSubnetGroups(final SubnetGroupClient subnetGroupClient,
|
||||
public static Iterable<SubnetGroup> listSubnetGroups(final SubnetGroupApi subnetGroupApi,
|
||||
final ListSubnetGroupsOptions options) {
|
||||
return PaginatedIterables.lazyContinue(subnetGroupClient.list(options),
|
||||
return PaginatedIterables.lazyContinue(subnetGroupApi.list(options),
|
||||
new Function<Object, PaginatedIterable<SubnetGroup>>() {
|
||||
|
||||
@Override
|
||||
public PaginatedIterable<SubnetGroup> apply(Object input) {
|
||||
return subnetGroupClient.list(options.clone().afterMarker(input));
|
||||
return subnetGroupApi.list(options.clone().afterMarker(input));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -110,8 +110,8 @@ public class RDS {
|
||||
});
|
||||
}
|
||||
|
||||
public static Iterable<SubnetGroup> listSubnetGroups(SubnetGroupClient subnetGroupClient) {
|
||||
return listSubnetGroups(subnetGroupClient, new ListSubnetGroupsOptions());
|
||||
public static Iterable<SubnetGroup> listSubnetGroups(SubnetGroupApi subnetGroupApi) {
|
||||
return listSubnetGroups(subnetGroupApi, new ListSubnetGroupsOptions());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -26,9 +26,9 @@ import javax.annotation.Nullable;
|
||||
import org.jclouds.concurrent.Timeout;
|
||||
import org.jclouds.location.Region;
|
||||
import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
|
||||
import org.jclouds.rds.features.InstanceClient;
|
||||
import org.jclouds.rds.features.SecurityGroupClient;
|
||||
import org.jclouds.rds.features.SubnetGroupClient;
|
||||
import org.jclouds.rds.features.InstanceApi;
|
||||
import org.jclouds.rds.features.SecurityGroupApi;
|
||||
import org.jclouds.rds.features.SubnetGroupApi;
|
||||
import org.jclouds.rest.annotations.Delegate;
|
||||
import org.jclouds.rest.annotations.EndpointParam;
|
||||
|
||||
@ -40,11 +40,11 @@ import com.google.inject.Provides;
|
||||
* <p/>
|
||||
*
|
||||
* @author Adrian Cole
|
||||
* @see RDSAsyncClient
|
||||
* @see RDSAsyncApi
|
||||
*/
|
||||
@Beta
|
||||
@Timeout(duration = 30, timeUnit = TimeUnit.SECONDS)
|
||||
public interface RDSClient {
|
||||
public interface RDSApi {
|
||||
/**
|
||||
*
|
||||
* @return the Region codes configured
|
||||
@ -57,30 +57,30 @@ public interface RDSClient {
|
||||
* Provides synchronous access to Instance features.
|
||||
*/
|
||||
@Delegate
|
||||
InstanceClient getInstanceClient();
|
||||
InstanceApi getInstanceApi();
|
||||
|
||||
@Delegate
|
||||
InstanceClient getInstanceClientForRegion(
|
||||
InstanceApi getInstanceApiForRegion(
|
||||
@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
|
||||
|
||||
/**
|
||||
* Provides synchronous access to SecurityGroup features.
|
||||
*/
|
||||
@Delegate
|
||||
SecurityGroupClient getSecurityGroupClient();
|
||||
SecurityGroupApi getSecurityGroupApi();
|
||||
|
||||
@Delegate
|
||||
SecurityGroupClient getSecurityGroupClientForRegion(
|
||||
SecurityGroupApi getSecurityGroupApiForRegion(
|
||||
@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
|
||||
|
||||
/**
|
||||
* Provides synchronous access to SubnetGroup features.
|
||||
*/
|
||||
@Delegate
|
||||
SubnetGroupClient getSubnetGroupClient();
|
||||
SubnetGroupApi getSubnetGroupApi();
|
||||
|
||||
@Delegate
|
||||
SubnetGroupClient getSubnetGroupClientForRegion(
|
||||
SubnetGroupApi getSubnetGroupApiForRegion(
|
||||
@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
|
||||
|
||||
}
|
@ -43,7 +43,7 @@ public class RDSApiMetadata extends BaseRestApiMetadata {
|
||||
/** The serialVersionUID */
|
||||
private static final long serialVersionUID = -7077953935392202824L;
|
||||
|
||||
public static final TypeToken<RestContext<RDSClient, RDSAsyncClient>> CONTEXT_TOKEN = new TypeToken<RestContext<RDSClient, RDSAsyncClient>>() {
|
||||
public static final TypeToken<RestContext<RDSApi, RDSAsyncApi>> CONTEXT_TOKEN = new TypeToken<RestContext<RDSApi, RDSAsyncApi>>() {
|
||||
private static final long serialVersionUID = -5070937833892503232L;
|
||||
};
|
||||
|
||||
@ -53,7 +53,7 @@ public class RDSApiMetadata extends BaseRestApiMetadata {
|
||||
}
|
||||
|
||||
public RDSApiMetadata() {
|
||||
this(new Builder(RDSClient.class, RDSAsyncClient.class));
|
||||
this(new Builder(RDSApi.class, RDSAsyncApi.class));
|
||||
}
|
||||
|
||||
protected RDSApiMetadata(Builder builder) {
|
||||
@ -69,8 +69,8 @@ public class RDSApiMetadata extends BaseRestApiMetadata {
|
||||
|
||||
public static class Builder extends BaseRestApiMetadata.Builder {
|
||||
|
||||
protected Builder(Class<?> client, Class<?> asyncClient) {
|
||||
super(client, asyncClient);
|
||||
protected Builder(Class<?> api, Class<?> asyncApi) {
|
||||
super(api, asyncApi);
|
||||
id("rds")
|
||||
.name("Amazon Relational Database Service Api")
|
||||
.identityName("Access Key ID")
|
||||
|
@ -25,9 +25,9 @@ import javax.annotation.Nullable;
|
||||
import org.jclouds.aws.filters.FormSigner;
|
||||
import org.jclouds.location.Region;
|
||||
import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
|
||||
import org.jclouds.rds.features.InstanceAsyncClient;
|
||||
import org.jclouds.rds.features.SecurityGroupAsyncClient;
|
||||
import org.jclouds.rds.features.SubnetGroupAsyncClient;
|
||||
import org.jclouds.rds.features.InstanceAsyncApi;
|
||||
import org.jclouds.rds.features.SecurityGroupAsyncApi;
|
||||
import org.jclouds.rds.features.SubnetGroupAsyncApi;
|
||||
import org.jclouds.rest.annotations.Delegate;
|
||||
import org.jclouds.rest.annotations.EndpointParam;
|
||||
import org.jclouds.rest.annotations.RequestFilters;
|
||||
@ -47,7 +47,7 @@ import com.google.inject.Provides;
|
||||
@Beta
|
||||
@RequestFilters(FormSigner.class)
|
||||
@VirtualHost
|
||||
public interface RDSAsyncClient {
|
||||
public interface RDSAsyncApi {
|
||||
/**
|
||||
*
|
||||
* @return the Region codes configured
|
||||
@ -60,30 +60,30 @@ public interface RDSAsyncClient {
|
||||
* Provides asynchronous access to Instance features.
|
||||
*/
|
||||
@Delegate
|
||||
InstanceAsyncClient getInstanceClient();
|
||||
InstanceAsyncApi getInstanceApi();
|
||||
|
||||
@Delegate
|
||||
InstanceAsyncClient getInstanceClientForRegion(
|
||||
InstanceAsyncApi getInstanceApiForRegion(
|
||||
@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
|
||||
|
||||
/**
|
||||
* Provides asynchronous access to SecurityGroup features.
|
||||
*/
|
||||
@Delegate
|
||||
SecurityGroupAsyncClient getSecurityGroupClient();
|
||||
SecurityGroupAsyncApi getSecurityGroupApi();
|
||||
|
||||
@Delegate
|
||||
SecurityGroupAsyncClient getSecurityGroupClientForRegion(
|
||||
SecurityGroupAsyncApi getSecurityGroupApiForRegion(
|
||||
@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
|
||||
|
||||
/**
|
||||
* Provides asynchronous access to SubnetGroup features.
|
||||
*/
|
||||
@Delegate
|
||||
SubnetGroupAsyncClient getSubnetGroupClient();
|
||||
SubnetGroupAsyncApi getSubnetGroupApi();
|
||||
|
||||
@Delegate
|
||||
SubnetGroupAsyncClient getSubnetGroupClientForRegion(
|
||||
SubnetGroupAsyncApi getSubnetGroupApiForRegion(
|
||||
@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
|
||||
|
||||
}
|
@ -21,14 +21,14 @@ package org.jclouds.rds.config;
|
||||
import java.util.Map;
|
||||
|
||||
import org.jclouds.aws.config.FormSigningRestClientModule;
|
||||
import org.jclouds.rds.RDSAsyncClient;
|
||||
import org.jclouds.rds.RDSClient;
|
||||
import org.jclouds.rds.features.InstanceAsyncClient;
|
||||
import org.jclouds.rds.features.InstanceClient;
|
||||
import org.jclouds.rds.features.SecurityGroupAsyncClient;
|
||||
import org.jclouds.rds.features.SecurityGroupClient;
|
||||
import org.jclouds.rds.features.SubnetGroupAsyncClient;
|
||||
import org.jclouds.rds.features.SubnetGroupClient;
|
||||
import org.jclouds.rds.RDSAsyncApi;
|
||||
import org.jclouds.rds.RDSApi;
|
||||
import org.jclouds.rds.features.InstanceAsyncApi;
|
||||
import org.jclouds.rds.features.InstanceApi;
|
||||
import org.jclouds.rds.features.SecurityGroupAsyncApi;
|
||||
import org.jclouds.rds.features.SecurityGroupApi;
|
||||
import org.jclouds.rds.features.SubnetGroupAsyncApi;
|
||||
import org.jclouds.rds.features.SubnetGroupApi;
|
||||
import org.jclouds.rest.ConfiguresRestClient;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
@ -40,14 +40,14 @@ import com.google.common.reflect.TypeToken;
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@ConfiguresRestClient
|
||||
public class RDSRestClientModule extends FormSigningRestClientModule<RDSClient, RDSAsyncClient> {
|
||||
public class RDSRestClientModule extends FormSigningRestClientModule<RDSApi, RDSAsyncApi> {
|
||||
public static final Map<Class<?>, Class<?>> DELEGATE_MAP = ImmutableMap.<Class<?>, Class<?>> builder()//
|
||||
.put(InstanceClient.class, InstanceAsyncClient.class)
|
||||
.put(SecurityGroupClient.class, SecurityGroupAsyncClient.class)
|
||||
.put(SubnetGroupClient.class, SubnetGroupAsyncClient.class)
|
||||
.put(InstanceApi.class, InstanceAsyncApi.class)
|
||||
.put(SecurityGroupApi.class, SecurityGroupAsyncApi.class)
|
||||
.put(SubnetGroupApi.class, SubnetGroupAsyncApi.class)
|
||||
.build();
|
||||
|
||||
public RDSRestClientModule() {
|
||||
super(TypeToken.of(RDSClient.class), TypeToken.of(RDSAsyncClient.class), DELEGATE_MAP);
|
||||
super(TypeToken.of(RDSApi.class), TypeToken.of(RDSAsyncApi.class), DELEGATE_MAP);
|
||||
}
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ import com.google.common.net.HostAndPort;
|
||||
*
|
||||
* <h4>Note</h4>
|
||||
*
|
||||
* Amazon RDS supports access from any standard SQL client application. Amazon RDS does not allow
|
||||
* Amazon RDS supports access from any standard SQL api application. Amazon RDS does not allow
|
||||
* direct host access via Telnet, Secure Shell (SSH), or Windows Remote Desktop Connection.
|
||||
*
|
||||
*
|
||||
|
@ -31,11 +31,11 @@ import org.jclouds.rds.options.ListInstancesOptions;
|
||||
* <p/>
|
||||
*
|
||||
* @see <a href="http://docs.amazonwebservices.com/AmazonRDS/latest/APIReference" >doc</a>
|
||||
* @see InstanceAsyncClient
|
||||
* @see InstanceAsyncApi
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Timeout(duration = 30, timeUnit = TimeUnit.SECONDS)
|
||||
public interface InstanceClient {
|
||||
public interface InstanceApi {
|
||||
|
||||
/**
|
||||
* Retrieves information about the specified instance.
|
@ -46,15 +46,15 @@ import com.google.common.util.concurrent.ListenableFuture;
|
||||
*
|
||||
* @see <a href="http://docs.amazonwebservices.com/AmazonRDS/latest/APIReference"
|
||||
* >doc</a>
|
||||
* @see InstanceClient
|
||||
* @see InstanceApi
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@RequestFilters(FormSigner.class)
|
||||
@VirtualHost
|
||||
public interface InstanceAsyncClient {
|
||||
public interface InstanceAsyncApi {
|
||||
|
||||
/**
|
||||
* @see InstanceClient#get()
|
||||
* @see InstanceApi#get()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -64,7 +64,7 @@ public interface InstanceAsyncClient {
|
||||
ListenableFuture<Instance> get(@FormParam("DBInstanceIdentifier") String id);
|
||||
|
||||
/**
|
||||
* @see InstanceClient#list()
|
||||
* @see InstanceApi#list()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -73,7 +73,7 @@ public interface InstanceAsyncClient {
|
||||
ListenableFuture<PaginatedIterable<Instance>> list();
|
||||
|
||||
/**
|
||||
* @see InstanceClient#list(ListInstancesOptions)
|
||||
* @see InstanceApi#list(ListInstancesOptions)
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -82,7 +82,7 @@ public interface InstanceAsyncClient {
|
||||
ListenableFuture<PaginatedIterable<Instance>> list(ListInstancesOptions options);
|
||||
|
||||
/**
|
||||
* @see InstanceClient#delete()
|
||||
* @see InstanceApi#delete()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
@ -31,11 +31,11 @@ import org.jclouds.rds.options.ListSecurityGroupsOptions;
|
||||
* <p/>
|
||||
*
|
||||
* @see <a href="http://docs.amazonwebservices.com/AmazonRDS/latest/APIReference" >doc</a>
|
||||
* @see SecurityGroupAsyncClient
|
||||
* @see SecurityGroupAsyncApi
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Timeout(duration = 30, timeUnit = TimeUnit.SECONDS)
|
||||
public interface SecurityGroupClient {
|
||||
public interface SecurityGroupApi {
|
||||
|
||||
/**
|
||||
* Retrieves information about the specified {@link SecurityGroup}.
|
@ -46,15 +46,15 @@ import com.google.common.util.concurrent.ListenableFuture;
|
||||
*
|
||||
* @see <a href="http://docs.amazonwebservices.com/AmazonRDS/latest/APIReference"
|
||||
* >doc</a>
|
||||
* @see SecurityGroupClient
|
||||
* @see SecurityGroupApi
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@RequestFilters(FormSigner.class)
|
||||
@VirtualHost
|
||||
public interface SecurityGroupAsyncClient {
|
||||
public interface SecurityGroupAsyncApi {
|
||||
|
||||
/**
|
||||
* @see SecurityGroupClient#get()
|
||||
* @see SecurityGroupApi#get()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -64,7 +64,7 @@ public interface SecurityGroupAsyncClient {
|
||||
ListenableFuture<SecurityGroup> get(@FormParam("DBSecurityGroupName") String name);
|
||||
|
||||
/**
|
||||
* @see SecurityGroupClient#list()
|
||||
* @see SecurityGroupApi#list()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -73,7 +73,7 @@ public interface SecurityGroupAsyncClient {
|
||||
ListenableFuture<PaginatedIterable<SecurityGroup>> list();
|
||||
|
||||
/**
|
||||
* @see SecurityGroupClient#list(ListSecurityGroupsOptions)
|
||||
* @see SecurityGroupApi#list(ListSecurityGroupsOptions)
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -82,7 +82,7 @@ public interface SecurityGroupAsyncClient {
|
||||
ListenableFuture<PaginatedIterable<SecurityGroup>> list(ListSecurityGroupsOptions options);
|
||||
|
||||
/**
|
||||
* @see SecurityGroupClient#delete()
|
||||
* @see SecurityGroupApi#delete()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
@ -31,11 +31,11 @@ import org.jclouds.rds.options.ListSubnetGroupsOptions;
|
||||
* <p/>
|
||||
*
|
||||
* @see <a href="http://docs.amazonwebservices.com/AmazonRDS/latest/APIReference" >doc</a>
|
||||
* @see SubnetGroupAsyncClient
|
||||
* @see SubnetGroupAsyncApi
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Timeout(duration = 30, timeUnit = TimeUnit.SECONDS)
|
||||
public interface SubnetGroupClient {
|
||||
public interface SubnetGroupApi {
|
||||
|
||||
/**
|
||||
* Retrieves information about the specified {@link SubnetGroup}.
|
@ -46,15 +46,15 @@ import com.google.common.util.concurrent.ListenableFuture;
|
||||
*
|
||||
* @see <a href="http://docs.amazonwebservices.com/AmazonRDS/latest/APIReference"
|
||||
* >doc</a>
|
||||
* @see SubnetGroupClient
|
||||
* @see SubnetGroupApi
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@RequestFilters(FormSigner.class)
|
||||
@VirtualHost
|
||||
public interface SubnetGroupAsyncClient {
|
||||
public interface SubnetGroupAsyncApi {
|
||||
|
||||
/**
|
||||
* @see SubnetGroupClient#get()
|
||||
* @see SubnetGroupApi#get()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -64,7 +64,7 @@ public interface SubnetGroupAsyncClient {
|
||||
ListenableFuture<SubnetGroup> get(@FormParam("DBSubnetGroupName") String name);
|
||||
|
||||
/**
|
||||
* @see SubnetGroupClient#list()
|
||||
* @see SubnetGroupApi#list()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -73,7 +73,7 @@ public interface SubnetGroupAsyncClient {
|
||||
ListenableFuture<PaginatedIterable<SubnetGroup>> list();
|
||||
|
||||
/**
|
||||
* @see SubnetGroupClient#list(ListSubnetGroupsOptions)
|
||||
* @see SubnetGroupApi#list(ListSubnetGroupsOptions)
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
||||
@ -82,7 +82,7 @@ public interface SubnetGroupAsyncClient {
|
||||
ListenableFuture<PaginatedIterable<SubnetGroup>> list(ListSubnetGroupsOptions options);
|
||||
|
||||
/**
|
||||
* @see SubnetGroupClient#delete()
|
||||
* @see SubnetGroupApi#delete()
|
||||
*/
|
||||
@POST
|
||||
@Path("/")
|
@ -10,9 +10,9 @@ import org.jclouds.collect.PaginatedIterables;
|
||||
import org.jclouds.rds.domain.Instance;
|
||||
import org.jclouds.rds.domain.SecurityGroup;
|
||||
import org.jclouds.rds.domain.SubnetGroup;
|
||||
import org.jclouds.rds.features.InstanceClient;
|
||||
import org.jclouds.rds.features.SecurityGroupClient;
|
||||
import org.jclouds.rds.features.SubnetGroupClient;
|
||||
import org.jclouds.rds.features.InstanceApi;
|
||||
import org.jclouds.rds.features.SecurityGroupApi;
|
||||
import org.jclouds.rds.features.SubnetGroupApi;
|
||||
import org.jclouds.rds.options.ListInstancesOptions;
|
||||
import org.jclouds.rds.options.ListSecurityGroupsOptions;
|
||||
import org.jclouds.rds.options.ListSubnetGroupsOptions;
|
||||
@ -32,93 +32,93 @@ public class RDSTest {
|
||||
|
||||
@Test
|
||||
public void testSinglePageResultInstance() throws Exception {
|
||||
InstanceClient instanceClient = createMock(InstanceClient.class);
|
||||
InstanceApi instanceApi = createMock(InstanceApi.class);
|
||||
ListInstancesOptions options = new ListInstancesOptions();
|
||||
PaginatedIterable<Instance> response = PaginatedIterables.forward(ImmutableSet.of(createMock(Instance.class)));
|
||||
|
||||
expect(instanceClient.list(options)).andReturn(response).once();
|
||||
expect(instanceApi.list(options)).andReturn(response).once();
|
||||
|
||||
EasyMock.replay(instanceClient);
|
||||
EasyMock.replay(instanceApi);
|
||||
|
||||
Assert.assertEquals(1, Iterables.size(RDS.listInstances(instanceClient, options)));
|
||||
Assert.assertEquals(1, Iterables.size(RDS.listInstances(instanceApi, options)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMultiPageResultInstance() throws Exception {
|
||||
InstanceClient instanceClient = createMock(InstanceClient.class);
|
||||
InstanceApi instanceApi = createMock(InstanceApi.class);
|
||||
ListInstancesOptions options = new ListInstancesOptions();
|
||||
PaginatedIterable<Instance> response1 = PaginatedIterables.forwardWithMarker(
|
||||
ImmutableSet.of(createMock(Instance.class)), "NEXTTOKEN");
|
||||
PaginatedIterable<Instance> response2 = PaginatedIterables.forward(ImmutableSet.of(createMock(Instance.class)));
|
||||
|
||||
expect(instanceClient.list(anyObject(ListInstancesOptions.class))).andReturn(response1).once();
|
||||
expect(instanceClient.list(anyObject(ListInstancesOptions.class))).andReturn(response2).once();
|
||||
expect(instanceApi.list(anyObject(ListInstancesOptions.class))).andReturn(response1).once();
|
||||
expect(instanceApi.list(anyObject(ListInstancesOptions.class))).andReturn(response2).once();
|
||||
|
||||
EasyMock.replay(instanceClient);
|
||||
EasyMock.replay(instanceApi);
|
||||
|
||||
Assert.assertEquals(2, Iterables.size(RDS.listInstances(instanceClient, options)));
|
||||
Assert.assertEquals(2, Iterables.size(RDS.listInstances(instanceApi, options)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSinglePageResultSubnetGroup() throws Exception {
|
||||
SubnetGroupClient subnetGroupClient = createMock(SubnetGroupClient.class);
|
||||
SubnetGroupApi subnetGroupApi = createMock(SubnetGroupApi.class);
|
||||
ListSubnetGroupsOptions options = new ListSubnetGroupsOptions();
|
||||
PaginatedIterable<SubnetGroup> response = PaginatedIterables.forward(ImmutableSet
|
||||
.of(createMock(SubnetGroup.class)));
|
||||
|
||||
expect(subnetGroupClient.list(options)).andReturn(response).once();
|
||||
expect(subnetGroupApi.list(options)).andReturn(response).once();
|
||||
|
||||
EasyMock.replay(subnetGroupClient);
|
||||
EasyMock.replay(subnetGroupApi);
|
||||
|
||||
Assert.assertEquals(1, Iterables.size(RDS.listSubnetGroups(subnetGroupClient, options)));
|
||||
Assert.assertEquals(1, Iterables.size(RDS.listSubnetGroups(subnetGroupApi, options)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMultiPageResultSubnetGroup() throws Exception {
|
||||
SubnetGroupClient subnetGroupClient = createMock(SubnetGroupClient.class);
|
||||
SubnetGroupApi subnetGroupApi = createMock(SubnetGroupApi.class);
|
||||
ListSubnetGroupsOptions options = new ListSubnetGroupsOptions();
|
||||
PaginatedIterable<SubnetGroup> response1 = PaginatedIterables.forwardWithMarker(
|
||||
ImmutableSet.of(createMock(SubnetGroup.class)), "NEXTTOKEN");
|
||||
PaginatedIterable<SubnetGroup> response2 = PaginatedIterables.forward(ImmutableSet
|
||||
.of(createMock(SubnetGroup.class)));
|
||||
|
||||
expect(subnetGroupClient.list(anyObject(ListSubnetGroupsOptions.class))).andReturn(response1).once();
|
||||
expect(subnetGroupClient.list(anyObject(ListSubnetGroupsOptions.class))).andReturn(response2).once();
|
||||
expect(subnetGroupApi.list(anyObject(ListSubnetGroupsOptions.class))).andReturn(response1).once();
|
||||
expect(subnetGroupApi.list(anyObject(ListSubnetGroupsOptions.class))).andReturn(response2).once();
|
||||
|
||||
EasyMock.replay(subnetGroupClient);
|
||||
EasyMock.replay(subnetGroupApi);
|
||||
|
||||
Assert.assertEquals(2, Iterables.size(RDS.listSubnetGroups(subnetGroupClient, options)));
|
||||
Assert.assertEquals(2, Iterables.size(RDS.listSubnetGroups(subnetGroupApi, options)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSinglePageResultSecurityGroup() throws Exception {
|
||||
SecurityGroupClient securityGroupClient = createMock(SecurityGroupClient.class);
|
||||
SecurityGroupApi securityGroupApi = createMock(SecurityGroupApi.class);
|
||||
ListSecurityGroupsOptions options = new ListSecurityGroupsOptions();
|
||||
PaginatedIterable<SecurityGroup> response = PaginatedIterables.forward(ImmutableSet
|
||||
.of(createMock(SecurityGroup.class)));
|
||||
|
||||
expect(securityGroupClient.list(options)).andReturn(response).once();
|
||||
expect(securityGroupApi.list(options)).andReturn(response).once();
|
||||
|
||||
EasyMock.replay(securityGroupClient);
|
||||
EasyMock.replay(securityGroupApi);
|
||||
|
||||
Assert.assertEquals(1, Iterables.size(RDS.listSecurityGroups(securityGroupClient, options)));
|
||||
Assert.assertEquals(1, Iterables.size(RDS.listSecurityGroups(securityGroupApi, options)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMultiPageResultSecurityGroup() throws Exception {
|
||||
SecurityGroupClient securityGroupClient = createMock(SecurityGroupClient.class);
|
||||
SecurityGroupApi securityGroupApi = createMock(SecurityGroupApi.class);
|
||||
ListSecurityGroupsOptions options = new ListSecurityGroupsOptions();
|
||||
PaginatedIterable<SecurityGroup> response1 = PaginatedIterables.forwardWithMarker(
|
||||
ImmutableSet.of(createMock(SecurityGroup.class)), "NEXTTOKEN");
|
||||
PaginatedIterable<SecurityGroup> response2 = PaginatedIterables.forward(ImmutableSet
|
||||
.of(createMock(SecurityGroup.class)));
|
||||
|
||||
expect(securityGroupClient.list(anyObject(ListSecurityGroupsOptions.class))).andReturn(response1).once();
|
||||
expect(securityGroupClient.list(anyObject(ListSecurityGroupsOptions.class))).andReturn(response2).once();
|
||||
expect(securityGroupApi.list(anyObject(ListSecurityGroupsOptions.class))).andReturn(response1).once();
|
||||
expect(securityGroupApi.list(anyObject(ListSecurityGroupsOptions.class))).andReturn(response2).once();
|
||||
|
||||
EasyMock.replay(securityGroupClient);
|
||||
EasyMock.replay(securityGroupApi);
|
||||
|
||||
Assert.assertEquals(2, Iterables.size(RDS.listSecurityGroups(securityGroupClient, options)));
|
||||
Assert.assertEquals(2, Iterables.size(RDS.listSecurityGroups(securityGroupApi, options)));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -27,8 +27,8 @@ import java.util.TimeZone;
|
||||
|
||||
import org.jclouds.http.HttpRequest;
|
||||
import org.jclouds.http.HttpResponse;
|
||||
import org.jclouds.rds.RDSClient;
|
||||
import org.jclouds.rds.internal.BaseRDSClientExpectTest;
|
||||
import org.jclouds.rds.RDSApi;
|
||||
import org.jclouds.rds.internal.BaseRDSApiExpectTest;
|
||||
import org.jclouds.rds.parse.DescribeDBInstancesResponseTest;
|
||||
import org.jclouds.rds.parse.GetInstanceResponseTest;
|
||||
import org.jclouds.rest.ResourceNotFoundException;
|
||||
@ -39,10 +39,10 @@ import com.google.common.collect.ImmutableMultimap;
|
||||
/**
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "unit", testName = "InstanceClientExpectTest")
|
||||
public class InstanceClientExpectTest extends BaseRDSClientExpectTest {
|
||||
@Test(groups = "unit", testName = "InstanceApiExpectTest")
|
||||
public class InstanceApiExpectTest extends BaseRDSApiExpectTest {
|
||||
|
||||
public InstanceClientExpectTest() {
|
||||
public InstanceApiExpectTest() {
|
||||
TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
|
||||
}
|
||||
|
||||
@ -71,20 +71,20 @@ public class InstanceClientExpectTest extends BaseRDSClientExpectTest {
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/get_instance.xml", "text/xml")).build();
|
||||
|
||||
RDSClient clientWhenExist = requestSendsResponse(
|
||||
RDSApi apiWhenExist = requestSendsResponse(
|
||||
get, getResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getInstanceClient().get("id").toString(), new GetInstanceResponseTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getInstanceApi().get("id").toString(), new GetInstanceResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
public void testGetWhenResponseIs404() throws Exception {
|
||||
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
RDSClient clientWhenDontExist = requestSendsResponse(
|
||||
RDSApi apiWhenDontExist = requestSendsResponse(
|
||||
get, getResponse);
|
||||
|
||||
assertNull(clientWhenDontExist.getInstanceClient().get("id"));
|
||||
assertNull(apiWhenDontExist.getInstanceApi().get("id"));
|
||||
}
|
||||
|
||||
HttpRequest list = HttpRequest.builder()
|
||||
@ -110,10 +110,10 @@ public class InstanceClientExpectTest extends BaseRDSClientExpectTest {
|
||||
HttpResponse listResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/describe_instances.xml", "text/xml")).build();
|
||||
|
||||
RDSClient clientWhenExist = requestSendsResponse(
|
||||
RDSApi apiWhenExist = requestSendsResponse(
|
||||
list, listResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getInstanceClient().list().toString(), new DescribeDBInstancesResponseTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getInstanceApi().list().toString(), new DescribeDBInstancesResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
// TODO: this should really be an empty set
|
||||
@ -122,10 +122,10 @@ public class InstanceClientExpectTest extends BaseRDSClientExpectTest {
|
||||
|
||||
HttpResponse listResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
RDSClient clientWhenDontExist = requestSendsResponse(
|
||||
RDSApi apiWhenDontExist = requestSendsResponse(
|
||||
list, listResponse);
|
||||
|
||||
clientWhenDontExist.getInstanceClient().list();
|
||||
apiWhenDontExist.getInstanceApi().list();
|
||||
}
|
||||
|
||||
public void testListWithOptionsWhenResponseIs2xx() throws Exception {
|
||||
@ -151,10 +151,10 @@ public class InstanceClientExpectTest extends BaseRDSClientExpectTest {
|
||||
HttpResponse listWithOptionsResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/describe_instances.xml", "text/xml")).build();
|
||||
|
||||
RDSClient clientWhenWithOptionsExist = requestSendsResponse(listWithOptions,
|
||||
RDSApi apiWhenWithOptionsExist = requestSendsResponse(listWithOptions,
|
||||
listWithOptionsResponse);
|
||||
|
||||
assertEquals(clientWhenWithOptionsExist.getInstanceClient().list(afterMarker("MARKER")).toString(),
|
||||
assertEquals(apiWhenWithOptionsExist.getInstanceApi().list(afterMarker("MARKER")).toString(),
|
||||
new DescribeDBInstancesResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
@ -181,17 +181,17 @@ public class InstanceClientExpectTest extends BaseRDSClientExpectTest {
|
||||
|
||||
HttpResponse deleteResponse = HttpResponse.builder().statusCode(200).build();
|
||||
|
||||
RDSClient clientWhenExist = requestSendsResponse(delete, deleteResponse);
|
||||
RDSApi apiWhenExist = requestSendsResponse(delete, deleteResponse);
|
||||
|
||||
clientWhenExist.getInstanceClient().delete("id");
|
||||
apiWhenExist.getInstanceApi().delete("id");
|
||||
}
|
||||
|
||||
public void testDeleteWhenResponseIs404() throws Exception {
|
||||
|
||||
HttpResponse deleteResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
RDSClient clientWhenDontExist = requestSendsResponse(delete, deleteResponse);
|
||||
RDSApi apiWhenDontExist = requestSendsResponse(delete, deleteResponse);
|
||||
|
||||
clientWhenDontExist.getInstanceClient().delete("id");
|
||||
apiWhenDontExist.getInstanceApi().delete("id");
|
||||
}
|
||||
}
|
@ -22,7 +22,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import org.jclouds.collect.PaginatedIterable;
|
||||
import org.jclouds.rds.domain.Instance;
|
||||
import org.jclouds.rds.internal.BaseRDSClientLiveTest;
|
||||
import org.jclouds.rds.internal.BaseRDSApiLiveTest;
|
||||
import org.jclouds.rds.options.ListInstancesOptions;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
@ -32,8 +32,8 @@ import com.google.common.collect.Iterables;
|
||||
/**
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live", testName = "InstanceClientLiveTest")
|
||||
public class InstanceClientLiveTest extends BaseRDSClientLiveTest {
|
||||
@Test(groups = "live", testName = "InstanceApiLiveTest")
|
||||
public class InstanceApiLiveTest extends BaseRDSApiLiveTest {
|
||||
|
||||
private void checkInstance(Instance instance) {
|
||||
checkNotNull(instance.getId(), "Id cannot be null for a Instance: %s", instance);
|
||||
@ -44,12 +44,12 @@ public class InstanceClientLiveTest extends BaseRDSClientLiveTest {
|
||||
"While SubnetGroup can be null for a Instance, its Optional wrapper cannot: %s", instance);
|
||||
// TODO: other checks
|
||||
if (instance.getSubnetGroup().isPresent())
|
||||
SubnetGroupClientLiveTest.checkSubnetGroup(instance.getSubnetGroup().get());
|
||||
SubnetGroupApiLiveTest.checkSubnetGroup(instance.getSubnetGroup().get());
|
||||
}
|
||||
|
||||
@Test
|
||||
protected void testDescribeInstances() {
|
||||
PaginatedIterable<Instance> response = client().list();
|
||||
PaginatedIterable<Instance> response = api().list();
|
||||
|
||||
for (Instance instance : response) {
|
||||
checkInstance(instance);
|
||||
@ -57,17 +57,17 @@ public class InstanceClientLiveTest extends BaseRDSClientLiveTest {
|
||||
|
||||
if (Iterables.size(response) > 0) {
|
||||
Instance instance = response.iterator().next();
|
||||
Assert.assertEquals(client().get(instance.getId()), instance);
|
||||
Assert.assertEquals(api().get(instance.getId()), instance);
|
||||
}
|
||||
|
||||
// Test with a Marker, even if it's null
|
||||
response = client().list(ListInstancesOptions.Builder.afterMarker(response.getNextMarker()));
|
||||
response = api().list(ListInstancesOptions.Builder.afterMarker(response.getNextMarker()));
|
||||
for (Instance instance : response) {
|
||||
checkInstance(instance);
|
||||
}
|
||||
}
|
||||
|
||||
protected InstanceClient client() {
|
||||
return context.getApi().getInstanceClient();
|
||||
protected InstanceApi api() {
|
||||
return context.getApi().getInstanceApi();
|
||||
}
|
||||
}
|
@ -27,8 +27,8 @@ import java.util.TimeZone;
|
||||
|
||||
import org.jclouds.http.HttpRequest;
|
||||
import org.jclouds.http.HttpResponse;
|
||||
import org.jclouds.rds.RDSClient;
|
||||
import org.jclouds.rds.internal.BaseRDSClientExpectTest;
|
||||
import org.jclouds.rds.RDSApi;
|
||||
import org.jclouds.rds.internal.BaseRDSApiExpectTest;
|
||||
import org.jclouds.rds.parse.DescribeDBSecurityGroupsResponseTest;
|
||||
import org.jclouds.rds.parse.GetSecurityGroupResponseTest;
|
||||
import org.jclouds.rest.ResourceNotFoundException;
|
||||
@ -39,10 +39,10 @@ import com.google.common.collect.ImmutableMultimap;
|
||||
/**
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "unit", testName = "SecurityGroupClientExpectTest")
|
||||
public class SecurityGroupClientExpectTest extends BaseRDSClientExpectTest {
|
||||
@Test(groups = "unit", testName = "SecurityGroupApiExpectTest")
|
||||
public class SecurityGroupApiExpectTest extends BaseRDSApiExpectTest {
|
||||
|
||||
public SecurityGroupClientExpectTest() {
|
||||
public SecurityGroupApiExpectTest() {
|
||||
TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
|
||||
}
|
||||
|
||||
@ -71,20 +71,20 @@ public class SecurityGroupClientExpectTest extends BaseRDSClientExpectTest {
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/get_securitygroup.xml", "text/xml")).build();
|
||||
|
||||
RDSClient clientWhenExist = requestSendsResponse(
|
||||
RDSApi apiWhenExist = requestSendsResponse(
|
||||
get, getResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getSecurityGroupClient().get("name").toString(), new GetSecurityGroupResponseTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getSecurityGroupApi().get("name").toString(), new GetSecurityGroupResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
public void testGetWhenResponseIs404() throws Exception {
|
||||
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
RDSClient clientWhenDontExist = requestSendsResponse(
|
||||
RDSApi apiWhenDontExist = requestSendsResponse(
|
||||
get, getResponse);
|
||||
|
||||
assertNull(clientWhenDontExist.getSecurityGroupClient().get("name"));
|
||||
assertNull(apiWhenDontExist.getSecurityGroupApi().get("name"));
|
||||
}
|
||||
|
||||
HttpRequest list = HttpRequest.builder()
|
||||
@ -110,10 +110,10 @@ public class SecurityGroupClientExpectTest extends BaseRDSClientExpectTest {
|
||||
HttpResponse listResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/describe_securitygroups.xml", "text/xml")).build();
|
||||
|
||||
RDSClient clientWhenExist = requestSendsResponse(
|
||||
RDSApi apiWhenExist = requestSendsResponse(
|
||||
list, listResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getSecurityGroupClient().list().toString(), new DescribeDBSecurityGroupsResponseTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getSecurityGroupApi().list().toString(), new DescribeDBSecurityGroupsResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
// TODO: this should really be an empty set
|
||||
@ -122,10 +122,10 @@ public class SecurityGroupClientExpectTest extends BaseRDSClientExpectTest {
|
||||
|
||||
HttpResponse listResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
RDSClient clientWhenDontExist = requestSendsResponse(
|
||||
RDSApi apiWhenDontExist = requestSendsResponse(
|
||||
list, listResponse);
|
||||
|
||||
clientWhenDontExist.getSecurityGroupClient().list();
|
||||
apiWhenDontExist.getSecurityGroupApi().list();
|
||||
}
|
||||
|
||||
public void testListWithOptionsWhenResponseIs2xx() throws Exception {
|
||||
@ -151,10 +151,10 @@ public class SecurityGroupClientExpectTest extends BaseRDSClientExpectTest {
|
||||
HttpResponse listWithOptionsResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/describe_securitygroups.xml", "text/xml")).build();
|
||||
|
||||
RDSClient clientWhenWithOptionsExist = requestSendsResponse(listWithOptions,
|
||||
RDSApi apiWhenWithOptionsExist = requestSendsResponse(listWithOptions,
|
||||
listWithOptionsResponse);
|
||||
|
||||
assertEquals(clientWhenWithOptionsExist.getSecurityGroupClient().list(afterMarker("MARKER")).toString(),
|
||||
assertEquals(apiWhenWithOptionsExist.getSecurityGroupApi().list(afterMarker("MARKER")).toString(),
|
||||
new DescribeDBSecurityGroupsResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
@ -181,17 +181,17 @@ public class SecurityGroupClientExpectTest extends BaseRDSClientExpectTest {
|
||||
|
||||
HttpResponse deleteResponse = HttpResponse.builder().statusCode(200).build();
|
||||
|
||||
RDSClient clientWhenExist = requestSendsResponse(delete, deleteResponse);
|
||||
RDSApi apiWhenExist = requestSendsResponse(delete, deleteResponse);
|
||||
|
||||
clientWhenExist.getSecurityGroupClient().delete("name");
|
||||
apiWhenExist.getSecurityGroupApi().delete("name");
|
||||
}
|
||||
|
||||
public void testDeleteWhenResponseIs404() throws Exception {
|
||||
|
||||
HttpResponse deleteResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
RDSClient clientWhenDontExist = requestSendsResponse(delete, deleteResponse);
|
||||
RDSApi apiWhenDontExist = requestSendsResponse(delete, deleteResponse);
|
||||
|
||||
clientWhenDontExist.getSecurityGroupClient().delete("name");
|
||||
apiWhenDontExist.getSecurityGroupApi().delete("name");
|
||||
}
|
||||
}
|
@ -23,7 +23,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
||||
import org.jclouds.collect.PaginatedIterable;
|
||||
import org.jclouds.rds.domain.EC2SecurityGroup;
|
||||
import org.jclouds.rds.domain.SecurityGroup;
|
||||
import org.jclouds.rds.internal.BaseRDSClientLiveTest;
|
||||
import org.jclouds.rds.internal.BaseRDSApiLiveTest;
|
||||
import org.jclouds.rds.options.ListSecurityGroupsOptions;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
@ -33,8 +33,8 @@ import com.google.common.collect.Iterables;
|
||||
/**
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live", testName = "SecurityGroupClientLiveTest")
|
||||
public class SecurityGroupClientLiveTest extends BaseRDSClientLiveTest {
|
||||
@Test(groups = "live", testName = "SecurityGroupApiLiveTest")
|
||||
public class SecurityGroupApiLiveTest extends BaseRDSApiLiveTest {
|
||||
|
||||
static void checkSecurityGroup(SecurityGroup securityGroup) {
|
||||
checkNotNull(securityGroup.getName(), "Name cannot be null for a SecurityGroup: %s", securityGroup);
|
||||
@ -55,7 +55,7 @@ public class SecurityGroupClientLiveTest extends BaseRDSClientLiveTest {
|
||||
|
||||
@Test
|
||||
protected void testDescribeSecurityGroups() {
|
||||
PaginatedIterable<SecurityGroup> response = client().list();
|
||||
PaginatedIterable<SecurityGroup> response = api().list();
|
||||
|
||||
for (SecurityGroup securityGroup : response) {
|
||||
checkSecurityGroup(securityGroup);
|
||||
@ -63,17 +63,17 @@ public class SecurityGroupClientLiveTest extends BaseRDSClientLiveTest {
|
||||
|
||||
if (Iterables.size(response) > 0) {
|
||||
SecurityGroup securityGroup = response.iterator().next();
|
||||
Assert.assertEquals(client().get(securityGroup.getName()), securityGroup);
|
||||
Assert.assertEquals(api().get(securityGroup.getName()), securityGroup);
|
||||
}
|
||||
|
||||
// Test with a Marker, even if it's null
|
||||
response = client().list(ListSecurityGroupsOptions.Builder.afterMarker(response.getNextMarker()));
|
||||
response = api().list(ListSecurityGroupsOptions.Builder.afterMarker(response.getNextMarker()));
|
||||
for (SecurityGroup securityGroup : response) {
|
||||
checkSecurityGroup(securityGroup);
|
||||
}
|
||||
}
|
||||
|
||||
protected SecurityGroupClient client() {
|
||||
return context.getApi().getSecurityGroupClient();
|
||||
protected SecurityGroupApi api() {
|
||||
return context.getApi().getSecurityGroupApi();
|
||||
}
|
||||
}
|
@ -27,8 +27,8 @@ import java.util.TimeZone;
|
||||
|
||||
import org.jclouds.http.HttpRequest;
|
||||
import org.jclouds.http.HttpResponse;
|
||||
import org.jclouds.rds.RDSClient;
|
||||
import org.jclouds.rds.internal.BaseRDSClientExpectTest;
|
||||
import org.jclouds.rds.RDSApi;
|
||||
import org.jclouds.rds.internal.BaseRDSApiExpectTest;
|
||||
import org.jclouds.rds.parse.DescribeDBSubnetGroupsResponseTest;
|
||||
import org.jclouds.rds.parse.GetSubnetGroupResponseTest;
|
||||
import org.jclouds.rest.ResourceNotFoundException;
|
||||
@ -39,10 +39,10 @@ import com.google.common.collect.ImmutableMultimap;
|
||||
/**
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "unit", testName = "SubnetGroupClientExpectTest")
|
||||
public class SubnetGroupClientExpectTest extends BaseRDSClientExpectTest {
|
||||
@Test(groups = "unit", testName = "SubnetGroupApiExpectTest")
|
||||
public class SubnetGroupApiExpectTest extends BaseRDSApiExpectTest {
|
||||
|
||||
public SubnetGroupClientExpectTest() {
|
||||
public SubnetGroupApiExpectTest() {
|
||||
TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
|
||||
}
|
||||
|
||||
@ -71,20 +71,20 @@ public class SubnetGroupClientExpectTest extends BaseRDSClientExpectTest {
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/get_subnetgroup.xml", "text/xml")).build();
|
||||
|
||||
RDSClient clientWhenExist = requestSendsResponse(
|
||||
RDSApi apiWhenExist = requestSendsResponse(
|
||||
get, getResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getSubnetGroupClient().get("name").toString(), new GetSubnetGroupResponseTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getSubnetGroupApi().get("name").toString(), new GetSubnetGroupResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
public void testGetWhenResponseIs404() throws Exception {
|
||||
|
||||
HttpResponse getResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
RDSClient clientWhenDontExist = requestSendsResponse(
|
||||
RDSApi apiWhenDontExist = requestSendsResponse(
|
||||
get, getResponse);
|
||||
|
||||
assertNull(clientWhenDontExist.getSubnetGroupClient().get("name"));
|
||||
assertNull(apiWhenDontExist.getSubnetGroupApi().get("name"));
|
||||
}
|
||||
|
||||
HttpRequest list = HttpRequest.builder()
|
||||
@ -110,10 +110,10 @@ public class SubnetGroupClientExpectTest extends BaseRDSClientExpectTest {
|
||||
HttpResponse listResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/describe_subnetgroups.xml", "text/xml")).build();
|
||||
|
||||
RDSClient clientWhenExist = requestSendsResponse(
|
||||
RDSApi apiWhenExist = requestSendsResponse(
|
||||
list, listResponse);
|
||||
|
||||
assertEquals(clientWhenExist.getSubnetGroupClient().list().toString(), new DescribeDBSubnetGroupsResponseTest().expected().toString());
|
||||
assertEquals(apiWhenExist.getSubnetGroupApi().list().toString(), new DescribeDBSubnetGroupsResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
// TODO: this should really be an empty set
|
||||
@ -122,10 +122,10 @@ public class SubnetGroupClientExpectTest extends BaseRDSClientExpectTest {
|
||||
|
||||
HttpResponse listResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
RDSClient clientWhenDontExist = requestSendsResponse(
|
||||
RDSApi apiWhenDontExist = requestSendsResponse(
|
||||
list, listResponse);
|
||||
|
||||
clientWhenDontExist.getSubnetGroupClient().list();
|
||||
apiWhenDontExist.getSubnetGroupApi().list();
|
||||
}
|
||||
|
||||
public void testListWithOptionsWhenResponseIs2xx() throws Exception {
|
||||
@ -151,10 +151,10 @@ public class SubnetGroupClientExpectTest extends BaseRDSClientExpectTest {
|
||||
HttpResponse listWithOptionsResponse = HttpResponse.builder().statusCode(200)
|
||||
.payload(payloadFromResourceWithContentType("/describe_subnetgroups.xml", "text/xml")).build();
|
||||
|
||||
RDSClient clientWhenWithOptionsExist = requestSendsResponse(listWithOptions,
|
||||
RDSApi apiWhenWithOptionsExist = requestSendsResponse(listWithOptions,
|
||||
listWithOptionsResponse);
|
||||
|
||||
assertEquals(clientWhenWithOptionsExist.getSubnetGroupClient().list(afterMarker("MARKER")).toString(),
|
||||
assertEquals(apiWhenWithOptionsExist.getSubnetGroupApi().list(afterMarker("MARKER")).toString(),
|
||||
new DescribeDBSubnetGroupsResponseTest().expected().toString());
|
||||
}
|
||||
|
||||
@ -181,17 +181,17 @@ public class SubnetGroupClientExpectTest extends BaseRDSClientExpectTest {
|
||||
|
||||
HttpResponse deleteResponse = HttpResponse.builder().statusCode(200).build();
|
||||
|
||||
RDSClient clientWhenExist = requestSendsResponse(delete, deleteResponse);
|
||||
RDSApi apiWhenExist = requestSendsResponse(delete, deleteResponse);
|
||||
|
||||
clientWhenExist.getSubnetGroupClient().delete("name");
|
||||
apiWhenExist.getSubnetGroupApi().delete("name");
|
||||
}
|
||||
|
||||
public void testDeleteWhenResponseIs404() throws Exception {
|
||||
|
||||
HttpResponse deleteResponse = HttpResponse.builder().statusCode(404).build();
|
||||
|
||||
RDSClient clientWhenDontExist = requestSendsResponse(delete, deleteResponse);
|
||||
RDSApi apiWhenDontExist = requestSendsResponse(delete, deleteResponse);
|
||||
|
||||
clientWhenDontExist.getSubnetGroupClient().delete("name");
|
||||
apiWhenDontExist.getSubnetGroupApi().delete("name");
|
||||
}
|
||||
}
|
@ -24,7 +24,7 @@ import static com.google.common.base.Preconditions.checkState;
|
||||
import org.jclouds.collect.PaginatedIterable;
|
||||
import org.jclouds.rds.domain.Subnet;
|
||||
import org.jclouds.rds.domain.SubnetGroup;
|
||||
import org.jclouds.rds.internal.BaseRDSClientLiveTest;
|
||||
import org.jclouds.rds.internal.BaseRDSApiLiveTest;
|
||||
import org.jclouds.rds.options.ListSubnetGroupsOptions;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
@ -34,8 +34,8 @@ import com.google.common.collect.Iterables;
|
||||
/**
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live", testName = "SubnetGroupClientLiveTest")
|
||||
public class SubnetGroupClientLiveTest extends BaseRDSClientLiveTest {
|
||||
@Test(groups = "live", testName = "SubnetGroupApiLiveTest")
|
||||
public class SubnetGroupApiLiveTest extends BaseRDSApiLiveTest {
|
||||
|
||||
static void checkSubnetGroup(SubnetGroup subnetGroup) {
|
||||
checkNotNull(subnetGroup.getName(), "Name cannot be null for a SubnetGroup: %s", subnetGroup);
|
||||
@ -55,7 +55,7 @@ public class SubnetGroupClientLiveTest extends BaseRDSClientLiveTest {
|
||||
|
||||
@Test
|
||||
protected void testDescribeSubnetGroups() {
|
||||
PaginatedIterable<SubnetGroup> response = client().list();
|
||||
PaginatedIterable<SubnetGroup> response = api().list();
|
||||
|
||||
for (SubnetGroup subnetGroup : response) {
|
||||
checkSubnetGroup(subnetGroup);
|
||||
@ -63,17 +63,17 @@ public class SubnetGroupClientLiveTest extends BaseRDSClientLiveTest {
|
||||
|
||||
if (Iterables.size(response) > 0) {
|
||||
SubnetGroup subnetGroup = response.iterator().next();
|
||||
Assert.assertEquals(client().get(subnetGroup.getName()), subnetGroup);
|
||||
Assert.assertEquals(api().get(subnetGroup.getName()), subnetGroup);
|
||||
}
|
||||
|
||||
// Test with a Marker, even if it's null
|
||||
response = client().list(ListSubnetGroupsOptions.Builder.afterMarker(response.getNextMarker()));
|
||||
response = api().list(ListSubnetGroupsOptions.Builder.afterMarker(response.getNextMarker()));
|
||||
for (SubnetGroup subnetGroup : response) {
|
||||
checkSubnetGroup(subnetGroup);
|
||||
}
|
||||
}
|
||||
|
||||
protected SubnetGroupClient client() {
|
||||
return context.getApi().getSubnetGroupClient();
|
||||
protected SubnetGroupApi api() {
|
||||
return context.getApi().getSubnetGroupApi();
|
||||
}
|
||||
}
|
@ -18,13 +18,13 @@
|
||||
*/
|
||||
package org.jclouds.rds.internal;
|
||||
|
||||
import org.jclouds.rds.RDSClient;
|
||||
import org.jclouds.rds.RDSApi;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
public class BaseRDSClientExpectTest extends BaseRDSExpectTest<RDSClient> {
|
||||
public class BaseRDSApiExpectTest extends BaseRDSExpectTest<RDSApi> {
|
||||
|
||||
}
|
@ -20,8 +20,8 @@ package org.jclouds.rds.internal;
|
||||
|
||||
import org.jclouds.apis.BaseContextLiveTest;
|
||||
import org.jclouds.rds.RDSApiMetadata;
|
||||
import org.jclouds.rds.RDSAsyncClient;
|
||||
import org.jclouds.rds.RDSClient;
|
||||
import org.jclouds.rds.RDSAsyncApi;
|
||||
import org.jclouds.rds.RDSApi;
|
||||
import org.jclouds.rest.RestContext;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
@ -32,14 +32,14 @@ import com.google.common.reflect.TypeToken;
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live")
|
||||
public class BaseRDSClientLiveTest extends BaseContextLiveTest<RestContext<RDSClient, RDSAsyncClient>> {
|
||||
public class BaseRDSApiLiveTest extends BaseContextLiveTest<RestContext<RDSApi, RDSAsyncApi>> {
|
||||
|
||||
public BaseRDSClientLiveTest() {
|
||||
public BaseRDSApiLiveTest() {
|
||||
provider = "rds";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected TypeToken<RestContext<RDSClient, RDSAsyncClient>> contextType() {
|
||||
protected TypeToken<RestContext<RDSApi, RDSAsyncApi>> contextType() {
|
||||
return RDSApiMetadata.CONTEXT_TOKEN;
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ package org.jclouds.rds.internal;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
import org.jclouds.rds.RDSAsyncClient;
|
||||
import org.jclouds.rds.RDSAsyncApi;
|
||||
import org.jclouds.http.HttpRequest;
|
||||
import org.jclouds.http.HttpResponse;
|
||||
|
||||
@ -31,8 +31,8 @@ import com.google.inject.Module;
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
public class BaseRDSAsyncClientExpectTest extends BaseRDSExpectTest<RDSAsyncClient> {
|
||||
public RDSAsyncClient createClient(Function<HttpRequest, HttpResponse> fn, Module module, Properties props) {
|
||||
return createInjector(fn, module, props).getInstance(RDSAsyncClient.class);
|
||||
public class BaseRDSAsyncApiExpectTest extends BaseRDSExpectTest<RDSAsyncApi> {
|
||||
public RDSAsyncApi createApi(Function<HttpRequest, HttpResponse> fn, Module module, Properties props) {
|
||||
return createInjector(fn, module, props).getInstance(RDSAsyncApi.class);
|
||||
}
|
||||
}
|
@ -29,7 +29,7 @@ import org.jclouds.rds.config.RDSRestClientModule;
|
||||
import org.jclouds.location.config.LocationModule;
|
||||
import org.jclouds.location.suppliers.RegionIdToURISupplier;
|
||||
import org.jclouds.rest.ConfiguresRestClient;
|
||||
import org.jclouds.rest.internal.BaseRestClientExpectTest;
|
||||
import org.jclouds.rest.internal.BaseRestApiExpectTest;
|
||||
import org.jclouds.util.Suppliers2;
|
||||
|
||||
import com.google.common.base.Supplier;
|
||||
@ -40,7 +40,7 @@ import com.google.inject.Module;
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
public class BaseRDSExpectTest<T> extends BaseRestClientExpectTest<T> {
|
||||
public class BaseRDSExpectTest<T> extends BaseRestApiExpectTest<T> {
|
||||
|
||||
public BaseRDSExpectTest() {
|
||||
provider = "rds";
|
||||
|
Loading…
x
Reference in New Issue
Block a user