diff --git a/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/CinderApi.java b/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/CinderApi.java index 879496ca35..42b36da769 100644 --- a/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/CinderApi.java +++ b/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/CinderApi.java @@ -18,65 +18,113 @@ package org.jclouds.openstack.cinder.v1; import java.io.Closeable; import java.util.Set; + import org.jclouds.javax.annotation.Nullable; -import org.jclouds.location.Zone; -import org.jclouds.location.functions.ZoneToEndpoint; +import org.jclouds.location.Region; +import org.jclouds.location.functions.RegionToEndpoint; +import org.jclouds.openstack.cinder.v1.domain.Snapshot; +import org.jclouds.openstack.cinder.v1.domain.Volume; +import org.jclouds.openstack.cinder.v1.domain.VolumeType; import org.jclouds.openstack.cinder.v1.features.QuotaApi; import org.jclouds.openstack.cinder.v1.features.SnapshotApi; import org.jclouds.openstack.cinder.v1.features.VolumeApi; import org.jclouds.openstack.cinder.v1.features.VolumeTypeApi; import org.jclouds.openstack.v2_0.features.ExtensionApi; +import org.jclouds.openstack.v2_0.services.Extension; import org.jclouds.rest.annotations.Delegate; import org.jclouds.rest.annotations.EndpointParam; import com.google.inject.Provides; /** - * Provides synchronous access to Cinder. - * - * @see API Doc + * Provides synchronous access to OpenStack Block Storage (Cinder) v1 API. */ public interface CinderApi extends Closeable { + /** - * @return the Zone codes configured + * @return the Region codes configured */ @Provides - @Zone - Set getConfiguredZones(); - + @Region + Set getConfiguredRegions(); + /** - * Provides synchronous access to Extension features. + * Provides synchronous access to {@link Extension} features. */ @Delegate + ExtensionApi getExtensionApi(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); + + /** + * Provides synchronous access to {@link Volume} features. + */ + @Delegate + VolumeApi getVolumeApi(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); + + /** + * Provides synchronous access to {@link VolumeType} features. + */ + @Delegate + VolumeTypeApi getVolumeTypeApi(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); + + /** + * Provides synchronous access to {@link Snapshot} features. + */ + @Delegate + SnapshotApi getSnapshotApi(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); + + /** + * Provides synchronous access to quota features. + */ + @Delegate + QuotaApi getQuotaApi(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); + + /** + * @return the Zone codes configured + * @deprecated Please use {@link #getConfiguredRegions()} as this method will be removed in jclouds 3.0. + */ + @Deprecated + @Provides + @Region + Set getConfiguredZones(); + + /** + * Provides synchronous access to Extension features. + * @deprecated Please use {@link #getExtensionApi(String region)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate ExtensionApi getExtensionApiForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); /** * Provides synchronous access to Volume features. + * @deprecated Please use {@link #getVolumeApi(String region)} as this method will be removed + * in jclouds 3.0. */ + @Deprecated @Delegate VolumeApi getVolumeApiForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); /** * Provides synchronous access to VolumeType features. + * @deprecated Please use {@link #getVolumeTypeApi(String region)} as this method will be removed + * in jclouds 3.0. */ + @Deprecated @Delegate VolumeTypeApi getVolumeTypeApiForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); - + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + /** * Provides synchronous access to Snapshot features. + * @deprecated Please use {@link #getSnapshotApi(String)} as this method will be removed + * in jclouds 3.0. */ + @Deprecated @Delegate SnapshotApi getSnapshotApiForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); - - /** - * Provides synchronous access to quotas features. - */ - @Delegate - QuotaApi getQuotaApi( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); } diff --git a/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/CinderApiMetadata.java b/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/CinderApiMetadata.java index 1b497c5f1a..e532f376b1 100644 --- a/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/CinderApiMetadata.java +++ b/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/CinderApiMetadata.java @@ -27,7 +27,7 @@ import org.jclouds.openstack.cinder.v1.config.CinderParserModule; import org.jclouds.openstack.keystone.v2_0.config.AuthenticationApiModule; import org.jclouds.openstack.keystone.v2_0.config.CredentialTypes; import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule; -import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ZoneModule; +import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule; import org.jclouds.openstack.v2_0.ServiceType; import org.jclouds.rest.internal.BaseHttpApiMetadata; @@ -35,10 +35,10 @@ import com.google.common.collect.ImmutableSet; import com.google.inject.Module; /** - * Implementation of {@link ApiMetadata} for Cinder v1 API + * Implementation of {@link org.jclouds.apis.ApiMetadata} for Cinder v1 API */ public class CinderApiMetadata extends BaseHttpApiMetadata { - + @Override public Builder toBuilder() { return new Builder().fromApiMetadata(this); @@ -74,12 +74,12 @@ public class CinderApiMetadata extends BaseHttpApiMetadata { .defaultModules(ImmutableSet.>builder() .add(AuthenticationApiModule.class) .add(KeystoneAuthenticationModule.class) - .add(ZoneModule.class) + .add(RegionModule.class) .add(CinderParserModule.class) .add(CinderHttpApiModule.class) .build()); } - + @Override public CinderApiMetadata build() { return new CinderApiMetadata(this); diff --git a/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/features/QuotaApi.java b/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/features/QuotaApi.java index 3ac8dd2be3..e8c39f9bd7 100644 --- a/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/features/QuotaApi.java +++ b/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/features/QuotaApi.java @@ -16,7 +16,15 @@ */ package org.jclouds.openstack.cinder.v1.features; -import org.jclouds.Fallbacks; +import javax.inject.Named; +import javax.ws.rs.Consumes; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.core.MediaType; + +import org.jclouds.Fallbacks.NullOnNotFoundOr404; +import org.jclouds.javax.annotation.Nullable; import org.jclouds.openstack.cinder.v1.domain.VolumeQuota; import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest; import org.jclouds.rest.annotations.Fallback; @@ -24,29 +32,22 @@ import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.SelectJson; import org.jclouds.rest.annotations.SkipEncoding; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.MediaType; - /** - * Provides asynchronous access to Quota via their REST API. + * Provides access to the Quota API. * - * @see QuotaApi - * @see API Doc */ @SkipEncoding({'/', '='}) @RequestFilters(AuthenticateRequest.class) +@Consumes(MediaType.APPLICATION_JSON) @Path("/os-quota-sets") public interface QuotaApi { - + @Named("quota:get") @GET @SelectJson("quota_set") - @Consumes(MediaType.APPLICATION_JSON) @Path("/{tenant_id}") - @Fallback(Fallbacks.NullOnNotFoundOr404.class) + @Fallback(NullOnNotFoundOr404.class) + @Nullable VolumeQuota getByTenant(@PathParam("tenant_id") String tenantId); } diff --git a/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/features/SnapshotApi.java b/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/features/SnapshotApi.java index f7f7c9715f..14807f3563 100644 --- a/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/features/SnapshotApi.java +++ b/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/features/SnapshotApi.java @@ -29,6 +29,7 @@ import javax.ws.rs.core.MediaType; import org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404; import org.jclouds.Fallbacks.FalseOnNotFoundOr404; import org.jclouds.Fallbacks.NullOnNotFoundOr404; +import org.jclouds.javax.annotation.Nullable; import org.jclouds.openstack.cinder.v1.domain.Snapshot; import org.jclouds.openstack.cinder.v1.options.CreateSnapshotOptions; import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest; @@ -42,12 +43,13 @@ import org.jclouds.rest.annotations.SkipEncoding; import com.google.common.collect.FluentIterable; /** - * Provides synchronous access to Volume Snapshots via their REST API. - * - * @see API Doc + * Provides synchronous access to Volume Snapshots API. + * */ @SkipEncoding({'/', '='}) @RequestFilters(AuthenticateRequest.class) +@Consumes(MediaType.APPLICATION_JSON) +@Path("/snapshots") public interface SnapshotApi { /** * Returns a summary list of Snapshots. @@ -56,10 +58,8 @@ public interface SnapshotApi { */ @Named("snapshot:list") @GET - @Path("/snapshots") @SelectJson("snapshots") - @Consumes(MediaType.APPLICATION_JSON) - @Fallback(EmptyFluentIterableOnNotFoundOr404.class) + @Fallback(EmptyFluentIterableOnNotFoundOr404.class) FluentIterable list(); /** @@ -69,10 +69,9 @@ public interface SnapshotApi { */ @Named("snapshot:list") @GET - @Path("/snapshots/detail") + @Path("/detail") @SelectJson("snapshots") - @Consumes(MediaType.APPLICATION_JSON) - @Fallback(EmptyFluentIterableOnNotFoundOr404.class) + @Fallback(EmptyFluentIterableOnNotFoundOr404.class) FluentIterable listInDetail(); /** @@ -83,26 +82,24 @@ public interface SnapshotApi { */ @Named("snapshot:get") @GET - @Path("/snapshots/{id}") + @Path("/{id}") @SelectJson("snapshot") - @Consumes(MediaType.APPLICATION_JSON) - @Fallback(NullOnNotFoundOr404.class) + @Fallback(NullOnNotFoundOr404.class) + @Nullable Snapshot get(@PathParam("id") String snapshotId); /** * Creates a new Snapshot. The Volume status must be Available. - * + * * @param volumeId The Volume Id from which to create the Snapshot * @param options See CreateSnapshotOptions * @return The new Snapshot */ @Named("snapshot:create") @POST - @Path("/snapshots") @SelectJson("snapshot") - @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) - @MapBinder(CreateSnapshotOptions.class) + @MapBinder(CreateSnapshotOptions.class) Snapshot create(@PayloadParam("volume_id") String volumeId, CreateSnapshotOptions... options); /** @@ -113,8 +110,7 @@ public interface SnapshotApi { */ @Named("snapshot:delete") @DELETE - @Path("/snapshots/{id}") - @Consumes(MediaType.APPLICATION_JSON) - @Fallback(FalseOnNotFoundOr404.class) + @Path("/{id}") + @Fallback(FalseOnNotFoundOr404.class) boolean delete(@PathParam("id") String snapshotId); } diff --git a/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/features/VolumeApi.java b/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/features/VolumeApi.java index 439422c120..68000a7130 100644 --- a/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/features/VolumeApi.java +++ b/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/features/VolumeApi.java @@ -29,6 +29,7 @@ import javax.ws.rs.core.MediaType; import org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404; import org.jclouds.Fallbacks.FalseOnNotFoundOr404; import org.jclouds.Fallbacks.NullOnNotFoundOr404; +import org.jclouds.javax.annotation.Nullable; import org.jclouds.openstack.cinder.v1.domain.Volume; import org.jclouds.openstack.cinder.v1.options.CreateVolumeOptions; import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest; @@ -42,16 +43,16 @@ import org.jclouds.rest.annotations.SkipEncoding; import com.google.common.collect.FluentIterable; /** - * Provides synchronous access to Volumes. - * + * Provides synchronous access to the Volume API. + * * This API strictly handles creating and managing Volumes. To attach a Volume to a Server you need to use the * @see VolumeAttachmentApi - * - * @see VolumeAsyncApi - * @see API Doc + * */ @SkipEncoding({'/', '='}) @RequestFilters(AuthenticateRequest.class) +@Consumes(MediaType.APPLICATION_JSON) +@Path("/volumes") public interface VolumeApi { /** * Returns a summary list of Volumes. @@ -60,9 +61,7 @@ public interface VolumeApi { */ @Named("volume:list") @GET - @Path("/volumes") @SelectJson("volumes") - @Consumes(MediaType.APPLICATION_JSON) @Fallback(EmptyFluentIterableOnNotFoundOr404.class) FluentIterable list(); @@ -73,10 +72,9 @@ public interface VolumeApi { */ @Named("volume:list") @GET - @Path("/volumes/detail") + @Path("/detail") @SelectJson("volumes") - @Consumes(MediaType.APPLICATION_JSON) - @Fallback(EmptyFluentIterableOnNotFoundOr404.class) + @Fallback(EmptyFluentIterableOnNotFoundOr404.class) FluentIterable listInDetail(); /** @@ -87,24 +85,22 @@ public interface VolumeApi { */ @Named("volume:get") @GET - @Path("/volumes/{id}") + @Path("/{id}") @SelectJson("volume") - @Consumes(MediaType.APPLICATION_JSON) - @Fallback(NullOnNotFoundOr404.class) + @Fallback(NullOnNotFoundOr404.class) + @Nullable Volume get(@PathParam("id") String volumeId); /** * Creates a new Volume - * + * * @param volumeId Id of the Volume * @param options See CreateVolumeOptions * @return The new Volume */ @Named("volume:create") @POST - @Path("/volumes") @SelectJson("volume") - @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @MapBinder(CreateVolumeOptions.class) Volume create(@PayloadParam("size") int sizeGB, CreateVolumeOptions... options); @@ -117,8 +113,7 @@ public interface VolumeApi { */ @Named("volume:delete") @DELETE - @Path("/volumes/{id}") - @Consumes(MediaType.APPLICATION_JSON) + @Path("/{id}") @Fallback(FalseOnNotFoundOr404.class) boolean delete(@PathParam("id") String volumeId); } diff --git a/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/features/VolumeTypeApi.java b/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/features/VolumeTypeApi.java index 8eb38834d7..9c5072e9cb 100644 --- a/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/features/VolumeTypeApi.java +++ b/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/features/VolumeTypeApi.java @@ -25,6 +25,7 @@ import javax.ws.rs.core.MediaType; import org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404; import org.jclouds.Fallbacks.NullOnNotFoundOr404; +import org.jclouds.javax.annotation.Nullable; import org.jclouds.openstack.cinder.v1.domain.VolumeType; import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest; import org.jclouds.rest.annotations.Fallback; @@ -35,24 +36,22 @@ import org.jclouds.rest.annotations.SkipEncoding; import com.google.common.collect.FluentIterable; /** - * Provides synchronous access to Volumes via their REST API. - * - * @see VolumeAsyncApi - * @see API Doc + * Provides synchronous access to the OpenStack Block Storage (Cinder) v1 Volume Types API. + * */ @SkipEncoding({'/', '='}) @RequestFilters(AuthenticateRequest.class) +@Consumes(MediaType.APPLICATION_JSON) +@Path("/types") public interface VolumeTypeApi { /** * Returns a summary list of VolumeTypes. * * @return The list of VolumeTypes */ - @Named("volumetype:list") + @Named("volumeType:list") @GET - @Path("/types") @SelectJson("volume_types") - @Consumes(MediaType.APPLICATION_JSON) @Fallback(EmptyFluentIterableOnNotFoundOr404.class) FluentIterable list(); @@ -62,11 +61,11 @@ public interface VolumeTypeApi { * @param volumeTypeId Id of the VolumeType * @return Details of a specific VolumeType */ - @Named("volumetype:get") + @Named("volumeType:get") @GET - @Path("/types/{id}") + @Path("/{id}") @SelectJson("volume_type") - @Consumes(MediaType.APPLICATION_JSON) - @Fallback(NullOnNotFoundOr404.class) + @Fallback(NullOnNotFoundOr404.class) + @Nullable VolumeType get(@PathParam("id") String volumeTypeId); } diff --git a/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/predicates/SnapshotPredicates.java b/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/predicates/SnapshotPredicates.java index a79fe79dd4..a441957037 100644 --- a/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/predicates/SnapshotPredicates.java +++ b/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/predicates/SnapshotPredicates.java @@ -37,21 +37,21 @@ import com.google.common.base.Predicate; * Snapshot snapshot = snapshotApi.create(volumeId); * RetryablePredicate awaitAvailable = RetryablePredicate.create( * SnapshotPredicates.available(snapshotApi), 600, 10, 10, TimeUnit.SECONDS); - * + * * if (!awaitAvailable.apply(snapshot.getId())) { - * throw new TimeoutException("Timeout on snapshot: " + snapshot); - * } + * throw new TimeoutException("Timeout on snapshot: " + snapshot); + * } * } * - * + * * You can also use the static convenience methods as so. - * + * *
  * {@code
  * Snapshot snapshot = snapshotApi.create(volumeId);
- * 
+ *
  * if (!SnapshotPredicates.awaitAvailable(snapshotApi).apply(snapshot.getId())) {
- *    throw new TimeoutException("Timeout on snapshot: " + snapshot);     
+ *    throw new TimeoutException("Timeout on snapshot: " + snapshot);
  * }
  * }
  * 
@@ -59,20 +59,20 @@ import com.google.common.base.Predicate; public class SnapshotPredicates { /** * Wait until a Snapshot is Available. - * - * @param snapshotApi The SnapshotApi in the zone where your Snapshot resides. + * + * @param snapshotApi The SnapshotApi in the region where your Snapshot resides. * @return RetryablePredicate That will check the status every 5 seconds for a maxiumum of 20 minutes. */ public static Predicate awaitAvailable(SnapshotApi snapshotApi) { StatusUpdatedPredicate statusPredicate = new StatusUpdatedPredicate(snapshotApi, Volume.Status.AVAILABLE); return retry(statusPredicate, 1200, 5, 5, SECONDS); } - + /** * Wait until a Snapshot no longer exists. - * - * @param snapshotApi The SnapshotApi in the zone where your Snapshot resides. - * @return RetryablePredicate That will check the whether the Snapshot exists + * + * @param snapshotApi The SnapshotApi in the region where your Snapshot resides. + * @return RetryablePredicate That will check the whether the Snapshot exists * every 5 seconds for a maxiumum of 20 minutes. */ public static Predicate awaitDeleted(SnapshotApi snapshotApi) { @@ -85,7 +85,7 @@ public class SnapshotPredicates { StatusUpdatedPredicate statusPredicate = new StatusUpdatedPredicate(snapshotApi, status); return retry(statusPredicate, maxWaitInSec, periodInSec, periodInSec, SECONDS); } - + private static class StatusUpdatedPredicate implements Predicate { private SnapshotApi snapshotApi; private Status status; @@ -108,7 +108,7 @@ public class SnapshotPredicates { else { Snapshot snapshotUpdated = snapshotApi.get(snapshot.getId()); checkNotNull(snapshotUpdated, "Snapshot %s not found.", snapshot.getId()); - + return status.equals(snapshotUpdated.getStatus()); } } diff --git a/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/predicates/VolumePredicates.java b/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/predicates/VolumePredicates.java index cc3f2c230d..6e26425328 100644 --- a/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/predicates/VolumePredicates.java +++ b/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/predicates/VolumePredicates.java @@ -34,24 +34,24 @@ import com.google.common.base.Predicate; *
  * {@code
  * Volume volume = volumeApi.create(100);
- * 
+ *
  * RetryablePredicate awaitAvailable = RetryablePredicate.create(
  *    VolumePredicates.available(volumeApi), 600, 10, 10, TimeUnit.SECONDS);
- * 
+ *
  * if (!awaitAvailable.apply(volume.getId())) {
- *    throw new TimeoutException("Timeout on volume: " + volume); 
- * }    
+ *    throw new TimeoutException("Timeout on volume: " + volume);
+ * }
  * }
  * 
- * + * * You can also use the static convenience methods as so. - * + * *
  * {@code
  * Volume volume = volumeApi.create(100);
- * 
+ *
  * if (!VolumePredicates.awaitAvailable(volumeApi).apply(volume.getId())) {
- *    throw new TimeoutException("Timeout on volume: " + volume);     
+ *    throw new TimeoutException("Timeout on volume: " + volume);
  * }
  * }
  * 
@@ -59,19 +59,19 @@ import com.google.common.base.Predicate; public class VolumePredicates { /** * Wait until a Volume is Available. - * - * @param volumeApi The VolumeApi in the zone where your Volume resides. + * + * @param volumeApi The VolumeApi in the region where your Volume resides. * @return RetryablePredicate That will check the status every 5 seconds for a maxiumum of 10 minutes. */ public static Predicate awaitAvailable(VolumeApi volumeApi) { StatusUpdatedPredicate statusPredicate = new StatusUpdatedPredicate(volumeApi, Volume.Status.AVAILABLE); return retry(statusPredicate, 600, 5, 5, SECONDS); } - + /** * Wait until a Volume is In Use. - * - * @param volumeApi The VolumeApi in the zone where your Volume resides. + * + * @param volumeApi The VolumeApi in the region where your Volume resides. * @return RetryablePredicate That will check the status every 5 seconds for a maxiumum of 10 minutes. */ public static Predicate awaitInUse(VolumeApi volumeApi) { @@ -81,22 +81,22 @@ public class VolumePredicates { /** * Wait until a Volume no longer exists. - * - * @param volumeApi The VolumeApi in the zone where your Volume resides. - * @return RetryablePredicate That will check the whether the Volume exists + * + * @param volumeApi The VolumeApi in the region where your Volume resides. + * @return RetryablePredicate That will check the whether the Volume exists * every 5 seconds for a maxiumum of 10 minutes. */ public static Predicate awaitDeleted(VolumeApi volumeApi) { DeletedPredicate deletedPredicate = new DeletedPredicate(volumeApi); return retry(deletedPredicate, 600, 5, 5, SECONDS); } - + public static Predicate awaitStatus( VolumeApi volumeApi, Volume.Status status, long maxWaitInSec, long periodInSec) { StatusUpdatedPredicate statusPredicate = new StatusUpdatedPredicate(volumeApi, status); return retry(statusPredicate, maxWaitInSec, periodInSec, periodInSec, SECONDS); } - + private static class StatusUpdatedPredicate implements Predicate { private VolumeApi volumeApi; private Status status; @@ -112,14 +112,14 @@ public class VolumePredicates { @Override public boolean apply(Volume volume) { checkNotNull(volume, "volume must be defined"); - + if (status.equals(volume.getStatus())) { return true; } else { Volume volumeUpdated = volumeApi.get(volume.getId()); checkNotNull(volumeUpdated, "Volume %s not found.", volume.getId()); - + return status.equals(volumeUpdated.getStatus()); } } diff --git a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/QuotasApiExpectTest.java b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/QuotasApiExpectTest.java index 74ac6b92cf..e5dc3f930b 100644 --- a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/QuotasApiExpectTest.java +++ b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/QuotasApiExpectTest.java @@ -16,15 +16,15 @@ */ package org.jclouds.openstack.cinder.v1.features; +import static org.testng.Assert.assertEquals; + +import java.net.URI; + import org.jclouds.http.HttpResponse; import org.jclouds.openstack.cinder.v1.domain.VolumeQuota; import org.jclouds.openstack.cinder.v1.internal.BaseCinderApiExpectTest; import org.testng.annotations.Test; -import java.net.URI; - -import static org.testng.Assert.assertEquals; - @Test(groups = "unit", testName = "QuotaApiExpectTest") public class QuotasApiExpectTest extends BaseCinderApiExpectTest { diff --git a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/QuotasApiLiveTest.java b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/QuotasApiLiveTest.java index 9fea6cbb88..91ab647153 100644 --- a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/QuotasApiLiveTest.java +++ b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/QuotasApiLiveTest.java @@ -16,15 +16,16 @@ */ package org.jclouds.openstack.cinder.v1.features; -import com.google.common.collect.Iterables; +import static org.testng.Assert.assertTrue; + +import java.util.concurrent.ExecutionException; + import org.jclouds.openstack.cinder.v1.domain.VolumeQuota; import org.jclouds.openstack.cinder.v1.internal.BaseCinderApiLiveTest; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -import java.util.concurrent.ExecutionException; - -import static org.testng.Assert.assertTrue; +import com.google.common.collect.Iterables; @Test(groups = "live", testName = "QuotasApiLiveTest", singleThreaded = true) public class QuotasApiLiveTest extends BaseCinderApiLiveTest { @@ -39,8 +40,8 @@ public class QuotasApiLiveTest extends BaseCinderApiLiveTest { @BeforeClass(groups = {"integration", "live"}) public void setupContext() { super.setup(); - String zone = Iterables.getFirst(api.getConfiguredZones(), "nova"); - quotaApi = api.getQuotaApi(zone); + String region = Iterables.getFirst(api.getConfiguredRegions(), "nova"); + quotaApi = api.getQuotaApi(region); } public void testGetStorageQuotas() throws ExecutionException, InterruptedException { diff --git a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/SnapshotApiExpectTest.java b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/SnapshotApiExpectTest.java index 9ab2e33dc6..cda5ce8539 100644 --- a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/SnapshotApiExpectTest.java +++ b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/SnapshotApiExpectTest.java @@ -56,7 +56,7 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/snapshot_list_simple.json")).build() - ).getSnapshotApiForZone("RegionOne"); + ).getSnapshotApi("RegionOne"); Set snapshots = api.list().toSet(); assertEquals(snapshots, ImmutableSet.of(testSnapshot())); @@ -69,7 +69,7 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getSnapshotApiForZone("RegionOne"); + ).getSnapshotApi("RegionOne"); Set snapshots = api.list().toSet(); assertTrue(snapshots.isEmpty()); @@ -82,7 +82,7 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/snapshot_list_details.json")).build() - ).getSnapshotApiForZone("RegionOne"); + ).getSnapshotApi("RegionOne"); Set snapshots = api.listInDetail().toSet(); assertEquals(snapshots, ImmutableSet.of(testSnapshot())); @@ -104,7 +104,7 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getSnapshotApiForZone("RegionOne"); + ).getSnapshotApi("RegionOne"); Set snapshots = api.listInDetail().toSet(); assertTrue(snapshots.isEmpty()); @@ -117,7 +117,7 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/snapshot_get.json")).build() - ).getSnapshotApiForZone("RegionOne"); + ).getSnapshotApi("RegionOne"); Snapshot snapshot = api.get("67d03df1-ce5d-4ba7-adbe-492ceb80170b"); assertEquals(snapshot, testSnapshot()); @@ -130,7 +130,7 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getSnapshotApiForZone("RegionOne"); + ).getSnapshotApi("RegionOne"); assertNull(api.get("67d03df1-ce5d-4ba7-adbe-492ceb80170b")); } @@ -145,7 +145,7 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest { .payload(payloadFromResourceWithContentType("/snapshot_create.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/snapshot_create_response.json")).build() - ).getSnapshotApiForZone("RegionOne"); + ).getSnapshotApi("RegionOne"); CreateSnapshotOptions options = CreateSnapshotOptions.Builder .name("jclouds-test-snapshot") @@ -167,7 +167,7 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest { .payload(payloadFromResourceWithContentType("/snapshot_create.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(404).build() - ).getSnapshotApiForZone("RegionOne"); + ).getSnapshotApi("RegionOne"); CreateSnapshotOptions options = CreateSnapshotOptions.Builder .name("jclouds-test-snapshot") @@ -193,7 +193,7 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest { .wrap("{\"badRequest\": {\"message\": \"Invalid volume: must be available\", \"code\": 400}}" .getBytes()))) .build() - ).getSnapshotApiForZone("RegionOne"); + ).getSnapshotApi("RegionOne"); CreateSnapshotOptions options = CreateSnapshotOptions.Builder .name("jclouds-test-snapshot") @@ -214,7 +214,7 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest { .payload(payloadFromResourceWithContentType("/snapshot_create.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(401).build() - ).getSnapshotApiForZone("RegionOne"); + ).getSnapshotApi("RegionOne"); CreateSnapshotOptions options = CreateSnapshotOptions.Builder .name("jclouds-test-snapshot") @@ -231,7 +231,7 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(200).build() - ).getSnapshotApiForZone("RegionOne"); + ).getSnapshotApi("RegionOne"); assertTrue(api.delete("67d03df1-ce5d-4ba7-adbe-492ceb80170b")); } @@ -244,7 +244,7 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(401).build() - ).getSnapshotApiForZone("RegionOne"); + ).getSnapshotApi("RegionOne"); api.delete("67d03df1-ce5d-4ba7-adbe-492ceb80170b"); } @@ -256,7 +256,7 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(404).build() - ).getSnapshotApiForZone("RegionOne"); + ).getSnapshotApi("RegionOne"); assertFalse(api.delete("67d03df1-ce5d-4ba7-adbe-492ceb80170b")); } @@ -274,7 +274,7 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest { .wrap("{\"badRequest\": {\"message\": \"Invalid volume: Volume Snapshot status must be available or error\", \"code\": 400}}" .getBytes()))) .build() - ).getSnapshotApiForZone("RegionOne"); + ).getSnapshotApi("RegionOne"); api.delete("67d03df1-ce5d-4ba7-adbe-492ceb80170b"); } diff --git a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeAndSnapshotApiLiveTest.java b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeAndSnapshotApiLiveTest.java index 050253b299..8e2dbe0b2c 100644 --- a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeAndSnapshotApiLiveTest.java +++ b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeAndSnapshotApiLiveTest.java @@ -42,12 +42,12 @@ import com.google.common.collect.Iterables; @Test(groups = "live", testName = "VolumeApiLiveTest", singleThreaded = true) public class VolumeAndSnapshotApiLiveTest extends BaseCinderApiLiveTest { private static final String name = System.getProperty("user.name").replace('.', '-').toLowerCase(); - - private String zone; + + private String region; private VolumeApi volumeApi; private SnapshotApi snapshotApi; - + private Volume testVolume; private Snapshot testSnapshot; @@ -55,9 +55,9 @@ public class VolumeAndSnapshotApiLiveTest extends BaseCinderApiLiveTest { @Override public void setup() { super.setup(); - zone = Iterables.getLast(api.getConfiguredZones(), "nova"); - volumeApi = api.getVolumeApiForZone(zone); - snapshotApi = api.getSnapshotApiForZone(zone); + region = Iterables.getLast(api.getConfiguredRegions(), "nova"); + volumeApi = api.getVolumeApi(region); + snapshotApi = api.getSnapshotApi(region); } @AfterClass(groups = { "integration", "live" }) @@ -81,7 +81,7 @@ public class VolumeAndSnapshotApiLiveTest extends BaseCinderApiLiveTest { .name(name) .description("description of test volume"); testVolume = volumeApi.create(100, options); - + assertTrue(VolumePredicates.awaitAvailable(volumeApi).apply(testVolume)); } diff --git a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeApiExpectTest.java b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeApiExpectTest.java index 336d09b7d6..0372dd55f2 100644 --- a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeApiExpectTest.java +++ b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeApiExpectTest.java @@ -53,7 +53,7 @@ public class VolumeApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_list_simple.json")).build() - ).getVolumeApiForZone("RegionOne"); + ).getVolumeApi("RegionOne"); Set volumes = api.list().toSet(); assertEquals(volumes, ImmutableSet.of(testVolume())); @@ -66,7 +66,7 @@ public class VolumeApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeApiForZone("RegionOne"); + ).getVolumeApi("RegionOne"); Set volumes = api.list().toSet(); assertTrue(volumes.isEmpty()); @@ -79,7 +79,7 @@ public class VolumeApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_list_details.json")).build() - ).getVolumeApiForZone("RegionOne"); + ).getVolumeApi("RegionOne"); Set volumes = api.listInDetail().toSet(); assertEquals(volumes, ImmutableSet.of(testVolume())); @@ -92,7 +92,7 @@ public class VolumeApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeApiForZone("RegionOne"); + ).getVolumeApi("RegionOne"); Set volumes = api.listInDetail().toSet(); assertTrue(volumes.isEmpty()); @@ -108,7 +108,7 @@ public class VolumeApiExpectTest extends BaseCinderApiExpectTest { .payload(payloadFromResourceWithContentType("/volume_create.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_create_response.json")).build() - ).getVolumeApiForZone("RegionOne"); + ).getVolumeApi("RegionOne"); CreateVolumeOptions options = CreateVolumeOptions.Builder .name("jclouds-test-volume") @@ -129,7 +129,7 @@ public class VolumeApiExpectTest extends BaseCinderApiExpectTest { .payload(payloadFromResourceWithContentType("/volume_create.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(404).payload(payloadFromResource("/volume_create_response.json")).build() - ).getVolumeApiForZone("RegionOne"); + ).getVolumeApi("RegionOne"); CreateVolumeOptions options = CreateVolumeOptions.Builder .name("jclouds-test-volume") @@ -144,7 +144,7 @@ public class VolumeApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_get.json")).build() - ).getVolumeApiForZone("RegionOne"); + ).getVolumeApi("RegionOne"); Volume volume = api.get("60761c60-0f56-4499-b522-ff13e120af10"); assertEquals(volume, testVolume()); @@ -163,7 +163,7 @@ public class VolumeApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeApiForZone("RegionOne"); + ).getVolumeApi("RegionOne"); assertNull(api.get("60761c60-0f56-4499-b522-ff13e120af10")); } @@ -175,7 +175,7 @@ public class VolumeApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(202).build() - ).getVolumeApiForZone("RegionOne"); + ).getVolumeApi("RegionOne"); assertTrue(api.delete("60761c60-0f56-4499-b522-ff13e120af10")); } @@ -187,7 +187,7 @@ public class VolumeApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeApiForZone("RegionOne"); + ).getVolumeApi("RegionOne"); assertFalse(api.delete("60761c60-0f56-4499-b522-ff13e120af10")); } diff --git a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeTypeApiExpectTest.java b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeTypeApiExpectTest.java index 29c4713e0a..d8c8b92c8c 100644 --- a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeTypeApiExpectTest.java +++ b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeTypeApiExpectTest.java @@ -46,7 +46,7 @@ public class VolumeTypeApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_type_list_simple.json")).build() - ).getVolumeTypeApiForZone("RegionOne"); + ).getVolumeTypeApi("RegionOne"); Set types = api.list().toSet(); assertEquals(types, ImmutableSet.of(testVolumeType())); @@ -59,7 +59,7 @@ public class VolumeTypeApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_type_get.json")).build() - ).getVolumeTypeApiForZone("RegionOne"); + ).getVolumeTypeApi("RegionOne"); VolumeType type = api.get("1"); assertEquals(type, testVolumeType()); @@ -72,7 +72,7 @@ public class VolumeTypeApiExpectTest extends BaseCinderApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeTypeApiForZone("RegionOne"); + ).getVolumeTypeApi("RegionOne"); assertNull(api.get("X")); } diff --git a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeTypeApiLiveTest.java b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeTypeApiLiveTest.java index 6eb1e4877b..bbb18fcdf9 100644 --- a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeTypeApiLiveTest.java +++ b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeTypeApiLiveTest.java @@ -34,14 +34,14 @@ import com.google.common.collect.Iterables; @Test(groups = "live", testName = "VolumeTypeApiLiveTest", singleThreaded = true) public class VolumeTypeApiLiveTest extends BaseCinderApiLiveTest { private VolumeTypeApi volumeTypeApi; - private String zone; + private String region; @BeforeGroups(groups = {"integration", "live"}) @Override public void setup() { super.setup(); - zone = Iterables.getLast(api.getConfiguredZones(), "nova"); - volumeTypeApi = api.getVolumeTypeApiForZone(zone); + region = Iterables.getLast(api.getConfiguredRegions(), "nova"); + volumeTypeApi = api.getVolumeTypeApi(region); } @AfterClass(groups = { "integration", "live" }) diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/config/KeystoneAuthenticationModule.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/config/KeystoneAuthenticationModule.java index 70479c73e3..eaff908b16 100644 --- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/config/KeystoneAuthenticationModule.java +++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/config/KeystoneAuthenticationModule.java @@ -80,7 +80,7 @@ public class KeystoneAuthenticationModule extends AbstractModule { *
  • add the above annotation to any {@link AsyncApi} classes by placing it on the type. ex. * {@code @Endpoint(CloudDNS.class)}
  • *
  • add the following to your {@link org.jclouds.rest.config.RestClientModule}
  • - * + * *
         * bind(new TypeLiteral<Supplier<URI>>() {
         * }).annotatedWith(CloudDNS.class).to(new TypeLiteral<Supplier<URI>>() {
    @@ -148,6 +148,11 @@ public class KeystoneAuthenticationModule extends AbstractModule {
     
        }
     
    +   /**
    +    * @deprecated All OpenStack APIs rely on regions in jclouds 2.0 and this module will be removed
    +    *             in jclouds 3.0.
    +    */
    +   @Deprecated
        public static class ZoneModule extends AbstractModule {
           @Override
           protected void configure() {
    diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/config/KeystoneHttpApiModule.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/config/KeystoneHttpApiModule.java
    index 62fde44bc1..691d044ff9 100644
    --- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/config/KeystoneHttpApiModule.java
    +++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/config/KeystoneHttpApiModule.java
    @@ -106,7 +106,7 @@ public class KeystoneHttpApiModule extends HttpApiModule {
     
        @Provides
        @Singleton
    -   public LoadingCache> provideExtensionsByZone(final javax.inject.Provider keystoneApi) {
    +   public LoadingCache> provideExtensionsByRegion(final javax.inject.Provider keystoneApi) {
           return CacheBuilder.newBuilder().expireAfterWrite(23, TimeUnit.HOURS)
                 .build(CacheLoader.from(Suppliers.memoize(new Supplier>() {
                    @Override
    diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/config/KeystoneRestClientModule.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/config/KeystoneRestClientModule.java
    index fe85de20e1..4824edf996 100644
    --- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/config/KeystoneRestClientModule.java
    +++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/config/KeystoneRestClientModule.java
    @@ -148,7 +148,7 @@ public class KeystoneRestClientModule> provideExtensionsByZone(final javax.inject.Provider keystoneApi) {
    +   public LoadingCache> provideExtensionsByRegion(final javax.inject.Provider keystoneApi) {
           return CacheBuilder.newBuilder().expireAfterWrite(23, TimeUnit.HOURS)
                 .build(CacheLoader.from(Suppliers.memoize(new Supplier>() {
                    @Override
    diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/v2_0/functions/PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSetTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/v2_0/functions/PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSetTest.java
    index 08160bb8ce..624a0bd54a 100644
    --- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/v2_0/functions/PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSetTest.java
    +++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/v2_0/functions/PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSetTest.java
    @@ -54,7 +54,7 @@ public class PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensio
                 "Keypair Support").build();
     
        @org.jclouds.openstack.v2_0.services.Extension(of = ServiceType.COMPUTE, namespace = "http://docs.openstack.org/ext/keypairs/api/v1.1")
    -   interface KeyPairAsyncApi {
    +   interface KeyPairApi {
     
        }
     
    @@ -64,50 +64,50 @@ public class PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensio
                 "Floating IPs support").build();
     
        @org.jclouds.openstack.v2_0.services.Extension(of = ServiceType.COMPUTE, namespace = "http://docs.openstack.org/ext/floating_ips/api/v1.1")
    -   interface FloatingIPAsyncApi {
    +   interface FloatingIPApi {
     
        }
     
    -   interface NovaAsyncApi {
    +   interface NovaApi {
     
           @Delegate
    -      Optional getFloatingIPExtensionForZone(String zone);
    +      Optional getFloatingIPExtensionApi(String region);
     
           @Delegate
    -      Optional getKeyPairExtensionForZone(String zone);
    +      Optional getKeyPairExtensionApi(String region);
     
        }
     
        InvocationSuccess getFloatingIPExtension(List args) throws SecurityException, NoSuchMethodException {
           return InvocationSuccess.create(
    -            Invocation.create(method(NovaAsyncApi.class, "getFloatingIPExtensionForZone", String.class), args), "foo");
    +            Invocation.create(method(NovaApi.class, "getFloatingIPExtensionApi", String.class), args), "foo");
        }
     
        InvocationSuccess getKeyPairExtension(List args) throws SecurityException, NoSuchMethodException {
           return InvocationSuccess.create(
    -            Invocation.create(method(NovaAsyncApi.class, "getKeyPairExtensionForZone", String.class), args), "foo");
    +            Invocation.create(method(NovaApi.class, "getKeyPairExtensionApi", String.class), args), "foo");
        }
     
        public void testPresentWhenExtensionsIncludeNamespaceFromAnnotationAbsentWhenNot() throws SecurityException, NoSuchMethodException {
     
    -      assertEquals(whenExtensionsInZoneInclude("zone", keypairs, floatingIps).apply(getFloatingIPExtension(ImmutableList. of("zone"))), Optional.of("foo"));
    -      assertEquals(whenExtensionsInZoneInclude("zone", keypairs, floatingIps).apply(getKeyPairExtension(ImmutableList. of("zone"))), Optional.of("foo"));
    -      assertEquals(whenExtensionsInZoneInclude("zone", keypairs).apply(getFloatingIPExtension(ImmutableList. of("zone"))), Optional.absent());
    -      assertEquals(whenExtensionsInZoneInclude("zone", floatingIps).apply(getKeyPairExtension(ImmutableList. of("zone"))), Optional.absent());
    +      assertEquals(whenExtensionsInRegionInclude("region", keypairs, floatingIps).apply(getFloatingIPExtension(ImmutableList. of("region"))), Optional.of("foo"));
    +      assertEquals(whenExtensionsInRegionInclude("region", keypairs, floatingIps).apply(getKeyPairExtension(ImmutableList. of("region"))), Optional.of("foo"));
    +      assertEquals(whenExtensionsInRegionInclude("region", keypairs).apply(getFloatingIPExtension(ImmutableList. of("region"))), Optional.absent());
    +      assertEquals(whenExtensionsInRegionInclude("region", floatingIps).apply(getKeyPairExtension(ImmutableList. of("region"))), Optional.absent());
        }
    -   
    -   public void testZoneWithoutExtensionsReturnsAbsent() throws SecurityException, NoSuchMethodException {
    -      assertEquals(whenExtensionsInZoneInclude("zone", floatingIps).apply(
    -               getFloatingIPExtension(ImmutableList. of("differentzone"))), Optional.absent());
    -      assertEquals(whenExtensionsInZoneInclude("zone", keypairs).apply(
    -               getKeyPairExtension(ImmutableList. of("differentzone"))), Optional.absent());
    +
    +   public void testRegionWithoutExtensionsReturnsAbsent() throws SecurityException, NoSuchMethodException {
    +      assertEquals(whenExtensionsInRegionInclude("region", floatingIps).apply(
    +               getFloatingIPExtension(ImmutableList. of("differentregion"))), Optional.absent());
    +      assertEquals(whenExtensionsInRegionInclude("region", keypairs).apply(
    +               getKeyPairExtension(ImmutableList. of("differentregion"))), Optional.absent());
        }
     
        /**
         * It is possible that the /extensions call returned the correct extension, but that the
         * namespaces were different, for whatever reason. One way to address this is to have a multimap
         * of the authoritative namespace to alternate onces, which could be wired up with guice
    -    * 
    +    *
         */
        public void testPresentWhenAliasForExtensionMapsToNamespace() throws SecurityException, NoSuchMethodException {
           Extension keypairsWithDifferentNamespace = keypairs.toBuilder().namespace(
    @@ -116,22 +116,22 @@ public class PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensio
           Multimap aliases = ImmutableMultimap.of(keypairs.getNamespace(), keypairsWithDifferentNamespace
                    .getNamespace());
     
    -      assertEquals(whenExtensionsAndAliasesInZoneInclude("zone", ImmutableSet.of(keypairsWithDifferentNamespace), aliases).apply(
    -              getKeyPairExtension(ImmutableList. of("zone"))), Optional.of("foo"));
    -      assertEquals(whenExtensionsAndAliasesInZoneInclude("zone", ImmutableSet.of(keypairsWithDifferentNamespace), aliases).apply(
    -              getFloatingIPExtension(ImmutableList. of("zone"))), Optional.absent());
    +      assertEquals(whenExtensionsAndAliasesInRegionInclude("region", ImmutableSet.of(keypairsWithDifferentNamespace), aliases).apply(
    +              getKeyPairExtension(ImmutableList. of("region"))), Optional.of("foo"));
    +      assertEquals(whenExtensionsAndAliasesInRegionInclude("region", ImmutableSet.of(keypairsWithDifferentNamespace), aliases).apply(
    +              getFloatingIPExtension(ImmutableList. of("region"))), Optional.absent());
     
        }
     
    -   private PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSet whenExtensionsInZoneInclude(
    -            String zone, Extension... extensions) {
    -      return whenExtensionsAndAliasesInZoneInclude(zone, ImmutableSet.copyOf(extensions), ImmutableMultimap. of());
    +   private PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSet whenExtensionsInRegionInclude(
    +            String region, Extension... extensions) {
    +      return whenExtensionsAndAliasesInRegionInclude(region, ImmutableSet.copyOf(extensions), ImmutableMultimap. of());
        }
     
    -   private PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSet whenExtensionsAndAliasesInZoneInclude(
    -            String zone, final Set extensions, final Multimap aliases) {
    -      final LoadingCache> extensionsForZone = CacheBuilder.newBuilder().build(
    -               CacheLoader.from(Functions.forMap(ImmutableMap.>of(zone, extensions, "differentzone",
    +   private PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSet whenExtensionsAndAliasesInRegionInclude(
    +            String region, final Set extensions, final Multimap aliases) {
    +      final LoadingCache> extensionsForRegion = CacheBuilder.newBuilder().build(
    +               CacheLoader.from(Functions.forMap(ImmutableMap.>of(region, extensions, "differentregion",
                             ImmutableSet. of()))));
     
           PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSet fn = Guice.createInjector(
    @@ -142,7 +142,7 @@ public class PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensio
     
                       @Provides
                       LoadingCache> getExtensions() {
    -                     return extensionsForZone;
    +                     return extensionsForRegion;
                       }
     
                       @Provides
    @@ -150,7 +150,7 @@ public class PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensio
                          return aliases;
                       }
                    }).getInstance(PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSet.class);
    -      
    +
           return fn;
        }
     }
    diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/NovaApi.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/NovaApi.java
    index 9f8d30203b..63fb5ab9cf 100644
    --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/NovaApi.java
    +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/NovaApi.java
    @@ -20,8 +20,8 @@ import java.io.Closeable;
     import java.util.Set;
     
     import org.jclouds.javax.annotation.Nullable;
    -import org.jclouds.location.Zone;
    -import org.jclouds.location.functions.ZoneToEndpoint;
    +import org.jclouds.location.Region;
    +import org.jclouds.location.functions.RegionToEndpoint;
     import org.jclouds.openstack.nova.v2_0.extensions.AvailabilityZoneApi;
     import org.jclouds.openstack.nova.v2_0.extensions.ConsolesApi;
     import org.jclouds.openstack.nova.v2_0.extensions.FlavorExtraSpecsApi;
    @@ -49,156 +49,413 @@ import com.google.common.base.Optional;
     import com.google.inject.Provides;
     
     /**
    - * Provides access to the OpenStack Compute (Nova) API.
    + * Provides access to the OpenStack Compute (Nova) v2 API.
      * 

    * */ public interface NovaApi extends Closeable { /** * - * @return the Zone codes configured + * @return the Region codes configured */ @Provides - @Zone - Set getConfiguredZones(); + @Region + Set getConfiguredRegions(); /** * Provides access to Server features. */ @Delegate - ServerApi getServerApiForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + ServerApi getServerApi(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to Flavor features. */ @Delegate - FlavorApi getFlavorApiForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + FlavorApi getFlavorApi(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to Extension features. */ @Delegate - ExtensionApi getExtensionApiForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + ExtensionApi getExtensionApi(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to Image features. */ @Delegate - ImageApi getImageApiForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + ImageApi getImageApi(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** - * Provides access to availability zone features + * Provides access to Availability Zone features. + * + *

    NOTE

    + * This API is an extension that may or may not be present in your OpenStack cloud. Use the Optional return type + * to determine if it is present. */ @Delegate Optional getAvailabilityZoneApi( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to Floating IP features. + * + *

    NOTE

    + * This API is an extension that may or may not be present in your OpenStack cloud. Use the Optional return type + * to determine if it is present. */ @Delegate - Optional getFloatingIPExtensionForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + Optional getFloatingIPApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to Security Group features. + * + *

    NOTE

    + * This API is an extension that may or may not be present in your OpenStack cloud. Use the Optional return type + * to determine if it is present. */ @Delegate - Optional getSecurityGroupExtensionForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + Optional getSecurityGroupApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to Key Pair features. + * + *

    NOTE

    + * This API is an extension that may or may not be present in your OpenStack cloud. Use the Optional return type + * to determine if it is present. */ @Delegate - Optional getKeyPairExtensionForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + Optional getKeyPairApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to Host Administration features. + * + *

    NOTE

    + * This API is an extension that may or may not be present in your OpenStack cloud. Use the Optional return type + * to determine if it is present. */ @Delegate - Optional getHostAdministrationExtensionForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + Optional getHostAdministrationApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to Simple Tenant Usage features. + * + *

    NOTE

    + * This API is an extension that may or may not be present in your OpenStack cloud. Use the Optional return type + * to determine if it is present. */ @Delegate - Optional getSimpleTenantUsageExtensionForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + Optional getSimpleTenantUsageApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to Virtual Interface features. + * + *

    NOTE

    + * This API is an extension that may or may not be present in your OpenStack cloud. Use the Optional return type + * to determine if it is present. */ @Delegate - Optional getVirtualInterfaceExtensionForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + Optional getVirtualInterfaceApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to Server Extra Data features. + * + *

    NOTE

    + * This API is an extension that may or may not be present in your OpenStack cloud. Use the Optional return type + * to determine if it is present. */ @Delegate - Optional getServerWithSecurityGroupsExtensionForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + Optional getServerWithSecurityGroupsApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to Server Admin Actions features. + * + *

    NOTE

    + * This API is an extension that may or may not be present in your OpenStack cloud. Use the Optional return type + * to determine if it is present. */ @Delegate - Optional getServerAdminExtensionForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + Optional getServerAdminApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to Aggregate features. + * + *

    NOTE

    + * This API is an extension that may or may not be present in your OpenStack cloud. Use the Optional return type + * to determine if it is present. */ @Delegate - Optional getHostAggregateExtensionForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + Optional getHostAggregateApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to Flavor extra specs features. + * + *

    NOTE

    + * This API is an extension that may or may not be present in your OpenStack cloud. Use the Optional return type + * to determine if it is present. */ @Delegate - Optional getFlavorExtraSpecsExtensionForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + Optional getFlavorExtraSpecsApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to Quota features. + * + *

    NOTE

    + * This API is an extension that may or may not be present in your OpenStack cloud. Use the Optional return type + * to determine if it is present. */ @Delegate - Optional getQuotaExtensionForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + Optional getQuotaApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to Volume features. + * + *

    NOTE

    + * This API is an extension that may or may not be present in your OpenStack cloud. Use the Optional return type + * to determine if it is present. */ @Delegate - Optional getVolumeExtensionForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + Optional getVolumeApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to Volume Attachment features. + * + *

    NOTE

    + * This API is an extension that may or may not be present in your OpenStack cloud. Use the Optional return type + * to determine if it is present. */ @Delegate - Optional getVolumeAttachmentExtensionForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + Optional getVolumeAttachmentApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to Volume Type features. + * + *

    NOTE

    + * This API is an extension that may or may not be present in your OpenStack cloud. Use the Optional return type + * to determine if it is present. */ @Delegate + Optional getVolumeTypeApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); + + /** + * Provides access to Console features. + * + *

    NOTE

    + * This API is an extension that may or may not be present in your OpenStack cloud. Use the Optional return type + * to determine if it is present. + */ + @Delegate + Optional getConsolesApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); + + /** + * @return the Zone codes configured + * @deprecated Please use {@link #getConfiguredRegions()} as this method will be removed in jclouds 3.0. + */ + @Deprecated + @Provides + @Region + Set getConfiguredZones(); + + /** + * Provides access to Server features. + * @deprecated Please use {@link #getServerApi(String)} as this method will be removed in jclouds 3.0. + */ + @Deprecated + @Delegate + ServerApi getServerApiForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Flavor features. + * @deprecated Please use {@link #getFlavorApi(String)} as this method will be removed in jclouds 3.0. + */ + @Deprecated + @Delegate + FlavorApi getFlavorApiForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Extension features. + * @deprecated Please use {@link #getExtensionApi(String region)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate + ExtensionApi getExtensionApiForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Image features. + * @deprecated Please use {@link #getImageApi(String region)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate + ImageApi getImageApiForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Floating IP features. + * @deprecated Please use {@link #getFloatingIPApi(String region)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate + Optional getFloatingIPExtensionForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Security Group features. + * @deprecated Please use {@link #getSecurityGroupApi(String region)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate + Optional getSecurityGroupExtensionForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Key Pair features. + * @deprecated Please use {@link #getKeyPairApi(String region)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate + Optional getKeyPairExtensionForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Host Administration features. + * @deprecated Please use {@link #getHostAdministrationApi(String region)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate + Optional getHostAdministrationExtensionForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Simple Tenant Usage features. + * @deprecated Please use {@link #getSimpleTenantUsageApi(String region)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate + Optional getSimpleTenantUsageExtensionForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Virtual Interface features. + * @deprecated Please use {@link #getVirtualInterfaceApi(String region)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate + Optional getVirtualInterfaceExtensionForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Server Extra Data features. + * @deprecated Please use {@link #getServerWithSecurityGroupsApi(String region)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate + Optional getServerWithSecurityGroupsExtensionForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Server Admin Actions features. + * @deprecated Please use {@link #getServerAdminApi(String region)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate + Optional getServerAdminExtensionForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Aggregate features. + * @deprecated Please use {@link #getHostAggregateApi(String region)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate + Optional getHostAggregateExtensionForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Flavor extra specs features. + * @deprecated Please use {@link #getFlavorExtraSpecsApi(String)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate + Optional getFlavorExtraSpecsExtensionForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Quota features. + * @deprecated Please use {@link #getQuotaApi(String region)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate + Optional getQuotaExtensionForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Volume features. + * @deprecated Please use {@link #getVolumeApi(String region)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate + Optional getVolumeExtensionForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Volume Attachment features. + * @deprecated Please use {@link #getVolumeAttachmentApi(String region)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate + Optional getVolumeAttachmentExtensionForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Volume Type features. + * @deprecated Please use {@link #getVolumeTypeApi(String region)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate Optional getVolumeTypeExtensionForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); /** * Provides synchronous access to Console features. + * @deprecated Please use {@link #getConsolesApi(String region)} as this method will be removed + * in jclouds 3.0. */ + @Deprecated @Delegate Optional getConsolesExtensionForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/NovaApiMetadata.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/NovaApiMetadata.java index 4dfd4010f5..be37fe7ca8 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/NovaApiMetadata.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/NovaApiMetadata.java @@ -31,7 +31,7 @@ import org.jclouds.compute.ComputeServiceContext; import org.jclouds.openstack.keystone.v2_0.config.AuthenticationApiModule; import org.jclouds.openstack.keystone.v2_0.config.CredentialTypes; import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule; -import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ZoneModule; +import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule; import org.jclouds.openstack.nova.v2_0.compute.config.NovaComputeServiceContextModule; import org.jclouds.openstack.nova.v2_0.config.NovaHttpApiModule; import org.jclouds.openstack.nova.v2_0.config.NovaParserModule; @@ -92,7 +92,7 @@ public class NovaApiMetadata extends BaseHttpApiMetadata { .defaultModules(ImmutableSet.>builder() .add(AuthenticationApiModule.class) .add(KeystoneAuthenticationModule.class) - .add(ZoneModule.class) + .add(RegionModule.class) .add(NovaParserModule.class) .add(NovaHttpApiModule.class) .add(NovaComputeServiceContextModule.class).build()); diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeService.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeService.java index 163bbe47b3..6586395f35 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeService.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeService.java @@ -61,8 +61,8 @@ import org.jclouds.openstack.nova.v2_0.NovaApi; import org.jclouds.openstack.nova.v2_0.compute.options.NovaTemplateOptions; import org.jclouds.openstack.nova.v2_0.domain.KeyPair; import org.jclouds.openstack.nova.v2_0.domain.SecurityGroup; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.SecurityGroupInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.SecurityGroupInRegion; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; import org.jclouds.openstack.nova.v2_0.extensions.KeyPairApi; import org.jclouds.openstack.nova.v2_0.extensions.SecurityGroupApi; import org.jclouds.openstack.nova.v2_0.predicates.SecurityGroupPredicates; @@ -81,9 +81,9 @@ import com.google.common.util.concurrent.ListeningExecutorService; @Singleton public class NovaComputeService extends BaseComputeService { protected final NovaApi novaApi; - protected final LoadingCache securityGroupMap; - protected final LoadingCache keyPairCache; - protected final Function, Multimap> orphanedGroupsByZoneId; + protected final LoadingCache securityGroupMap; + protected final LoadingCache keyPairCache; + protected final Function, Multimap> orphanedGroupsByRegionId; protected final GroupNamingConvention.Factory namingConvention; @Inject @@ -102,9 +102,9 @@ public class NovaComputeService extends BaseComputeService { RunScriptOnNode.Factory runScriptOnNodeFactory, InitAdminAccess initAdminAccess, PersistNodeCredentials persistNodeCredentials, Timeouts timeouts, @Named(Constants.PROPERTY_USER_THREADS) ListeningExecutorService userExecutor, NovaApi novaApi, - LoadingCache securityGroupMap, - LoadingCache keyPairCache, - Function, Multimap> orphanedGroupsByZoneId, + LoadingCache securityGroupMap, + LoadingCache keyPairCache, + Function, Multimap> orphanedGroupsByRegionId, GroupNamingConvention.Factory namingConvention, Optional imageExtension, Optional securityGroupExtension) { super(context, credentialStore, images, sizes, locations, listNodesStrategy, getImageStrategy, @@ -115,53 +115,53 @@ public class NovaComputeService extends BaseComputeService { this.novaApi = checkNotNull(novaApi, "novaApi"); this.securityGroupMap = checkNotNull(securityGroupMap, "securityGroupMap"); this.keyPairCache = checkNotNull(keyPairCache, "keyPairCache"); - this.orphanedGroupsByZoneId = checkNotNull(orphanedGroupsByZoneId, "orphanedGroupsByZoneId"); + this.orphanedGroupsByRegionId = checkNotNull(orphanedGroupsByRegionId, "orphanedGroupsByRegionId"); this.namingConvention = checkNotNull(namingConvention, "namingConvention"); } @Override protected void cleanUpIncidentalResourcesOfDeadNodes(Set deadNodes) { - Multimap zoneToZoneAndGroupNames = orphanedGroupsByZoneId.apply(deadNodes); - for (Map.Entry> entry : zoneToZoneAndGroupNames.asMap().entrySet()) { - cleanOrphanedGroupsInZone(ImmutableSet.copyOf(entry.getValue()), entry.getKey()); + Multimap regionToRegionAndGroupNames = orphanedGroupsByRegionId.apply(deadNodes); + for (Map.Entry> entry : regionToRegionAndGroupNames.asMap().entrySet()) { + cleanOrphanedGroupsInRegion(ImmutableSet.copyOf(entry.getValue()), entry.getKey()); } } - protected void cleanOrphanedGroupsInZone(Set groups, String zoneId) { - cleanupOrphanedSecurityGroupsInZone(groups, zoneId); - cleanupOrphanedKeyPairsInZone(groups, zoneId); + protected void cleanOrphanedGroupsInRegion(Set groups, String regionId) { + cleanupOrphanedSecurityGroupsInRegion(groups, regionId); + cleanupOrphanedKeyPairsInRegion(groups, regionId); } - private void cleanupOrphanedSecurityGroupsInZone(Set groups, String zoneId) { - Optional securityGroupApi = novaApi.getSecurityGroupExtensionForZone(zoneId); + private void cleanupOrphanedSecurityGroupsInRegion(Set groups, String regionId) { + Optional securityGroupApi = novaApi.getSecurityGroupApi(regionId); if (securityGroupApi.isPresent()) { for (String group : groups) { for (SecurityGroup securityGroup : Iterables.filter(securityGroupApi.get().list(), SecurityGroupPredicates.nameMatches(namingConvention.create().containsGroup(group)))) { - ZoneAndName zoneAndName = ZoneAndName.fromZoneAndName(zoneId, securityGroup.getName()); - logger.debug(">> deleting securityGroup(%s)", zoneAndName); + RegionAndName regionAndName = RegionAndName.fromRegionAndName(regionId, securityGroup.getName()); + logger.debug(">> deleting securityGroup(%s)", regionAndName); securityGroupApi.get().delete(securityGroup.getId()); // TODO: test this clear happens - securityGroupMap.invalidate(zoneAndName); - logger.debug("<< deleted securityGroup(%s)", zoneAndName); + securityGroupMap.invalidate(regionAndName); + logger.debug("<< deleted securityGroup(%s)", regionAndName); } } } } - private void cleanupOrphanedKeyPairsInZone(Set groups, String zoneId) { - Optional keyPairApi = novaApi.getKeyPairExtensionForZone(zoneId); + private void cleanupOrphanedKeyPairsInRegion(Set groups, String regionId) { + Optional keyPairApi = novaApi.getKeyPairApi(regionId); if (keyPairApi.isPresent()) { for (String group : groups) { for (KeyPair pair : keyPairApi.get().list().filter(nameMatches(namingConvention.create().containsGroup(group)))) { - ZoneAndName zoneAndName = ZoneAndName.fromZoneAndName(zoneId, pair.getName()); - logger.debug(">> deleting keypair(%s)", zoneAndName); + RegionAndName regionAndName = RegionAndName.fromRegionAndName(regionId, pair.getName()); + logger.debug(">> deleting keypair(%s)", regionAndName); keyPairApi.get().delete(pair.getName()); // TODO: test this clear happens - keyPairCache.invalidate(zoneAndName); - logger.debug("<< deleted keypair(%s)", zoneAndName); + keyPairCache.invalidate(regionAndName); + logger.debug("<< deleted keypair(%s)", regionAndName); } - keyPairCache.invalidate(ZoneAndName.fromZoneAndName(zoneId, + keyPairCache.invalidate(RegionAndName.fromRegionAndName(regionId, namingConvention.create().sharedNameForGroup(group))); } } @@ -174,7 +174,5 @@ public class NovaComputeService extends BaseComputeService { public NovaTemplateOptions templateOptions() { return NovaTemplateOptions.class.cast(super.templateOptions()); } - - } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapter.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapter.java index 236189913b..f0c973bb12 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapter.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapter.java @@ -34,22 +34,23 @@ import org.jclouds.compute.domain.Template; import org.jclouds.compute.reference.ComputeServiceConstants; import org.jclouds.domain.Location; import org.jclouds.domain.LoginCredentials; -import org.jclouds.location.Zone; +import org.jclouds.location.Region; import org.jclouds.logging.Logger; import org.jclouds.openstack.nova.v2_0.NovaApi; import org.jclouds.openstack.nova.v2_0.compute.functions.RemoveFloatingIpFromNodeAndDeallocate; import org.jclouds.openstack.nova.v2_0.compute.options.NovaTemplateOptions; +import org.jclouds.openstack.nova.v2_0.compute.strategy.ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet; import org.jclouds.openstack.nova.v2_0.domain.Flavor; import org.jclouds.openstack.nova.v2_0.domain.Image; import org.jclouds.openstack.nova.v2_0.domain.KeyPair; import org.jclouds.openstack.nova.v2_0.domain.RebootType; import org.jclouds.openstack.nova.v2_0.domain.Server; import org.jclouds.openstack.nova.v2_0.domain.ServerCreated; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.FlavorInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ImageInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ServerInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndId; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.FlavorInRegion; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.ImageInRegion; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndId; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.ServerInRegion; import org.jclouds.openstack.nova.v2_0.options.CreateServerOptions; import org.jclouds.openstack.nova.v2_0.predicates.ImagePredicates; @@ -67,23 +68,23 @@ import com.google.common.collect.ImmutableSet.Builder; * model to the computeService generic domain model. */ public class NovaComputeServiceAdapter implements - ComputeServiceAdapter { + ComputeServiceAdapter { @Resource @Named(ComputeServiceConstants.COMPUTE_LOGGER) protected Logger logger = Logger.NULL; protected final NovaApi novaApi; - protected final Supplier> zoneIds; + protected final Supplier> regionIds; protected final RemoveFloatingIpFromNodeAndDeallocate removeFloatingIpFromNodeAndDeallocate; - protected final LoadingCache keyPairCache; + protected final LoadingCache keyPairCache; @Inject - public NovaComputeServiceAdapter(NovaApi novaApi, @Zone Supplier> zoneIds, + public NovaComputeServiceAdapter(NovaApi novaApi, @Region Supplier> regionIds, RemoveFloatingIpFromNodeAndDeallocate removeFloatingIpFromNodeAndDeallocate, - LoadingCache keyPairCache) { + LoadingCache keyPairCache) { this.novaApi = checkNotNull(novaApi, "novaApi"); - this.zoneIds = checkNotNull(zoneIds, "zoneIds"); + this.regionIds = checkNotNull(regionIds, "regionIds"); this.removeFloatingIpFromNodeAndDeallocate = checkNotNull(removeFloatingIpFromNodeAndDeallocate, "removeFloatingIpFromNodeAndDeallocate"); this.keyPairCache = checkNotNull(keyPairCache, "keyPairCache"); @@ -95,7 +96,7 @@ public class NovaComputeServiceAdapter implements * done so. */ @Override - public NodeAndInitialCredentials createNodeWithGroupEncodedIntoName(String group, String name, + public NodeAndInitialCredentials createNodeWithGroupEncodedIntoName(String group, String name, Template template) { LoginCredentials.Builder credentialsBuilder = LoginCredentials.builder(); @@ -118,40 +119,40 @@ public class NovaComputeServiceAdapter implements Optional privateKey = Optional.absent(); if (templateOptions.getKeyPairName() != null) { options.keyPairName(templateOptions.getKeyPairName()); - KeyPair keyPair = keyPairCache.getIfPresent(ZoneAndName.fromZoneAndName(template.getLocation().getId(), templateOptions.getKeyPairName())); + KeyPair keyPair = keyPairCache.getIfPresent(RegionAndName.fromRegionAndName(template.getLocation().getId(), templateOptions.getKeyPairName())); if (keyPair != null && keyPair.getPrivateKey() != null) { privateKey = Optional.of(keyPair.getPrivateKey()); credentialsBuilder.privateKey(privateKey.get()); } } - String zoneId = template.getLocation().getId(); + String regionId = template.getLocation().getId(); String imageId = template.getImage().getProviderId(); String flavorId = template.getHardware().getProviderId(); - logger.debug(">> creating new server zone(%s) name(%s) image(%s) flavor(%s) options(%s)", zoneId, name, imageId, flavorId, options); - ServerCreated lightweightServer = novaApi.getServerApiForZone(zoneId).create(name, imageId, flavorId, options); - Server server = novaApi.getServerApiForZone(zoneId).get(lightweightServer.getId()); + logger.debug(">> creating new server region(%s) name(%s) image(%s) flavor(%s) options(%s)", regionId, name, imageId, flavorId, options); + ServerCreated lightweightServer = novaApi.getServerApi(regionId).create(name, imageId, flavorId, options); + Server server = novaApi.getServerApi(regionId).get(lightweightServer.getId()); logger.trace("<< server(%s)", server.getId()); - ServerInZone serverInZone = new ServerInZone(server, zoneId); + ServerInRegion serverInRegion = new ServerInRegion(server, regionId); if (!privateKey.isPresent() && lightweightServer.getAdminPass().isPresent()) credentialsBuilder.password(lightweightServer.getAdminPass().get()); - return new NodeAndInitialCredentials(serverInZone, serverInZone.slashEncode(), credentialsBuilder + return new NodeAndInitialCredentials(serverInRegion, serverInRegion.slashEncode(), credentialsBuilder .build()); } @Override - public Iterable listHardwareProfiles() { - Builder builder = ImmutableSet.builder(); - for (final String zoneId : zoneIds.get()) { - builder.addAll(transform(novaApi.getFlavorApiForZone(zoneId).listInDetail().concat(), - new Function() { + public Iterable listHardwareProfiles() { + Builder builder = ImmutableSet.builder(); + for (final String regionId : regionIds.get()) { + builder.addAll(transform(novaApi.getFlavorApi(regionId).listInDetail().concat(), + new Function() { @Override - public FlavorInZone apply(Flavor arg0) { - return new FlavorInZone(arg0, zoneId); + public FlavorInRegion apply(Flavor arg0) { + return new FlavorInRegion(arg0, regionId); } })); @@ -160,19 +161,19 @@ public class NovaComputeServiceAdapter implements } @Override - public Iterable listImages() { - Builder builder = ImmutableSet.builder(); - Set zones = zoneIds.get(); - checkState(zones.size() > 0, "no zones found in supplier %s", zoneIds); - for (final String zoneId : zones) { - Set images = novaApi.getImageApiForZone(zoneId).listInDetail().concat().toSet(); + public Iterable listImages() { + Builder builder = ImmutableSet.builder(); + Set regions = regionIds.get(); + checkState(regions.size() > 0, "no regions found in supplier %s", regionIds); + for (final String regionId : regions) { + Set images = novaApi.getImageApi(regionId).listInDetail().concat().toSet(); if (images.size() == 0) { - logger.debug("no images found in zone %s", zoneId); + logger.debug("no images found in region %s", regionId); continue; } Iterable active = filter(images, ImagePredicates.statusEquals(Image.Status.ACTIVE)); if (images.size() == 0) { - logger.debug("no images with status active in zone %s; non-active: %s", zoneId, + logger.debug("no images with status active in region %s; non-active: %s", regionId, transform(active, new Function() { @Override @@ -184,11 +185,11 @@ public class NovaComputeServiceAdapter implements })); continue; } - builder.addAll(transform(active, new Function() { + builder.addAll(transform(active, new Function() { @Override - public ImageInZone apply(Image arg0) { - return new ImageInZone(arg0, zoneId); + public ImageInRegion apply(Image arg0) { + return new ImageInRegion(arg0, regionId); } })); @@ -197,15 +198,15 @@ public class NovaComputeServiceAdapter implements } @Override - public Iterable listNodes() { - Builder builder = ImmutableSet.builder(); - for (final String zoneId : zoneIds.get()) { - builder.addAll(novaApi.getServerApiForZone(zoneId).listInDetail().concat() - .transform(new Function() { + public Iterable listNodes() { + Builder builder = ImmutableSet.builder(); + for (final String regionId : regionIds.get()) { + builder.addAll(novaApi.getServerApi(regionId).listInDetail().concat() + .transform(new Function() { @Override - public ServerInZone apply(Server arg0) { - return new ServerInZone(arg0, zoneId); + public ServerInRegion apply(Server arg0) { + return new ServerInRegion(arg0, regionId); } })); @@ -214,11 +215,11 @@ public class NovaComputeServiceAdapter implements } @Override - public Iterable listNodesByIds(final Iterable ids) { - return filter(listNodes(), new Predicate() { + public Iterable listNodesByIds(final Iterable ids) { + return filter(listNodes(), new Predicate() { @Override - public boolean apply(ServerInZone server) { + public boolean apply(ServerInRegion server) { return contains(ids, server.slashEncode()); } }); @@ -231,43 +232,43 @@ public class NovaComputeServiceAdapter implements } @Override - public ServerInZone getNode(String id) { - ZoneAndId zoneAndId = ZoneAndId.fromSlashEncoded(id); - Server server = novaApi.getServerApiForZone(zoneAndId.getZone()).get(zoneAndId.getId()); - return server == null ? null : new ServerInZone(server, zoneAndId.getZone()); + public ServerInRegion getNode(String id) { + RegionAndId regionAndId = RegionAndId.fromSlashEncoded(id); + Server server = novaApi.getServerApi(regionAndId.getRegion()).get(regionAndId.getId()); + return server == null ? null : new ServerInRegion(server, regionAndId.getRegion()); } @Override - public ImageInZone getImage(String id) { - ZoneAndId zoneAndId = ZoneAndId.fromSlashEncoded(id); - Image image = novaApi.getImageApiForZone(zoneAndId.getZone()).get(zoneAndId.getId()); - return image == null ? null : new ImageInZone(image, zoneAndId.getZone()); + public ImageInRegion getImage(String id) { + RegionAndId regionAndId = RegionAndId.fromSlashEncoded(id); + Image image = novaApi.getImageApi(regionAndId.getRegion()).get(regionAndId.getId()); + return image == null ? null : new ImageInRegion(image, regionAndId.getRegion()); } @Override public void destroyNode(String id) { - ZoneAndId zoneAndId = ZoneAndId.fromSlashEncoded(id); - if (novaApi.getFloatingIPExtensionForZone(zoneAndId.getZone()).isPresent()) { + RegionAndId regionAndId = RegionAndId.fromSlashEncoded(id); + if (novaApi.getFloatingIPApi(regionAndId.getRegion()).isPresent()) { try { - removeFloatingIpFromNodeAndDeallocate.apply(zoneAndId); + removeFloatingIpFromNodeAndDeallocate.apply(regionAndId); } catch (RuntimeException e) { logger.warn(e, "<< error removing and deallocating ip from node(%s): %s", id, e.getMessage()); } } - novaApi.getServerApiForZone(zoneAndId.getZone()).delete(zoneAndId.getId()); + novaApi.getServerApi(regionAndId.getRegion()).delete(regionAndId.getId()); } @Override public void rebootNode(String id) { - ZoneAndId zoneAndId = ZoneAndId.fromSlashEncoded(id); - novaApi.getServerApiForZone(zoneAndId.getZone()).reboot(zoneAndId.getId(), RebootType.HARD); + RegionAndId regionAndId = RegionAndId.fromSlashEncoded(id); + novaApi.getServerApi(regionAndId.getRegion()).reboot(regionAndId.getId(), RebootType.HARD); } @Override public void resumeNode(String id) { - ZoneAndId zoneAndId = ZoneAndId.fromSlashEncoded(id); - if (novaApi.getServerAdminExtensionForZone(zoneAndId.getZone()).isPresent()) { - novaApi.getServerAdminExtensionForZone(zoneAndId.getZone()).get().resume(zoneAndId.getId()); + RegionAndId regionAndId = RegionAndId.fromSlashEncoded(id); + if (novaApi.getServerAdminApi(regionAndId.getRegion()).isPresent()) { + novaApi.getServerAdminApi(regionAndId.getRegion()).get().resume(regionAndId.getId()); } else { throw new UnsupportedOperationException("resume requires installation of the Admin Actions extension"); } @@ -275,9 +276,9 @@ public class NovaComputeServiceAdapter implements @Override public void suspendNode(String id) { - ZoneAndId zoneAndId = ZoneAndId.fromSlashEncoded(id); - if (novaApi.getServerAdminExtensionForZone(zoneAndId.getZone()).isPresent()) { - novaApi.getServerAdminExtensionForZone(zoneAndId.getZone()).get().suspend(zoneAndId.getId()); + RegionAndId regionAndId = RegionAndId.fromSlashEncoded(id); + if (novaApi.getServerAdminApi(regionAndId.getRegion()).isPresent()) { + novaApi.getServerAdminApi(regionAndId.getRegion()).get().suspend(regionAndId.getId()); } else { throw new UnsupportedOperationException("suspend requires installation of the Admin Actions extension"); } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/config/NovaComputeServiceContextModule.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/config/NovaComputeServiceContextModule.java index e070bdb11f..cabca593ef 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/config/NovaComputeServiceContextModule.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/config/NovaComputeServiceContextModule.java @@ -52,14 +52,14 @@ import org.jclouds.openstack.nova.v2_0.compute.NovaComputeServiceAdapter; import org.jclouds.openstack.nova.v2_0.compute.extensions.NovaImageExtension; import org.jclouds.openstack.nova.v2_0.compute.extensions.NovaSecurityGroupExtension; import org.jclouds.openstack.nova.v2_0.compute.functions.CreateSecurityGroupIfNeeded; -import org.jclouds.openstack.nova.v2_0.compute.functions.FlavorInZoneToHardware; -import org.jclouds.openstack.nova.v2_0.compute.functions.ImageInZoneToImage; +import org.jclouds.openstack.nova.v2_0.compute.functions.FlavorInRegionToHardware; +import org.jclouds.openstack.nova.v2_0.compute.functions.ImageInRegionToImage; import org.jclouds.openstack.nova.v2_0.compute.functions.ImageToOperatingSystem; -import org.jclouds.openstack.nova.v2_0.compute.functions.NovaSecurityGroupInZoneToSecurityGroup; +import org.jclouds.openstack.nova.v2_0.compute.functions.NovaSecurityGroupInRegionToSecurityGroup; import org.jclouds.openstack.nova.v2_0.compute.functions.NovaSecurityGroupToSecurityGroup; -import org.jclouds.openstack.nova.v2_0.compute.functions.OrphanedGroupsByZoneId; +import org.jclouds.openstack.nova.v2_0.compute.functions.OrphanedGroupsByRegionId; import org.jclouds.openstack.nova.v2_0.compute.functions.SecurityGroupRuleToIpPermission; -import org.jclouds.openstack.nova.v2_0.compute.functions.ServerInZoneToNodeMetadata; +import org.jclouds.openstack.nova.v2_0.compute.functions.ServerInRegionToNodeMetadata; import org.jclouds.openstack.nova.v2_0.compute.loaders.CreateUniqueKeyPair; import org.jclouds.openstack.nova.v2_0.compute.loaders.FindSecurityGroupOrCreate; import org.jclouds.openstack.nova.v2_0.compute.loaders.LoadFloatingIpsForInstance; @@ -69,13 +69,13 @@ import org.jclouds.openstack.nova.v2_0.domain.FloatingIP; import org.jclouds.openstack.nova.v2_0.domain.KeyPair; import org.jclouds.openstack.nova.v2_0.domain.SecurityGroupRule; import org.jclouds.openstack.nova.v2_0.domain.Server; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.FlavorInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ImageInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.SecurityGroupInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ServerInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndId; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneSecurityGroupNameAndPorts; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.FlavorInRegion; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.ImageInRegion; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.SecurityGroupInRegion; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.ServerInRegion; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndId; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionSecurityGroupNameAndPorts; import org.jclouds.openstack.nova.v2_0.predicates.FindSecurityGroupWithNameAndReturnTrue; import com.google.common.annotations.VisibleForTesting; @@ -100,19 +100,19 @@ import com.google.inject.name.Names; * Module for building a compute service context for Nova */ public class NovaComputeServiceContextModule extends - ComputeServiceAdapterContextModule { + ComputeServiceAdapterContextModule { @SuppressWarnings("unchecked") @Override protected void configure() { super.configure(); - bind(new TypeLiteral>() { + bind(new TypeLiteral>() { }).to(NovaComputeServiceAdapter.class); bind(ComputeService.class).to(NovaComputeService.class); - bind(new TypeLiteral>() { - }).to(ServerInZoneToNodeMetadata.class); + bind(new TypeLiteral>() { + }).to(ServerInRegionToNodeMetadata.class); bind(new TypeLiteral>() { }).to(SecurityGroupRuleToIpPermission.class); @@ -120,19 +120,19 @@ public class NovaComputeServiceContextModule extends bind(new TypeLiteral>() { }).to(NovaSecurityGroupToSecurityGroup.class); - bind(new TypeLiteral>() { - }).to(NovaSecurityGroupInZoneToSecurityGroup.class); + bind(new TypeLiteral>() { + }).to(NovaSecurityGroupInRegionToSecurityGroup.class); bind(new TypeLiteral, Multimap>>() { - }).to(OrphanedGroupsByZoneId.class); + }).to(OrphanedGroupsByRegionId.class); - bind(new TypeLiteral>() { - }).to(ImageInZoneToImage.class); + bind(new TypeLiteral>() { + }).to(ImageInRegionToImage.class); bind(new TypeLiteral>() { }).to(ImageToOperatingSystem.class); - bind(new TypeLiteral>() { - }).to(FlavorInZoneToHardware.class); + bind(new TypeLiteral>() { + }).to(FlavorInRegionToHardware.class); // we aren't converting location from a provider-specific type bind(new TypeLiteral>() { @@ -140,19 +140,19 @@ public class NovaComputeServiceContextModule extends bind(TemplateOptions.class).to(NovaTemplateOptions.class); - bind(new TypeLiteral>>() { + bind(new TypeLiteral>>() { }).annotatedWith(Names.named("FLOATINGIP")).to(LoadFloatingIpsForInstance.class); - bind(new TypeLiteral>() { + bind(new TypeLiteral>() { }).to(CreateSecurityGroupIfNeeded.class); - bind(new TypeLiteral>() { + bind(new TypeLiteral>() { }).to(FindSecurityGroupOrCreate.class); bind(CreateNodesWithGroupEncodedIntoNameThenAddToSet.class).to( ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.class); - bind(new TypeLiteral>() { + bind(new TypeLiteral>() { }).to(CreateUniqueKeyPair.class); bind(new TypeLiteral() { @@ -174,15 +174,15 @@ public class NovaComputeServiceContextModule extends @Provides @Singleton @Named("FLOATINGIP") - protected LoadingCache> instanceToFloatingIps( - @Named("FLOATINGIP") CacheLoader> in) { + protected LoadingCache> instanceToFloatingIps( + @Named("FLOATINGIP") CacheLoader> in) { return CacheBuilder.newBuilder().build(in); } @Provides @Singleton - protected LoadingCache securityGroupMap( - CacheLoader in) { + protected LoadingCache securityGroupMap( + CacheLoader in) { return CacheBuilder.newBuilder().build(in); } @@ -195,7 +195,7 @@ public class NovaComputeServiceContextModule extends @Provides @Singleton @Named("SECURITYGROUP_PRESENT") - protected Predicate> securityGroupEventualConsistencyDelay( + protected Predicate> securityGroupEventualConsistencyDelay( FindSecurityGroupWithNameAndReturnTrue in, @Named(TIMEOUT_SECURITYGROUP_PRESENT) long msDelay) { return retry(in, msDelay, 100l, MILLISECONDS); @@ -203,8 +203,8 @@ public class NovaComputeServiceContextModule extends @Provides @Singleton - protected LoadingCache keyPairMap( - CacheLoader in) { + protected LoadingCache keyPairMap( + CacheLoader in) { return CacheBuilder.newBuilder().build(in); } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaImageExtension.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaImageExtension.java index dfee4d1d26..9e12d97bf3 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaImageExtension.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaImageExtension.java @@ -46,7 +46,7 @@ import org.jclouds.domain.Location; import org.jclouds.logging.Logger; import org.jclouds.openstack.nova.v2_0.NovaApi; import org.jclouds.openstack.nova.v2_0.domain.Server; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndId; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndId; import com.google.common.base.Predicate; import com.google.common.base.Supplier; @@ -82,10 +82,10 @@ public class NovaImageExtension implements ImageExtension { @Override public ImageTemplate buildImageTemplateFromNode(String name, final String id) { - ZoneAndId zoneAndId = ZoneAndId.fromSlashEncoded(id); - Server server = novaApi.getServerApiForZone(zoneAndId.getZone()).get(zoneAndId.getId()); + RegionAndId regionAndId = RegionAndId.fromSlashEncoded(id); + Server server = novaApi.getServerApi(regionAndId.getRegion()).get(regionAndId.getId()); if (server == null) - throw new NoSuchElementException("Cannot find server with id: " + zoneAndId); + throw new NoSuchElementException("Cannot find server with id: " + regionAndId); CloneImageTemplate template = new ImageTemplateBuilder.CloneImageTemplateBuilder().nodeId(id).name(name).build(); return template; } @@ -95,19 +95,19 @@ public class NovaImageExtension implements ImageExtension { checkState(template instanceof CloneImageTemplate, " openstack-nova only supports creating images through cloning."); CloneImageTemplate cloneTemplate = (CloneImageTemplate) template; - ZoneAndId sourceImageZoneAndId = ZoneAndId.fromSlashEncoded(cloneTemplate.getSourceNodeId()); + RegionAndId sourceImageRegionAndId = RegionAndId.fromSlashEncoded(cloneTemplate.getSourceNodeId()); - String newImageId = novaApi.getServerApiForZone(sourceImageZoneAndId.getZone()).createImageFromServer( - cloneTemplate.getName(), sourceImageZoneAndId.getId()); + String newImageId = novaApi.getServerApi(sourceImageRegionAndId.getRegion()).createImageFromServer( + cloneTemplate.getName(), sourceImageRegionAndId.getId()); - final ZoneAndId targetImageZoneAndId = ZoneAndId.fromZoneAndId(sourceImageZoneAndId.getZone(), newImageId); + final RegionAndId targetImageRegionAndId = RegionAndId.fromRegionAndId(sourceImageRegionAndId.getRegion(), newImageId); logger.info(">> Registered new Image %s, waiting for it to become available.", newImageId); - + final AtomicReference image = Atomics.newReference(new ImageBuilder() - .location(find(locations.get(), idEquals(targetImageZoneAndId.getZone()))) - .id(targetImageZoneAndId.slashEncode()) - .providerId(targetImageZoneAndId.getId()) + .location(find(locations.get(), idEquals(targetImageRegionAndId.getRegion()))) + .id(targetImageRegionAndId.slashEncode()) + .providerId(targetImageRegionAndId.getId()) .description(cloneTemplate.getName()) .operatingSystem(OperatingSystem.builder().description(cloneTemplate.getName()).build()) .status(Image.Status.PENDING).build()); @@ -125,9 +125,9 @@ public class NovaImageExtension implements ImageExtension { @Override public boolean deleteImage(String id) { - ZoneAndId zoneAndId = ZoneAndId.fromSlashEncoded(id); + RegionAndId regionAndId = RegionAndId.fromSlashEncoded(id); try { - this.novaApi.getImageApiForZone(zoneAndId.getZone()).delete(zoneAndId.getId()); + this.novaApi.getImageApi(regionAndId.getRegion()).delete(regionAndId.getId()); } catch (Exception e) { return false; } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaSecurityGroupExtension.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaSecurityGroupExtension.java index e808ed366b..0899bb30e6 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaSecurityGroupExtension.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaSecurityGroupExtension.java @@ -40,17 +40,17 @@ import org.jclouds.compute.domain.SecurityGroup; import org.jclouds.compute.extensions.SecurityGroupExtension; import org.jclouds.compute.functions.GroupNamingConvention; import org.jclouds.domain.Location; -import org.jclouds.location.Zone; +import org.jclouds.location.Region; import org.jclouds.net.domain.IpPermission; import org.jclouds.net.domain.IpProtocol; import org.jclouds.openstack.nova.v2_0.NovaApi; import org.jclouds.openstack.nova.v2_0.domain.Ingress; import org.jclouds.openstack.nova.v2_0.domain.SecurityGroupRule; import org.jclouds.openstack.nova.v2_0.domain.ServerWithSecurityGroups; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.SecurityGroupInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndId; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneSecurityGroupNameAndPorts; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndId; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionSecurityGroupNameAndPorts; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.SecurityGroupInRegion; import org.jclouds.openstack.nova.v2_0.extensions.SecurityGroupApi; import org.jclouds.openstack.nova.v2_0.extensions.ServerWithSecurityGroupsApi; @@ -70,22 +70,22 @@ public class NovaSecurityGroupExtension implements SecurityGroupExtension { protected final NovaApi api; protected final ListeningExecutorService userExecutor; - protected final Supplier> zoneIds; - protected final Function groupConverter; - protected final LoadingCache groupCreator; + protected final Supplier> regionIds; + protected final Function groupConverter; + protected final LoadingCache groupCreator; protected final GroupNamingConvention.Factory namingConvention; @Inject public NovaSecurityGroupExtension(NovaApi api, @Named(Constants.PROPERTY_USER_THREADS) ListeningExecutorService userExecutor, - @Zone Supplier> zoneIds, - Function groupConverter, - LoadingCache groupCreator, + @Region Supplier> regionIds, + Function groupConverter, + LoadingCache groupCreator, GroupNamingConvention.Factory namingConvention) { this.api = checkNotNull(api, "api"); this.userExecutor = checkNotNull(userExecutor, "userExecutor"); - this.zoneIds = checkNotNull(zoneIds, "zoneIds"); + this.regionIds = checkNotNull(regionIds, "regionIds"); this.groupConverter = checkNotNull(groupConverter, "groupConverter"); this.groupCreator = checkNotNull(groupCreator, "groupCreator"); this.namingConvention = checkNotNull(namingConvention, "namingConvention"); @@ -93,7 +93,7 @@ public class NovaSecurityGroupExtension implements SecurityGroupExtension { @Override public Set listSecurityGroups() { - Iterable rawGroups = pollSecurityGroups(); + Iterable rawGroups = pollSecurityGroups(); Iterable groups = transform(filter(rawGroups, notNull()), groupConverter); return ImmutableSet.copyOf(groups); @@ -102,15 +102,15 @@ public class NovaSecurityGroupExtension implements SecurityGroupExtension { @Override public Set listSecurityGroupsInLocation(final Location location) { - String zone = location.getId(); - if (zone == null) { + String region = location.getId(); + if (region == null) { return ImmutableSet.of(); } - return listSecurityGroupsInLocation(zone); + return listSecurityGroupsInLocation(region); } - public Set listSecurityGroupsInLocation(String zone) { - Iterable rawGroups = pollSecurityGroupsByZone(zone); + public Set listSecurityGroupsInLocation(String region) { + Iterable rawGroups = pollSecurityGroupsByRegion(region); Iterable groups = transform(filter(rawGroups, notNull()), groupConverter); return ImmutableSet.copyOf(groups); @@ -118,12 +118,12 @@ public class NovaSecurityGroupExtension implements SecurityGroupExtension { @Override public Set listSecurityGroupsForNode(String id) { - ZoneAndId zoneAndId = ZoneAndId.fromSlashEncoded(checkNotNull(id, "id")); - String zone = zoneAndId.getZone(); - String instanceId = zoneAndId.getId(); + RegionAndId regionAndId = RegionAndId.fromSlashEncoded(checkNotNull(id, "id")); + String region = regionAndId.getRegion(); + String instanceId = regionAndId.getId(); - Optional serverApi = api.getServerWithSecurityGroupsExtensionForZone(zone); - Optional sgApi = api.getSecurityGroupExtensionForZone(zone); + Optional serverApi = api.getServerWithSecurityGroupsApi(region); + Optional sgApi = api.getSecurityGroupApi(region); if (!serverApi.isPresent() || !sgApi.isPresent()) { return ImmutableSet.of(); @@ -135,54 +135,54 @@ public class NovaSecurityGroupExtension implements SecurityGroupExtension { } Set groupNames = instance.getSecurityGroupNames(); - Set rawGroups = - sgApi.get().list().filter(nameIn(groupNames)).transform(groupToGroupInZone(zone)).toSet(); + Set rawGroups = + sgApi.get().list().filter(nameIn(groupNames)).transform(groupToGroupInRegion(region)).toSet(); return ImmutableSet.copyOf(transform(filter(rawGroups, notNull()), groupConverter)); } @Override public SecurityGroup getSecurityGroupById(String id) { - ZoneAndId zoneAndId = ZoneAndId.fromSlashEncoded(checkNotNull(id, "id")); - String zone = zoneAndId.getZone(); - String groupId = zoneAndId.getId(); + RegionAndId regionAndId = RegionAndId.fromSlashEncoded(checkNotNull(id, "id")); + String region = regionAndId.getRegion(); + String groupId = regionAndId.getId(); - Optional sgApi = api.getSecurityGroupExtensionForZone(zone); + Optional sgApi = api.getSecurityGroupApi(region); if (!sgApi.isPresent()) { return null; } - SecurityGroupInZone rawGroup = new SecurityGroupInZone(sgApi.get().get(groupId), zone); + SecurityGroupInRegion rawGroup = new SecurityGroupInRegion(sgApi.get().get(groupId), region); return groupConverter.apply(rawGroup); } @Override public SecurityGroup createSecurityGroup(String name, Location location) { - String zone = location.getId(); - if (zone == null) { + String region = location.getId(); + if (region == null) { return null; } - return createSecurityGroup(name, zone); + return createSecurityGroup(name, region); } - public SecurityGroup createSecurityGroup(String name, String zone) { + public SecurityGroup createSecurityGroup(String name, String region) { String markerGroup = namingConvention.create().sharedNameForGroup(name); - ZoneSecurityGroupNameAndPorts zoneAndName = new ZoneSecurityGroupNameAndPorts(zone, markerGroup, ImmutableSet. of()); + RegionSecurityGroupNameAndPorts regionAndName = new RegionSecurityGroupNameAndPorts(region, markerGroup, ImmutableSet. of()); - SecurityGroupInZone rawGroup = groupCreator.getUnchecked(zoneAndName); + SecurityGroupInRegion rawGroup = groupCreator.getUnchecked(regionAndName); return groupConverter.apply(rawGroup); } @Override public boolean removeSecurityGroup(String id) { checkNotNull(id, "id"); - ZoneAndId zoneAndId = ZoneAndId.fromSlashEncoded(id); - String zone = zoneAndId.getZone(); - String groupId = zoneAndId.getId(); + RegionAndId regionAndId = RegionAndId.fromSlashEncoded(id); + String region = regionAndId.getRegion(); + String groupId = regionAndId.getId(); - Optional sgApi = api.getSecurityGroupExtensionForZone(zone); + Optional sgApi = api.getSecurityGroupApi(region); if (!sgApi.isPresent()) { return false; @@ -194,16 +194,16 @@ public class NovaSecurityGroupExtension implements SecurityGroupExtension { sgApi.get().delete(groupId); // TODO: test this clear happens - groupCreator.invalidate(new ZoneSecurityGroupNameAndPorts(zone, groupId, ImmutableSet. of())); + groupCreator.invalidate(new RegionSecurityGroupNameAndPorts(region, groupId, ImmutableSet. of())); return true; } @Override public SecurityGroup addIpPermission(IpPermission ipPermission, SecurityGroup group) { - String zone = group.getLocation().getId(); - ZoneAndId groupZoneAndId = ZoneAndId.fromSlashEncoded(group.getId()); - String id = groupZoneAndId.getId(); - Optional sgApi = api.getSecurityGroupExtensionForZone(zone); + String region = group.getLocation().getId(); + RegionAndId groupRegionAndId = RegionAndId.fromSlashEncoded(group.getId()); + String id = groupRegionAndId.getId(); + Optional sgApi = api.getSecurityGroupApi(region); if (!sgApi.isPresent()) { return null; @@ -222,9 +222,9 @@ public class NovaSecurityGroupExtension implements SecurityGroupExtension { } if (ipPermission.getGroupIds().size() > 0) { - for (String zoneAndGroupRaw : ipPermission.getGroupIds()) { - ZoneAndId zoneAndId = ZoneAndId.fromSlashEncoded(zoneAndGroupRaw); - String groupId = zoneAndId.getId(); + for (String regionAndGroupRaw : ipPermission.getGroupIds()) { + RegionAndId regionAndId = RegionAndId.fromSlashEncoded(regionAndGroupRaw); + String groupId = regionAndId.getId(); sgApi.get().createRuleAllowingSecurityGroupId(id, Ingress.builder() .ipProtocol(ipPermission.getIpProtocol()) @@ -235,7 +235,7 @@ public class NovaSecurityGroupExtension implements SecurityGroupExtension { } } - return getSecurityGroupById(ZoneAndId.fromZoneAndId(zone, id).slashEncode()); + return getSecurityGroupById(RegionAndId.fromRegionAndId(region, id).slashEncode()); } @Override @@ -256,11 +256,11 @@ public class NovaSecurityGroupExtension implements SecurityGroupExtension { @Override public SecurityGroup removeIpPermission(IpPermission ipPermission, SecurityGroup group) { - String zone = group.getLocation().getId(); - ZoneAndId groupZoneAndId = ZoneAndId.fromSlashEncoded(group.getId()); - String id = groupZoneAndId.getId(); + String region = group.getLocation().getId(); + RegionAndId groupRegionAndId = RegionAndId.fromSlashEncoded(group.getId()); + String id = groupRegionAndId.getId(); - Optional sgApi = api.getSecurityGroupExtensionForZone(zone); + Optional sgApi = api.getSecurityGroupApi(region); if (!sgApi.isPresent()) { return null; @@ -291,7 +291,7 @@ public class NovaSecurityGroupExtension implements SecurityGroupExtension { } } - return getSecurityGroupById(ZoneAndId.fromZoneAndId(zone, id).slashEncode()); + return getSecurityGroupById(RegionAndId.fromRegionAndId(region, id).slashEncode()); } @Override @@ -330,41 +330,41 @@ public class NovaSecurityGroupExtension implements SecurityGroupExtension { return false; } - protected Iterable pollSecurityGroups() { - Iterable> groups - = transform(zoneIds.get(), allSecurityGroupsInZone()); + protected Iterable pollSecurityGroups() { + Iterable> groups + = transform(regionIds.get(), allSecurityGroupsInRegion()); return concat(groups); } - protected Iterable pollSecurityGroupsByZone(String zone) { - return allSecurityGroupsInZone().apply(zone); + protected Iterable pollSecurityGroupsByRegion(String region) { + return allSecurityGroupsInRegion().apply(region); } - protected Function> allSecurityGroupsInZone() { - return new Function>() { + protected Function> allSecurityGroupsInRegion() { + return new Function>() { @Override - public Set apply(final String from) { - Optional sgApi = api.getSecurityGroupExtensionForZone(from); + public Set apply(final String from) { + Optional sgApi = api.getSecurityGroupApi(from); if (!sgApi.isPresent()) { return ImmutableSet.of(); } - return sgApi.get().list().transform(groupToGroupInZone(from)).toSet(); + return sgApi.get().list().transform(groupToGroupInRegion(from)).toSet(); } }; } - protected Function groupToGroupInZone(final String zone) { - return new Function() { + protected Function groupToGroupInRegion(final String region) { + return new Function() { @Override - public SecurityGroupInZone apply(org.jclouds.openstack.nova.v2_0.domain.SecurityGroup group) { - return new SecurityGroupInZone(group, zone); + public SecurityGroupInRegion apply(org.jclouds.openstack.nova.v2_0.domain.SecurityGroup group) { + return new SecurityGroupInRegion(group, region); } }; } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNode.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNode.java index b734e0729d..1de8fd8365 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNode.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNode.java @@ -35,7 +35,7 @@ import org.jclouds.logging.Logger; import org.jclouds.openstack.nova.v2_0.NovaApi; import org.jclouds.openstack.nova.v2_0.compute.options.NodeAndNovaTemplateOptions; import org.jclouds.openstack.nova.v2_0.domain.FloatingIP; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndId; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndId; import org.jclouds.openstack.nova.v2_0.extensions.FloatingIPApi; import org.jclouds.rest.InsufficientResourcesException; @@ -60,11 +60,11 @@ public class AllocateAndAddFloatingIpToNode implements private final Predicate> nodeRunning; private final NovaApi novaApi; - private final LoadingCache> floatingIpCache; + private final LoadingCache> floatingIpCache; @Inject public AllocateAndAddFloatingIpToNode(@Named(TIMEOUT_NODE_RUNNING) Predicate> nodeRunning, - NovaApi novaApi, @Named("FLOATINGIP") LoadingCache> floatingIpCache) { + NovaApi novaApi, @Named("FLOATINGIP") LoadingCache> floatingIpCache) { this.nodeRunning = checkNotNull(nodeRunning, "nodeRunning"); this.novaApi = checkNotNull(novaApi, "novaApi"); this.floatingIpCache = checkNotNull(floatingIpCache, "floatingIpCache"); @@ -75,8 +75,8 @@ public class AllocateAndAddFloatingIpToNode implements checkState(nodeRunning.apply(input.get().getNodeMetadata()), "node never achieved state running %s", input.get().getNodeMetadata()); NodeMetadata node = input.get().getNodeMetadata().get(); // node's location is a host - String zoneId = node.getLocation().getParent().getId(); - FloatingIPApi floatingIpApi = novaApi.getFloatingIPExtensionForZone(zoneId).get(); + String regionId = node.getLocation().getParent().getId(); + FloatingIPApi floatingIpApi = novaApi.getFloatingIPApi(regionId).get(); Optional> poolNames = input.get().getNovaTemplateOptions().get().getFloatingIpPoolNames(); Optional ip = allocateFloatingIPForNode(floatingIpApi, poolNames, node.getId()); @@ -87,7 +87,7 @@ public class AllocateAndAddFloatingIpToNode implements floatingIpApi.addToServer(ip.get().getIp(), node.getProviderId()); input.get().getNodeMetadata().set(NodeMetadataBuilder.fromNodeMetadata(node).publicAddresses(ImmutableSet.of(ip.get().getIp())).build()); - floatingIpCache.invalidate(ZoneAndId.fromSlashEncoded(node.getId())); + floatingIpCache.invalidate(RegionAndId.fromSlashEncoded(node.getId())); return input.get().getNodeMetadata(); } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/CreateSecurityGroupIfNeeded.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/CreateSecurityGroupIfNeeded.java index 5a87105137..4c2c8cc476 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/CreateSecurityGroupIfNeeded.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/CreateSecurityGroupIfNeeded.java @@ -32,15 +32,15 @@ import org.jclouds.net.domain.IpProtocol; import org.jclouds.openstack.nova.v2_0.NovaApi; import org.jclouds.openstack.nova.v2_0.domain.Ingress; import org.jclouds.openstack.nova.v2_0.domain.SecurityGroup; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.SecurityGroupInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneSecurityGroupNameAndPorts; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.SecurityGroupInRegion; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionSecurityGroupNameAndPorts; import org.jclouds.openstack.nova.v2_0.extensions.SecurityGroupApi; import com.google.common.base.Function; import com.google.common.base.Optional; @Singleton -public class CreateSecurityGroupIfNeeded implements Function { +public class CreateSecurityGroupIfNeeded implements Function { @Resource @Named(ComputeServiceConstants.COMPUTE_LOGGER) protected Logger logger = Logger.NULL; @@ -52,29 +52,29 @@ public class CreateSecurityGroupIfNeeded implements Function api = novaApi.getSecurityGroupExtensionForZone(zoneId); - checkArgument(api.isPresent(), "Security groups are required, but the extension is not availablein zone %s!", zoneId); - logger.debug(">> creating securityGroup %s", zoneSecurityGroupNameAndPorts); + String regionId = regionSecurityGroupNameAndPorts.getRegion(); + Optional api = novaApi.getSecurityGroupApi(regionId); + checkArgument(api.isPresent(), "Security groups are required, but the extension is not available in region %s!", regionId); + logger.debug(">> creating securityGroup %s", regionSecurityGroupNameAndPorts); try { SecurityGroup securityGroup = api.get().createWithDescription( - zoneSecurityGroupNameAndPorts.getName(), zoneSecurityGroupNameAndPorts.getName()); + regionSecurityGroupNameAndPorts.getName(), regionSecurityGroupNameAndPorts.getName()); logger.debug("<< created securityGroup(%s)", securityGroup); - for (int port : zoneSecurityGroupNameAndPorts.getPorts()) { + for (int port : regionSecurityGroupNameAndPorts.getPorts()) { authorizeGroupToItselfAndAllIPsToTCPPort(api.get(), securityGroup, port); } - return new SecurityGroupInZone(api.get().get(securityGroup.getId()), zoneId); + return new SecurityGroupInRegion(api.get().get(securityGroup.getId()), regionId); } catch (IllegalStateException e) { - logger.trace("<< trying to find securityGroup(%s): %s", zoneSecurityGroupNameAndPorts, e.getMessage()); - SecurityGroup group = find(api.get().list(), nameEquals(zoneSecurityGroupNameAndPorts + logger.trace("<< trying to find securityGroup(%s): %s", regionSecurityGroupNameAndPorts, e.getMessage()); + SecurityGroup group = find(api.get().list(), nameEquals(regionSecurityGroupNameAndPorts .getName())); logger.debug("<< reused securityGroup(%s)", group.getId()); - return new SecurityGroupInZone(group, zoneId); + return new SecurityGroupInRegion(group, regionId); } } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/FlavorInZoneToHardware.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/FlavorInRegionToHardware.java similarity index 72% rename from apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/FlavorInZoneToHardware.java rename to apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/FlavorInRegionToHardware.java index 4e8a776023..7387bed4e7 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/FlavorInZoneToHardware.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/FlavorInRegionToHardware.java @@ -29,29 +29,29 @@ import org.jclouds.compute.domain.Processor; import org.jclouds.compute.domain.internal.VolumeImpl; import org.jclouds.domain.Location; import org.jclouds.openstack.nova.v2_0.domain.Flavor; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.FlavorInZone; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.FlavorInRegion; import com.google.common.base.Function; import com.google.common.base.Supplier; /** - * A function for transforming the nova specific FlavorInZone object to the generic Hardware object. + * A function for transforming the nova specific FlavorInRegion object to the generic Hardware object. */ -public class FlavorInZoneToHardware implements Function { +public class FlavorInRegionToHardware implements Function { private final Supplier> locationIndex; @Inject - public FlavorInZoneToHardware(Supplier> locationIndex) { + public FlavorInRegionToHardware(Supplier> locationIndex) { this.locationIndex = checkNotNull(locationIndex, "locationIndex"); } @Override - public Hardware apply(FlavorInZone flavorInZone) { - Location location = locationIndex.get().get(flavorInZone.getZone()); - checkState(location != null, "location %s not in locationIndex: %s", flavorInZone.getZone(), locationIndex.get()); - Flavor flavor = flavorInZone.getFlavor(); - return new HardwareBuilder().id(flavorInZone.slashEncode()).providerId(flavor.getId()).name(flavor.getName()) + public Hardware apply(FlavorInRegion flavorInRegion) { + Location location = locationIndex.get().get(flavorInRegion.getRegion()); + checkState(location != null, "location %s not in locationIndex: %s", flavorInRegion.getRegion(), locationIndex.get()); + Flavor flavor = flavorInRegion.getFlavor(); + return new HardwareBuilder().id(flavorInRegion.slashEncode()).providerId(flavor.getId()).name(flavor.getName()) .ram(flavor.getRam()).processor(new Processor(flavor.getVcpus(), 1.0)).volume( new VolumeImpl(Float.valueOf(flavor.getDisk()), true, true)).location(location).build(); } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/ImageInZoneToImage.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/ImageInRegionToImage.java similarity index 81% rename from apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/ImageInZoneToImage.java rename to apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/ImageInRegionToImage.java index c2f6f6ca15..35a6787d29 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/ImageInZoneToImage.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/ImageInRegionToImage.java @@ -28,7 +28,7 @@ import org.jclouds.compute.domain.ImageBuilder; import org.jclouds.compute.domain.OperatingSystem; import org.jclouds.domain.Location; import org.jclouds.openstack.nova.v2_0.domain.Image.Status; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ImageInZone; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.ImageInRegion; import com.google.common.base.Function; import com.google.common.base.MoreObjects; @@ -37,13 +37,13 @@ import com.google.common.base.Supplier; /** * A function for transforming a nova-specific Image into a generic Image object. */ -public class ImageInZoneToImage implements Function { +public class ImageInRegionToImage implements Function { private final Map toPortableImageStatus; private final Function imageToOs; private final Supplier> locationIndex; @Inject - public ImageInZoneToImage(Map toPortableImageStatus, + public ImageInRegionToImage(Map toPortableImageStatus, Function imageToOs, Supplier> locationIndex) { this.toPortableImageStatus = checkNotNull(toPortableImageStatus, "toPortableImageStatus"); @@ -52,15 +52,15 @@ public class ImageInZoneToImage implements Function { } @Override - public Image apply(ImageInZone imageInZone) { - Location location = locationIndex.get().get(imageInZone.getZone()); - checkState(location != null, "location %s not in locationIndex: %s", imageInZone.getZone(), locationIndex.get()); - org.jclouds.openstack.nova.v2_0.domain.Image image = imageInZone.getImage(); - return new ImageBuilder().id(imageInZone.slashEncode()).providerId(image.getId()).name(image.getName()) + public Image apply(ImageInRegion imageInRegion) { + Location location = locationIndex.get().get(imageInRegion.getRegion()); + checkState(location != null, "location %s not in locationIndex: %s", imageInRegion.getRegion(), locationIndex.get()); + org.jclouds.openstack.nova.v2_0.domain.Image image = imageInRegion.getImage(); + return new ImageBuilder().id(imageInRegion.slashEncode()).providerId(image.getId()).name(image.getName()) .userMetadata(image.getMetadata()).operatingSystem(imageToOs.apply(image)).description(image.getName()) .location(location).status(toPortableImageStatus.get(image.getStatus())).build(); } - + @Override public String toString() { return MoreObjects.toStringHelper(this).toString(); diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupInZoneToSecurityGroup.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupInRegionToSecurityGroup.java similarity index 76% rename from apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupInZoneToSecurityGroup.java rename to apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupInRegionToSecurityGroup.java index 1991e775c5..08b4e2d8ea 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupInZoneToSecurityGroup.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupInRegionToSecurityGroup.java @@ -30,7 +30,7 @@ import org.jclouds.compute.domain.SecurityGroupBuilder; import org.jclouds.compute.reference.ComputeServiceConstants; import org.jclouds.domain.Location; import org.jclouds.logging.Logger; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.SecurityGroupInZone; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.SecurityGroupInRegion; import com.google.common.base.Function; import com.google.common.base.Supplier; @@ -42,7 +42,7 @@ import com.google.inject.Inject; * SecurityGroup object. */ @Singleton -public class NovaSecurityGroupInZoneToSecurityGroup implements Function { +public class NovaSecurityGroupInRegionToSecurityGroup implements Function { @Resource @Named(ComputeServiceConstants.COMPUTE_LOGGER) protected Logger logger = Logger.NULL; @@ -51,22 +51,22 @@ public class NovaSecurityGroupInZoneToSecurityGroup implements Function> locationIndex; @Inject - public NovaSecurityGroupInZoneToSecurityGroup(Function baseConverter, + public NovaSecurityGroupInRegionToSecurityGroup(Function baseConverter, Supplier> locationIndex) { this.baseConverter = checkNotNull(baseConverter, "baseConverter"); this.locationIndex = checkNotNull(locationIndex, "locationIndex"); } @Override - public SecurityGroup apply(SecurityGroupInZone group) { + public SecurityGroup apply(SecurityGroupInRegion group) { SecurityGroupBuilder builder = SecurityGroupBuilder.fromSecurityGroup(baseConverter.apply(group.getSecurityGroup())); - Location zone = locationIndex.get().get(group.getZone()); - checkState(zone != null, "location %s not in locationIndex: %s", group.getZone(), locationIndex.get()); + Location region = locationIndex.get().get(group.getRegion()); + checkState(region != null, "location %s not in locationIndex: %s", group.getRegion(), locationIndex.get()); - builder.location(zone); + builder.location(region); - builder.id(group.getZone() + "/" + group.getSecurityGroup().getId()); + builder.id(group.getRegion() + "/" + group.getSecurityGroup().getId()); return builder.build(); } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/OrphanedGroupsByZoneId.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/OrphanedGroupsByRegionId.java similarity index 68% rename from apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/OrphanedGroupsByZoneId.java rename to apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/OrphanedGroupsByRegionId.java index f49330fbf7..1a42952a6a 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/OrphanedGroupsByZoneId.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/OrphanedGroupsByRegionId.java @@ -30,7 +30,7 @@ import org.jclouds.compute.domain.NodeMetadata; import org.jclouds.compute.predicates.NodePredicates; import org.jclouds.domain.LocationScope; import org.jclouds.openstack.nova.v2_0.compute.predicates.AllNodesInGroupTerminated; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Function; @@ -39,35 +39,35 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Multimap; import com.google.common.collect.Multimaps; -public class OrphanedGroupsByZoneId implements Function, Multimap> { - private final Predicate allNodesInGroupTerminated; +public class OrphanedGroupsByRegionId implements Function, Multimap> { + private final Predicate allNodesInGroupTerminated; @Inject - protected OrphanedGroupsByZoneId(ComputeService computeService) { + protected OrphanedGroupsByRegionId(ComputeService computeService) { this(new AllNodesInGroupTerminated(checkNotNull(computeService, "computeService"))); } @VisibleForTesting - OrphanedGroupsByZoneId(Predicate allNodesInGroupTerminated) { + OrphanedGroupsByRegionId(Predicate allNodesInGroupTerminated) { this.allNodesInGroupTerminated = checkNotNull(allNodesInGroupTerminated, "allNodesInGroupTerminated"); } public Multimap apply(Set deadNodes) { Iterable nodesWithGroup = filter(deadNodes, NodePredicates.hasGroup()); - Set zoneAndGroupNames = ImmutableSet.copyOf(filter(transform(nodesWithGroup, - new Function() { + Set regionAndGroupNames = ImmutableSet.copyOf(filter(transform(nodesWithGroup, + new Function() { @Override - public ZoneAndName apply(NodeMetadata input) { - String zoneId = input.getLocation().getScope() == LocationScope.HOST ? input.getLocation() + public RegionAndName apply(NodeMetadata input) { + String regionId = input.getLocation().getScope() == LocationScope.HOST ? input.getLocation() .getParent().getId() : input.getLocation().getId(); - return ZoneAndName.fromZoneAndName(zoneId, input.getGroup()); + return RegionAndName.fromRegionAndName(regionId, input.getGroup()); } }), allNodesInGroupTerminated)); - Multimap zoneToZoneAndGroupNames = Multimaps.transformValues(Multimaps.index(zoneAndGroupNames, - ZoneAndName.ZONE_FUNCTION), ZoneAndName.NAME_FUNCTION); - return zoneToZoneAndGroupNames; + Multimap regionToRegionAndGroupNames = Multimaps.transformValues(Multimaps.index(regionAndGroupNames, + RegionAndName.REGION_FUNCTION), RegionAndName.NAME_FUNCTION); + return regionToRegionAndGroupNames; } } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/RemoveFloatingIpFromNodeAndDeallocate.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/RemoveFloatingIpFromNodeAndDeallocate.java index cdbb0d9d80..94309c8655 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/RemoveFloatingIpFromNodeAndDeallocate.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/RemoveFloatingIpFromNodeAndDeallocate.java @@ -26,7 +26,7 @@ import org.jclouds.compute.reference.ComputeServiceConstants; import org.jclouds.logging.Logger; import org.jclouds.openstack.nova.v2_0.NovaApi; import org.jclouds.openstack.nova.v2_0.domain.FloatingIP; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndId; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndId; import org.jclouds.openstack.nova.v2_0.extensions.FloatingIPApi; import com.google.common.base.Function; @@ -36,25 +36,25 @@ import com.google.common.cache.LoadingCache; /** * A function for removing and deallocating an ip address from a node */ -public class RemoveFloatingIpFromNodeAndDeallocate implements Function { +public class RemoveFloatingIpFromNodeAndDeallocate implements Function { @Resource @Named(ComputeServiceConstants.COMPUTE_LOGGER) protected Logger logger = Logger.NULL; private final NovaApi novaApi; - private final LoadingCache> floatingIpCache; + private final LoadingCache> floatingIpCache; @Inject public RemoveFloatingIpFromNodeAndDeallocate(NovaApi novaApi, - @Named("FLOATINGIP") LoadingCache> floatingIpCache) { + @Named("FLOATINGIP") LoadingCache> floatingIpCache) { this.novaApi = checkNotNull(novaApi, "novaApi"); this.floatingIpCache = checkNotNull(floatingIpCache, "floatingIpCache"); } @Override - public ZoneAndId apply(ZoneAndId id) { - FloatingIPApi floatingIpApi = novaApi.getFloatingIPExtensionForZone(id.getZone()).get(); + public RegionAndId apply(RegionAndId id) { + FloatingIPApi floatingIpApi = novaApi.getFloatingIPApi(id.getRegion()).get(); for (FloatingIP ip : floatingIpCache.getUnchecked(id)) { logger.debug(">> removing floatingIp(%s) from node(%s)", ip, id); floatingIpApi.removeFromServer(ip.getIp(), id.getId()); diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/SecurityGroupRuleToIpPermission.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/SecurityGroupRuleToIpPermission.java index 46d4679e27..4f80b7b38c 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/SecurityGroupRuleToIpPermission.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/SecurityGroupRuleToIpPermission.java @@ -32,8 +32,8 @@ import org.jclouds.domain.Location; import org.jclouds.logging.Logger; import org.jclouds.net.domain.IpPermission; import org.jclouds.openstack.nova.v2_0.domain.SecurityGroupRule; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.SecurityGroupInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.SecurityGroupInRegion; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; import com.google.common.base.Function; import com.google.common.base.Predicate; @@ -50,16 +50,16 @@ public class SecurityGroupRuleToIpPermission implements Function> returnSecurityGroupExistsInZone; + protected final Predicate> returnSecurityGroupExistsInRegion; protected final Supplier> locationIndex; - LoadingCache groupMap; + LoadingCache groupMap; @Inject - public SecurityGroupRuleToIpPermission(@Named("SECURITYGROUP_PRESENT") Predicate> returnSecurityGroupExistsInZone, + public SecurityGroupRuleToIpPermission(@Named("SECURITYGROUP_PRESENT") Predicate> returnSecurityGroupExistsInRegion, Supplier> locationIndex, - LoadingCache groupMap) { - this.returnSecurityGroupExistsInZone = checkNotNull(returnSecurityGroupExistsInZone, - "returnSecurityGroupExistsInZone"); + LoadingCache groupMap) { + this.returnSecurityGroupExistsInRegion = checkNotNull(returnSecurityGroupExistsInRegion, + "returnSecurityGroupExistsInRegion"); this.locationIndex = checkNotNull(locationIndex, "locationIndex"); this.groupMap = checkNotNull(groupMap, "groupMap"); } @@ -71,26 +71,26 @@ public class SecurityGroupRuleToIpPermission implements Function isSecurityGroupInZone(final String groupName) { + protected Predicate isSecurityGroupInRegion(final String groupName) { return new Predicate() { @Override - public boolean apply(String zone) { - AtomicReference securityGroupInZoneRef = Atomics.newReference(ZoneAndName.fromZoneAndName(zone, groupName)); - return returnSecurityGroupExistsInZone.apply(securityGroupInZoneRef); + public boolean apply(String region) { + AtomicReference securityGroupInRegionRef = Atomics.newReference(RegionAndName.fromRegionAndName(region, groupName)); + return returnSecurityGroupExistsInRegion.apply(securityGroupInRegionRef); } }; } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInZoneToNodeMetadata.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInRegionToNodeMetadata.java similarity index 82% rename from apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInZoneToNodeMetadata.java rename to apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInRegionToNodeMetadata.java index 57d66c270d..2134bb232b 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInZoneToNodeMetadata.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInRegionToNodeMetadata.java @@ -53,8 +53,8 @@ import org.jclouds.logging.Logger; import org.jclouds.openstack.nova.v2_0.domain.Address; import org.jclouds.openstack.nova.v2_0.domain.Server; import org.jclouds.openstack.nova.v2_0.domain.Server.Status; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ServerInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndId; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndId; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.ServerInRegion; import org.jclouds.openstack.v2_0.domain.Link; import org.jclouds.util.InetAddresses2; @@ -67,11 +67,11 @@ import com.google.common.net.InetAddresses; * A function for transforming a nova-specific Server into a generic * NodeMetadata object. */ -public class ServerInZoneToNodeMetadata implements Function { +public class ServerInRegionToNodeMetadata implements Function { @Resource @Named(ComputeServiceConstants.COMPUTE_LOGGER) protected Logger logger = Logger.NULL; - + protected Map toPortableNodeStatus; protected final Supplier> locationIndex; protected final Supplier> images; @@ -79,7 +79,7 @@ public class ServerInZoneToNodeMetadata implements Function toPortableNodeStatus, + public ServerInRegionToNodeMetadata(Map toPortableNodeStatus, Supplier> locationIndex, @Memoized Supplier> images, @Memoized Supplier> hardwares, GroupNamingConvention.Factory namingConvention) { this.toPortableNodeStatus = checkNotNull(toPortableNodeStatus, "toPortableNodeStatus"); @@ -90,27 +90,27 @@ public class ServerInZoneToNodeMetadata implements Function addresses = newHashSet(from.getAddresses().values()); @@ -140,16 +140,16 @@ public class ServerInZoneToNodeMetadata implements Function isPrivateAddress = new Predicate
    () { public boolean apply(Address in) { return InetAddresses2.IsPrivateIPAddress.INSTANCE.apply(in.getAddr()); } }; - + public static final Predicate isInet4Address = new Predicate() { @Override public boolean apply(String input) { @@ -172,15 +172,15 @@ public class ServerInZoneToNodeMetadata implements Function T findObjectOfTypeForServerOrNull(Set supply, String type, - final String objectId, final ZoneAndId serverInZone) { + final String objectId, final RegionAndId serverInRegion) { try { return find(supply, new Predicate() { @Override public boolean apply(T input) { - return input.getId().equals(ZoneAndId.fromZoneAndId(serverInZone.getZone(), objectId).slashEncode()); + return input.getId().equals(RegionAndId.fromRegionAndId(serverInRegion.getRegion(), objectId).slashEncode()); } }); } catch (NoSuchElementException e) { - logger.trace("could not find %s with id(%s) for server(%s)", type, objectId, serverInZone); + logger.trace("could not find %s with id(%s) for server(%s)", type, objectId, serverInRegion); } return null; } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/loaders/CreateUniqueKeyPair.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/loaders/CreateUniqueKeyPair.java index 71852dce0f..9d521c4ce5 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/loaders/CreateUniqueKeyPair.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/loaders/CreateUniqueKeyPair.java @@ -28,7 +28,7 @@ import org.jclouds.compute.reference.ComputeServiceConstants; import org.jclouds.logging.Logger; import org.jclouds.openstack.nova.v2_0.NovaApi; import org.jclouds.openstack.nova.v2_0.domain.KeyPair; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; import org.jclouds.openstack.nova.v2_0.extensions.KeyPairApi; import com.google.common.base.Optional; @@ -36,7 +36,7 @@ import com.google.common.cache.CacheLoader; import com.google.inject.Inject; @Singleton -public class CreateUniqueKeyPair extends CacheLoader { +public class CreateUniqueKeyPair extends CacheLoader { @Resource @Named(ComputeServiceConstants.COMPUTE_LOGGER) protected Logger logger = Logger.NULL; @@ -50,15 +50,15 @@ public class CreateUniqueKeyPair extends CacheLoader { } @Override - public KeyPair load(ZoneAndName zoneAndName) { - String zoneId = checkNotNull(zoneAndName, "zoneAndName").getZone(); - String prefix = zoneAndName.getName(); + public KeyPair load(RegionAndName regionAndName) { + String regionId = checkNotNull(regionAndName, "regionAndName").getRegion(); + String prefix = regionAndName.getName(); - Optional api = novaApi.getKeyPairExtensionForZone(zoneId); - checkArgument(api.isPresent(), "Key pairs are required, but the extension is not available in zone %s!", - zoneId); + Optional api = novaApi.getKeyPairApi(regionId); + checkArgument(api.isPresent(), "Key pairs are required, but the extension is not available in region %s!", + regionId); - logger.debug(">> creating keyPair zone(%s) prefix(%s)", zoneId, prefix); + logger.debug(">> creating keyPair region(%s) prefix(%s)", regionId, prefix); KeyPair keyPair = null; while (keyPair == null) { diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/loaders/FindSecurityGroupOrCreate.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/loaders/FindSecurityGroupOrCreate.java index d072e3704e..23ee514e0e 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/loaders/FindSecurityGroupOrCreate.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/loaders/FindSecurityGroupOrCreate.java @@ -23,60 +23,60 @@ import java.util.concurrent.atomic.AtomicReference; import javax.inject.Inject; import javax.inject.Named; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.SecurityGroupInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneSecurityGroupNameAndPorts; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.SecurityGroupInRegion; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionSecurityGroupNameAndPorts; import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.cache.CacheLoader; import com.google.common.util.concurrent.Atomics; -public class FindSecurityGroupOrCreate extends CacheLoader { +public class FindSecurityGroupOrCreate extends CacheLoader { - protected final Predicate> returnSecurityGroupExistsInZone; - protected final Function groupCreator; + protected final Predicate> returnSecurityGroupExistsInRegion; + protected final Function groupCreator; @Inject public FindSecurityGroupOrCreate( - @Named("SECURITYGROUP_PRESENT") Predicate> returnSecurityGroupExistsInZone, - Function groupCreator) { - this.returnSecurityGroupExistsInZone = checkNotNull(returnSecurityGroupExistsInZone, - "returnSecurityGroupExistsInZone"); + @Named("SECURITYGROUP_PRESENT") Predicate> returnSecurityGroupExistsInRegion, + Function groupCreator) { + this.returnSecurityGroupExistsInRegion = checkNotNull(returnSecurityGroupExistsInRegion, + "returnSecurityGroupExistsInRegion"); this.groupCreator = checkNotNull(groupCreator, "groupCreator"); } @Override - public SecurityGroupInZone load(ZoneAndName in) { - AtomicReference securityGroupInZoneRef = Atomics.newReference(checkNotNull(in, - "zoneSecurityGroupNameAndPorts")); - if (returnSecurityGroupExistsInZone.apply(securityGroupInZoneRef)) { - return returnExistingSecurityGroup(securityGroupInZoneRef); + public SecurityGroupInRegion load(RegionAndName in) { + AtomicReference securityGroupInRegionRef = Atomics.newReference(checkNotNull(in, + "regionSecurityGroupNameAndPorts")); + if (returnSecurityGroupExistsInRegion.apply(securityGroupInRegionRef)) { + return returnExistingSecurityGroup(securityGroupInRegionRef); } else { return createNewSecurityGroup(in); } } - private SecurityGroupInZone returnExistingSecurityGroup(AtomicReference securityGroupInZoneRef) { - ZoneAndName securityGroupInZone = securityGroupInZoneRef.get(); - checkState(securityGroupInZone instanceof SecurityGroupInZone, + private SecurityGroupInRegion returnExistingSecurityGroup(AtomicReference securityGroupInRegionRef) { + RegionAndName securityGroupInRegion = securityGroupInRegionRef.get(); + checkState(securityGroupInRegion instanceof SecurityGroupInRegion, "programming error: predicate %s should update the atomic reference to the actual security group found", - returnSecurityGroupExistsInZone); - return SecurityGroupInZone.class.cast(securityGroupInZone); + returnSecurityGroupExistsInRegion); + return SecurityGroupInRegion.class.cast(securityGroupInRegion); } - private SecurityGroupInZone createNewSecurityGroup(ZoneAndName in) { + private SecurityGroupInRegion createNewSecurityGroup(RegionAndName in) { checkState( - checkNotNull(in, "zoneSecurityGroupNameAndPorts") instanceof ZoneSecurityGroupNameAndPorts, - "programming error: when issuing get to this cacheloader, you need to pass an instance of ZoneSecurityGroupNameAndPorts, not %s", + checkNotNull(in, "regionSecurityGroupNameAndPorts") instanceof RegionSecurityGroupNameAndPorts, + "programming error: when issuing get to this cacheloader, you need to pass an instance of RegionSecurityGroupNameAndPorts, not %s", in); - ZoneSecurityGroupNameAndPorts zoneSecurityGroupNameAndPorts = ZoneSecurityGroupNameAndPorts.class.cast(in); - return groupCreator.apply(zoneSecurityGroupNameAndPorts); + RegionSecurityGroupNameAndPorts regionSecurityGroupNameAndPorts = RegionSecurityGroupNameAndPorts.class.cast(in); + return groupCreator.apply(regionSecurityGroupNameAndPorts); } @Override public String toString() { - return "returnExistingSecurityGroupInZoneOrCreateAsNeeded()"; + return "returnExistingSecurityGroupInRegionOrCreateAsNeeded()"; } } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/loaders/LoadFloatingIpsForInstance.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/loaders/LoadFloatingIpsForInstance.java index e4a9caa523..1487a13372 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/loaders/LoadFloatingIpsForInstance.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/loaders/LoadFloatingIpsForInstance.java @@ -21,7 +21,7 @@ import javax.inject.Singleton; import org.jclouds.openstack.nova.v2_0.NovaApi; import org.jclouds.openstack.nova.v2_0.domain.FloatingIP; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndId; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndId; import org.jclouds.openstack.nova.v2_0.extensions.FloatingIPApi; import com.google.common.base.Optional; @@ -30,12 +30,12 @@ import com.google.common.cache.CacheLoader; import com.google.common.collect.ImmutableSet; /** - * Each zone may or may not have the floating ip function present. In order to safely proceed, we - * must allow the user to determine if a zone has floating ip services before attempting to use + * Each region may or may not have the floating ip function present. In order to safely proceed, we + * must allow the user to determine if a region has floating ip services before attempting to use * them. */ @Singleton -public class LoadFloatingIpsForInstance extends CacheLoader> { +public class LoadFloatingIpsForInstance extends CacheLoader> { private final NovaApi api; @Inject @@ -44,9 +44,9 @@ public class LoadFloatingIpsForInstance extends CacheLoader load(final ZoneAndId key) throws Exception { - String zone = key.getZone(); - Optional ipApiOptional = api.getFloatingIPExtensionForZone(zone); + public Iterable load(final RegionAndId key) throws Exception { + String region = key.getRegion(); + Optional ipApiOptional = api.getFloatingIPApi(region); if (ipApiOptional.isPresent()) { return ipApiOptional.get().list().filter( new Predicate() { diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/options/NovaTemplateOptions.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/options/NovaTemplateOptions.java index 2778afc484..519c0c0cb7 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/options/NovaTemplateOptions.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/options/NovaTemplateOptions.java @@ -196,10 +196,10 @@ public class NovaTemplateOptions extends TemplateOptions implements Cloneable { /** *

    Note

    - * - * This requires that {@link NovaApi#getExtensionForZone(String)} to return + * + * This requires that {@link NovaApi#getExtensionForRegion(String)} to return * {@link Optional#isPresent present} - * + * * @return true if auto assignment of a floating ip to each vm is enabled */ public boolean shouldAutoAssignFloatingIp() { @@ -229,7 +229,7 @@ public class NovaTemplateOptions extends TemplateOptions implements Cloneable { /** *

    Note

    * - * This requires that {@link NovaApi#getKeyPairExtensionForZone(String)} to return + * This requires that {@link NovaApi#getKeyPairExtensionApi(String)} to return * {@link Optional#isPresent present} * * @return true if auto generation of keypairs is enabled @@ -241,7 +241,7 @@ public class NovaTemplateOptions extends TemplateOptions implements Cloneable { /** * if unset, generate a default group prefixed with {@link jclouds#} according * to {@link #getInboundPorts()} - * + * * @see org.jclouds.openstack.nova.v2_0.options.CreateServerOptions#getSecurityGroupNames * @deprecated Use {@link TemplateOptions#getGroups()} instead. */ @@ -301,14 +301,14 @@ public class NovaTemplateOptions extends TemplateOptions implements Cloneable { } /** - * @see NovaTemplateOptions#shouldGenerateKeyPair() + * @see NovaTemplateOptions#shouldGenerateKeyPair() */ public static NovaTemplateOptions generateKeyPair(boolean enable) { return new NovaTemplateOptions().generateKeyPair(enable); } /** - * @see NovaTemplateOptions#getKeyPairName() + * @see NovaTemplateOptions#getKeyPairName() */ public static NovaTemplateOptions keyPairName(String keyPairName) { return new NovaTemplateOptions().keyPairName(keyPairName); @@ -645,8 +645,8 @@ public class NovaTemplateOptions extends TemplateOptions implements Cloneable { } /** - * OpenStack can be configured to write metadata to a special configuration drive that will be - * attached to the instance when it boots. The instance can retrieve any information that would + * OpenStack can be configured to write metadata to a special configuration drive that will be + * attached to the instance when it boots. The instance can retrieve any information that would * normally be available through the metadata service by mounting this disk and reading files from it. * To enable the config drive, set this parameter to "true". * This has to be enabled for user data cases. diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/predicates/AllNodesInGroupTerminated.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/predicates/AllNodesInGroupTerminated.java index a4b63e9a8b..6fb1d58579 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/predicates/AllNodesInGroupTerminated.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/predicates/AllNodesInGroupTerminated.java @@ -28,15 +28,15 @@ import javax.inject.Inject; import org.jclouds.compute.ComputeService; import org.jclouds.compute.domain.ComputeMetadata; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; import com.google.common.base.Predicate; import com.google.common.base.Predicates; -public class AllNodesInGroupTerminated implements Predicate { +public class AllNodesInGroupTerminated implements Predicate { private final ComputeService computeService; - + //TODO: TESTME @Inject public AllNodesInGroupTerminated(ComputeService computeService) { @@ -44,10 +44,10 @@ public class AllNodesInGroupTerminated implements Predicate { } @Override - public boolean apply(ZoneAndName input) { - // new nodes can have the zone as their location, existing nodes, the parent is the + public boolean apply(RegionAndName input) { + // new nodes can have the region as their location, existing nodes, the parent is the // location - return all(computeService.listNodesDetailsMatching(Predicates. or(locationId(input.getZone()), - parentLocationId(input.getZone()))), and(inGroup(input.getName()), TERMINATED)); + return all(computeService.listNodesDetailsMatching(Predicates. or(locationId(input.getRegion()), + parentLocationId(input.getRegion()))), and(inGroup(input.getName()), TERMINATED)); } } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/strategy/ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/strategy/ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java index 79bd0210e3..936199997c 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/strategy/ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/strategy/ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java @@ -45,9 +45,9 @@ import org.jclouds.openstack.nova.v2_0.compute.functions.AllocateAndAddFloatingI import org.jclouds.openstack.nova.v2_0.compute.options.NodeAndNovaTemplateOptions; import org.jclouds.openstack.nova.v2_0.compute.options.NovaTemplateOptions; import org.jclouds.openstack.nova.v2_0.domain.KeyPair; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.SecurityGroupInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneSecurityGroupNameAndPorts; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.SecurityGroupInRegion; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionSecurityGroupNameAndPorts; import com.google.common.base.Function; import com.google.common.base.Throwables; @@ -64,8 +64,8 @@ public class ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddT CreateNodesWithGroupEncodedIntoNameThenAddToSet { private final AllocateAndAddFloatingIpToNode createAndAddFloatingIpToNode; - private final LoadingCache securityGroupCache; - private final LoadingCache keyPairCache; + private final LoadingCache securityGroupCache; + private final LoadingCache keyPairCache; private final NovaApi novaApi; @Inject @@ -76,8 +76,8 @@ public class ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddT CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.Factory customizeNodeAndAddToGoodMapOrPutExceptionIntoBadMapFactory, @Named(Constants.PROPERTY_USER_THREADS) ListeningExecutorService userExecutor, AllocateAndAddFloatingIpToNode createAndAddFloatingIpToNode, - LoadingCache securityGroupCache, - LoadingCache keyPairCache, NovaApi novaApi) { + LoadingCache securityGroupCache, + LoadingCache keyPairCache, NovaApi novaApi) { super(addNodeWithTagStrategy, listNodesStrategy, namingConvention, userExecutor, customizeNodeAndAddToGoodMapOrPutExceptionIntoBadMapFactory); this.securityGroupCache = checkNotNull(securityGroupCache, "securityGroupCache"); @@ -97,21 +97,21 @@ public class ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddT assert template.getOptions().equals(templateOptions) : "options didn't clone properly"; - String zone = mutableTemplate.getLocation().getId(); + String region = mutableTemplate.getLocation().getId(); if (templateOptions.shouldAutoAssignFloatingIp()) { - checkArgument(novaApi.getFloatingIPExtensionForZone(zone).isPresent(), + checkArgument(novaApi.getFloatingIPApi(region).isPresent(), "Floating IPs are required by options, but the extension is not available! options: %s", templateOptions); } - boolean keyPairExtensionPresent = novaApi.getKeyPairExtensionForZone(zone).isPresent(); + boolean keyPairExtensionPresent = novaApi.getKeyPairApi(region).isPresent(); if (templateOptions.shouldGenerateKeyPair()) { checkArgument(keyPairExtensionPresent, "Key Pairs are required by options, but the extension is not available! options: %s", templateOptions); - KeyPair keyPair = keyPairCache.getUnchecked(ZoneAndName.fromZoneAndName(zone, namingConvention.create() + KeyPair keyPair = keyPairCache.getUnchecked(RegionAndName.fromRegionAndName(region, namingConvention.create() .sharedNameForGroup(group))); - keyPairCache.asMap().put(ZoneAndName.fromZoneAndName(zone, keyPair.getName()), keyPair); + keyPairCache.asMap().put(RegionAndName.fromRegionAndName(region, keyPair.getName()), keyPair); templateOptions.keyPairName(keyPair.getName()); } else if (templateOptions.getKeyPairName() != null) { checkArgument(keyPairExtensionPresent, @@ -120,11 +120,11 @@ public class ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddT String pem = templateOptions.getLoginPrivateKey(); KeyPair keyPair = KeyPair.builder().name(templateOptions.getKeyPairName()) .fingerprint(fingerprintPrivateKey(pem)).privateKey(pem).build(); - keyPairCache.asMap().put(ZoneAndName.fromZoneAndName(zone, keyPair.getName()), keyPair); + keyPairCache.asMap().put(RegionAndName.fromRegionAndName(region, keyPair.getName()), keyPair); } } - boolean securityGroupExtensionPresent = novaApi.getSecurityGroupExtensionForZone(zone).isPresent(); + boolean securityGroupExtensionPresent = novaApi.getSecurityGroupApi(region).isPresent(); List inboundPorts = Ints.asList(templateOptions.getInboundPorts()); if (!templateOptions.getGroups().isEmpty()) { checkArgument(securityGroupExtensionPresent, @@ -134,7 +134,7 @@ public class ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddT if (templateOptions.getGroups().isEmpty() && !inboundPorts.isEmpty()) { String securityGroupName = namingConvention.create().sharedNameForGroup(group); try { - securityGroupCache.get(new ZoneSecurityGroupNameAndPorts(zone, securityGroupName, inboundPorts)); + securityGroupCache.get(new RegionSecurityGroupNameAndPorts(region, securityGroupName, inboundPorts)); } catch (ExecutionException e) { throw Throwables.propagate(e.getCause()); } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/config/NovaHttpApiModule.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/config/NovaHttpApiModule.java index d763406bdc..0956c48482 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/config/NovaHttpApiModule.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/config/NovaHttpApiModule.java @@ -97,12 +97,12 @@ public class NovaHttpApiModule extends HttpApiModule { @Provides @Singleton - public LoadingCache> provideExtensionsByZone(final Provider novaApi) { + public LoadingCache> provideExtensionsByRegion(final Provider novaApi) { return CacheBuilder.newBuilder().expireAfterWrite(23, TimeUnit.HOURS) .build(new CacheLoader>() { @Override public Set load(String key) throws Exception { - return novaApi.get().getExtensionApiForZone(key).list(); + return novaApi.get().getExtensionApi(key).list(); } }); } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/HostAggregate.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/HostAggregate.java index 1c8673ca21..d5e75a31db 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/HostAggregate.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/HostAggregate.java @@ -36,16 +36,16 @@ import com.google.common.collect.ImmutableSet; /** * Aggregates can be manipulated using the Aggregate Extension to Nova (alias "OS-AGGREGATES") - * + * * @see org.jclouds.openstack.nova.v2_0.extensions.HostAggregateApi */ public class HostAggregate { - public static Builder builder() { + public static Builder builder() { return new ConcreteBuilder(); } - - public Builder toBuilder() { + + public Builder toBuilder() { return new ConcreteBuilder().fromHostAggregate(this); } @@ -60,8 +60,8 @@ public class HostAggregate { protected Date created; protected Date updated; protected Map metadata = ImmutableMap.of(); - - /** + + /** * @see HostAggregate#getId() */ public T id(String id) { @@ -69,7 +69,7 @@ public class HostAggregate { return self(); } - /** + /** * @see HostAggregate#getName() */ public T name(String name) { @@ -77,7 +77,7 @@ public class HostAggregate { return self(); } - /** + /** * @see HostAggregate#getAvailabilityZone() */ public T availabilityZone(String availabilityZone) { @@ -85,11 +85,11 @@ public class HostAggregate { return self(); } - /** + /** * @see HostAggregate#getHosts() */ public T hosts(Set hosts) { - this.hosts = ImmutableSet.copyOf(checkNotNull(hosts, "hosts")); + this.hosts = ImmutableSet.copyOf(checkNotNull(hosts, "hosts")); return self(); } @@ -97,7 +97,7 @@ public class HostAggregate { return hosts(ImmutableSet.copyOf(in)); } - /** + /** * @see HostAggregate#getState() */ public T state(String state) { @@ -105,7 +105,7 @@ public class HostAggregate { return self(); } - /** + /** * @see HostAggregate#getCreated() */ public T created(Date created) { @@ -113,7 +113,7 @@ public class HostAggregate { return self(); } - /** + /** * @see HostAggregate#getUpdated() */ public T updated(Date updated) { @@ -121,18 +121,18 @@ public class HostAggregate { return self(); } - /** + /** * @see HostAggregate#getMetadata() */ public T metadata(Map metadata) { - this.metadata = ImmutableMap.copyOf(checkNotNull(metadata, "metadata")); + this.metadata = ImmutableMap.copyOf(checkNotNull(metadata, "metadata")); return self(); } public HostAggregate build() { return new HostAggregate(id, name, availabilityZone, hosts, state, created, updated, metadata); } - + public T fromHostAggregate(HostAggregate in) { return this .id(in.getId()) @@ -174,11 +174,11 @@ public class HostAggregate { this.id = checkNotNull(id, "id"); this.name = checkNotNull(name, "name"); this.availabilityZone = checkNotNull(availabilityZone, "availabilityZone"); - this.hosts = hosts == null ? ImmutableSet.of() : ImmutableSet.copyOf(hosts); + this.hosts = hosts == null ? ImmutableSet.of() : ImmutableSet.copyOf(hosts); this.state = checkNotNull(state, "state"); this.created = checkNotNull(created, "created"); this.updated = Optional.fromNullable(updated); - this.metadata = metadata == null ? ImmutableMap.of() : ImmutableMap.copyOf(metadata); + this.metadata = metadata == null ? ImmutableMap.of() : ImmutableMap.copyOf(metadata); } public String getId() { @@ -190,8 +190,6 @@ public class HostAggregate { } /** - * note: an "Availability Zone" is different from a Nova "Zone" - * * @return the availability zone this aggregate is in */ public String getAvailabilityZone() { @@ -237,12 +235,12 @@ public class HostAggregate { && Objects.equal(this.updated, that.updated) && Objects.equal(this.metadata, that.metadata); } - + protected ToStringHelper string() { return MoreObjects.toStringHelper(this) .add("id", id).add("name", name).add("availabilityZone", availabilityZone).add("hosts", hosts).add("state", state).add("created", created).add("updated", updated).add("metadata", metadata); } - + @Override public String toString() { return string().toString(); diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/AvailabilityZone.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/AvailabilityZone.java similarity index 97% rename from apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/AvailabilityZone.java rename to apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/AvailabilityZone.java index a963dcd9d9..e59e4dda99 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/AvailabilityZone.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/AvailabilityZone.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jclouds.openstack.nova.v2_0.domain.zonescoped; +package org.jclouds.openstack.nova.v2_0.domain.regionscoped; import com.google.common.base.MoreObjects; import com.google.common.base.Objects; diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/FlavorInZone.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/FlavorInRegion.java similarity index 78% rename from apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/FlavorInZone.java rename to apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/FlavorInRegion.java index 3f412d42e5..5617673f82 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/FlavorInZone.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/FlavorInRegion.java @@ -14,17 +14,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jclouds.openstack.nova.v2_0.domain.zonescoped; +package org.jclouds.openstack.nova.v2_0.domain.regionscoped; import static com.google.common.base.Preconditions.checkNotNull; import org.jclouds.openstack.nova.v2_0.domain.Flavor; -public class FlavorInZone extends ZoneAndId { +public class FlavorInRegion extends RegionAndId { protected final Flavor image; - public FlavorInZone(Flavor image, String zoneId) { - super(zoneId, checkNotNull(image, "image").getId()); + public FlavorInRegion(Flavor image, String regionId) { + super(regionId, checkNotNull(image, "image").getId()); this.image = image; } @@ -32,12 +32,12 @@ public class FlavorInZone extends ZoneAndId { return image; } - // superclass hashCode/equals are good enough, and help us use ZoneAndId and FlavorInZone + // superclass hashCode/equals are good enough, and help us use RegionAndId and FlavorInRegion // interchangeably as Map keys @Override public String toString() { - return "[image=" + image + ", zoneId=" + zoneId + "]"; + return "[image=" + image + ", regionId=" + regionId + "]"; } } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ImageInZone.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ImageInRegion.java similarity index 78% rename from apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ImageInZone.java rename to apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ImageInRegion.java index 86581ba2dc..e1bf68e533 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ImageInZone.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ImageInRegion.java @@ -14,17 +14,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jclouds.openstack.nova.v2_0.domain.zonescoped; +package org.jclouds.openstack.nova.v2_0.domain.regionscoped; import static com.google.common.base.Preconditions.checkNotNull; import org.jclouds.openstack.nova.v2_0.domain.Image; -public class ImageInZone extends ZoneAndId { +public class ImageInRegion extends RegionAndId { protected final Image image; - public ImageInZone(Image image, String zoneId) { - super(zoneId, checkNotNull(image, "image").getId()); + public ImageInRegion(Image image, String regionId) { + super(regionId, checkNotNull(image, "image").getId()); this.image = image; } @@ -32,12 +32,12 @@ public class ImageInZone extends ZoneAndId { return image; } - // superclass hashCode/equals are good enough, and help us use ZoneAndId and ImageInZone + // superclass hashCode/equals are good enough, and help us use RegionAndId and ImageInRegion // interchangeably as Map keys @Override public String toString() { - return "[image=" + image + ", zoneId=" + zoneId + "]"; + return "[image=" + image + ", regionId=" + regionId + "]"; } } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneAndId.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionAndId.java similarity index 62% rename from apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneAndId.java rename to apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionAndId.java index e77286e5eb..b8602e21bb 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneAndId.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionAndId.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jclouds.openstack.nova.v2_0.domain.zonescoped; +package org.jclouds.openstack.nova.v2_0.domain.regionscoped; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; @@ -23,36 +23,36 @@ import com.google.common.base.Objects; import com.google.common.base.Splitter; import com.google.common.collect.Iterables; -public class ZoneAndId { - public static ZoneAndId fromSlashEncoded(String id) { +public class RegionAndId { + public static RegionAndId fromSlashEncoded(String id) { Iterable parts = Splitter.on('/').split(checkNotNull(id, "id")); - checkArgument(Iterables.size(parts) == 2, "id must be in format zoneId/id"); - return new ZoneAndId(Iterables.get(parts, 0), Iterables.get(parts, 1)); + checkArgument(Iterables.size(parts) == 2, "id must be in format regionId/id"); + return new RegionAndId(Iterables.get(parts, 0), Iterables.get(parts, 1)); } - public static ZoneAndId fromZoneAndId(String zoneId, String id) { - return new ZoneAndId(zoneId, id); + public static RegionAndId fromRegionAndId(String regionId, String id) { + return new RegionAndId(regionId, id); } - private static String slashEncodeZoneAndId(String zoneId, String id) { - return checkNotNull(zoneId, "zoneId") + "/" + checkNotNull(id, "id"); + private static String slashEncodeRegionAndId(String regionId, String id) { + return checkNotNull(regionId, "regionId") + "/" + checkNotNull(id, "id"); } public String slashEncode() { - return slashEncodeZoneAndId(zoneId, id); + return slashEncodeRegionAndId(regionId, id); } - protected final String zoneId; + protected final String regionId; protected final String id; - protected ZoneAndId(String zoneId, String id) { - this.zoneId = checkNotNull(zoneId, "zoneId"); + protected RegionAndId(String regionId, String id) { + this.regionId = checkNotNull(regionId, "regionId"); this.id = checkNotNull(id, "id"); } @Override public int hashCode() { - return Objects.hashCode(zoneId, id); + return Objects.hashCode(regionId, id); } @Override @@ -63,12 +63,12 @@ public class ZoneAndId { return false; if (getClass() != obj.getClass()) return false; - ZoneAndId other = (ZoneAndId) obj; - return Objects.equal(zoneId, other.zoneId) && Objects.equal(id, other.id); + RegionAndId other = (RegionAndId) obj; + return Objects.equal(regionId, other.regionId) && Objects.equal(id, other.id); } - public String getZone() { - return zoneId; + public String getRegion() { + return regionId; } public String getId() { @@ -77,7 +77,7 @@ public class ZoneAndId { @Override public String toString() { - return "[zoneId=" + zoneId + ", id=" + id + "]"; + return "[regionId=" + regionId + ", id=" + id + "]"; } } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneAndName.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionAndName.java similarity index 57% rename from apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneAndName.java rename to apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionAndName.java index cebf999683..e91d1fae7c 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneAndName.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionAndName.java @@ -14,70 +14,70 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jclouds.openstack.nova.v2_0.domain.zonescoped; +package org.jclouds.openstack.nova.v2_0.domain.regionscoped; import static com.google.common.base.Objects.equal; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; import com.google.common.base.Function; -import com.google.common.base.Objects; -import com.google.common.base.Splitter; import com.google.common.base.MoreObjects; import com.google.common.base.MoreObjects.ToStringHelper; +import com.google.common.base.Objects; +import com.google.common.base.Splitter; import com.google.common.collect.Iterables; /** - * Helpful when looking for resources by zone and name + * Helpful when looking for resources by region and name */ -public class ZoneAndName { - - public static final Function NAME_FUNCTION = new Function() { +public class RegionAndName { + + public static final Function NAME_FUNCTION = new Function() { @Override - public String apply(ZoneAndName input) { + public String apply(RegionAndName input) { return input.getName(); } - + }; - - public static final Function ZONE_FUNCTION = new Function() { + + public static final Function REGION_FUNCTION = new Function() { @Override - public String apply(ZoneAndName input) { - return input.getZone(); + public String apply(RegionAndName input) { + return input.getRegion(); } - + }; - - public static ZoneAndName fromSlashEncoded(String name) { + + public static RegionAndName fromSlashEncoded(String name) { Iterable parts = Splitter.on('/').split(checkNotNull(name, "name")); - checkArgument(Iterables.size(parts) == 2, "name must be in format zoneId/name"); - return new ZoneAndName(Iterables.get(parts, 0), Iterables.get(parts, 1)); + checkArgument(Iterables.size(parts) == 2, "name must be in format regionId/name"); + return new RegionAndName(Iterables.get(parts, 0), Iterables.get(parts, 1)); } - public static ZoneAndName fromZoneAndName(String zoneId, String name) { - return new ZoneAndName(zoneId, name); + public static RegionAndName fromRegionAndName(String regionId, String name) { + return new RegionAndName(regionId, name); } - private static String slashEncodeZoneAndName(String zoneId, String name) { - return checkNotNull(zoneId, "zoneId") + "/" + checkNotNull(name, "name"); + private static String slashEncodeRegionAndName(String regionId, String name) { + return checkNotNull(regionId, "regionId") + "/" + checkNotNull(name, "name"); } public String slashEncode() { - return slashEncodeZoneAndName(zoneId, name); + return slashEncodeRegionAndName(regionId, name); } - protected final String zoneId; + protected final String regionId; protected final String name; - protected ZoneAndName(String zoneId, String name) { - this.zoneId = checkNotNull(zoneId, "zoneId"); + protected RegionAndName(String regionId, String name) { + this.regionId = checkNotNull(regionId, "regionId"); this.name = checkNotNull(name, "name"); } - public String getZone() { - return zoneId; + public String getRegion() { + return regionId; } public String getName() { @@ -90,13 +90,13 @@ public class ZoneAndName { return true; if (o == null || getClass() != o.getClass()) return false; - ZoneAndName that = ZoneAndName.class.cast(o); - return equal(this.zoneId, that.zoneId) && equal(this.name, that.name); + RegionAndName that = RegionAndName.class.cast(o); + return equal(this.regionId, that.regionId) && equal(this.name, that.name); } @Override public int hashCode() { - return Objects.hashCode(zoneId, name); + return Objects.hashCode(regionId, name); } @Override @@ -105,6 +105,6 @@ public class ZoneAndName { } protected ToStringHelper string() { - return MoreObjects.toStringHelper("").add("zoneId", zoneId).add("name", name); + return MoreObjects.toStringHelper("").add("regionId", regionId).add("name", name); } } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneSecurityGroupNameAndPorts.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionSecurityGroupNameAndPorts.java similarity index 83% rename from apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneSecurityGroupNameAndPorts.java rename to apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionSecurityGroupNameAndPorts.java index deaad97c5a..f7866e08cf 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneSecurityGroupNameAndPorts.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionSecurityGroupNameAndPorts.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jclouds.openstack.nova.v2_0.domain.zonescoped; +package org.jclouds.openstack.nova.v2_0.domain.regionscoped; import static com.google.common.base.Objects.equal; import static com.google.common.base.Preconditions.checkNotNull; @@ -25,11 +25,11 @@ import com.google.common.base.Objects; import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.collect.ImmutableSet; -public class ZoneSecurityGroupNameAndPorts extends ZoneAndName { +public class RegionSecurityGroupNameAndPorts extends RegionAndName { protected final Set ports; - public ZoneSecurityGroupNameAndPorts(String zoneId, String name, Iterable ports) { - super(zoneId, name); + public RegionSecurityGroupNameAndPorts(String regionId, String name, Iterable ports) { + super(regionId, name); this.ports = ImmutableSet. copyOf(checkNotNull(ports, "ports")); } @@ -43,7 +43,7 @@ public class ZoneSecurityGroupNameAndPorts extends ZoneAndName { return true; if (o == null || getClass() != o.getClass()) return false; - ZoneSecurityGroupNameAndPorts that = ZoneSecurityGroupNameAndPorts.class.cast(o); + RegionSecurityGroupNameAndPorts that = RegionSecurityGroupNameAndPorts.class.cast(o); return super.equals(that) && equal(this.ports, that.ports); } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/SecurityGroupInZone.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/SecurityGroupInRegion.java similarity index 76% rename from apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/SecurityGroupInZone.java rename to apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/SecurityGroupInRegion.java index 17535cd45d..a3898afec3 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/SecurityGroupInZone.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/SecurityGroupInRegion.java @@ -14,17 +14,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jclouds.openstack.nova.v2_0.domain.zonescoped; +package org.jclouds.openstack.nova.v2_0.domain.regionscoped; import static com.google.common.base.Preconditions.checkNotNull; import org.jclouds.openstack.nova.v2_0.domain.SecurityGroup; -public class SecurityGroupInZone extends ZoneAndName { +public class SecurityGroupInRegion extends RegionAndName { protected final SecurityGroup securityGroup; - public SecurityGroupInZone(SecurityGroup securityGroup, String zoneId) { - super(zoneId, checkNotNull(securityGroup, "securityGroup").getName()); + public SecurityGroupInRegion(SecurityGroup securityGroup, String regionId) { + super(regionId, checkNotNull(securityGroup, "securityGroup").getName()); this.securityGroup = securityGroup; } @@ -32,12 +32,12 @@ public class SecurityGroupInZone extends ZoneAndName { return securityGroup; } - // superclass hashCode/equals are good enough, and help us use ZoneAndName and ServerInZone + // superclass hashCode/equals are good enough, and help us use RegionAndName and ServerInRegion // interchangeably as Map keys @Override public String toString() { - return "[securityGroup=" + securityGroup + ", zoneId=" + zoneId + "]"; + return "[securityGroup=" + securityGroup + ", regionId=" + regionId + "]"; } } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ServerInZone.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ServerInRegion.java similarity index 78% rename from apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ServerInZone.java rename to apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ServerInRegion.java index 158f052ba1..a5c1803166 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ServerInZone.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ServerInRegion.java @@ -14,17 +14,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jclouds.openstack.nova.v2_0.domain.zonescoped; +package org.jclouds.openstack.nova.v2_0.domain.regionscoped; import static com.google.common.base.Preconditions.checkNotNull; import org.jclouds.openstack.nova.v2_0.domain.Server; -public class ServerInZone extends ZoneAndId { +public class ServerInRegion extends RegionAndId { protected final Server server; - public ServerInZone(Server server, String zoneId) { - super(zoneId, checkNotNull(server, "server").getId()); + public ServerInRegion(Server server, String regionId) { + super(regionId, checkNotNull(server, "server").getId()); this.server = server; } @@ -32,12 +32,12 @@ public class ServerInZone extends ZoneAndId { return server; } - // superclass hashCode/equals are good enough, and help us use ZoneAndId and ServerInZone + // superclass hashCode/equals are good enough, and help us use RegionAndId and ServerInRegion // interchangeably as Map keys @Override public String toString() { - return "[server=" + server + ", zoneId=" + zoneId + "]"; + return "[server=" + server + ", regionId=" + regionId + "]"; } } diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneState.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ZoneState.java similarity index 96% rename from apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneState.java rename to apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ZoneState.java index 6beea925f6..814800a954 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneState.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ZoneState.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jclouds.openstack.nova.v2_0.domain.zonescoped; +package org.jclouds.openstack.nova.v2_0.domain.regionscoped; import com.google.common.base.MoreObjects; import com.google.common.base.Objects; diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApi.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApi.java index 7b894fb115..7624e6955c 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApi.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApi.java @@ -24,7 +24,7 @@ import javax.ws.rs.core.MediaType; import org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404; import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.AvailabilityZone; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.AvailabilityZone; import org.jclouds.openstack.v2_0.ServiceType; import org.jclouds.openstack.v2_0.services.Extension; import org.jclouds.rest.annotations.Fallback; diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseFlavorDetails.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseFlavorDetails.java index 260c6c9b51..48b146f0b7 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseFlavorDetails.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseFlavorDetails.java @@ -23,22 +23,22 @@ import java.beans.ConstructorProperties; import javax.inject.Inject; import javax.inject.Singleton; -import com.google.common.base.Optional; import org.jclouds.collect.IterableWithMarker; import org.jclouds.collect.internal.Arg0ToPagedIterable; import org.jclouds.http.functions.ParseJson; import org.jclouds.json.Json; -import org.jclouds.openstack.v2_0.domain.PaginatedCollection; import org.jclouds.openstack.nova.v2_0.NovaApi; import org.jclouds.openstack.nova.v2_0.domain.Flavor; import org.jclouds.openstack.nova.v2_0.features.FlavorApi; import org.jclouds.openstack.nova.v2_0.functions.internal.ParseFlavorDetails.Flavors; import org.jclouds.openstack.v2_0.domain.Link; +import org.jclouds.openstack.v2_0.domain.PaginatedCollection; +import org.jclouds.openstack.v2_0.options.PaginationOptions; import com.google.common.annotations.Beta; import com.google.common.base.Function; +import com.google.common.base.Optional; import com.google.inject.TypeLiteral; -import org.jclouds.openstack.v2_0.options.PaginationOptions; /** * boiler plate until we determine a better way @@ -71,8 +71,8 @@ public class ParseFlavorDetails extends ParseJson { @Override protected Function> markerToNextForArg0(Optional arg0) { - String zone = arg0.get().toString(); - final FlavorApi flavorApi = api.getFlavorApiForZone(zone); + String region = arg0.get().toString(); + final FlavorApi flavorApi = api.getFlavorApi(region); return new Function>() { @SuppressWarnings("unchecked") diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseFlavors.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseFlavors.java index 9b1b21c7ea..dc2e1e8ece 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseFlavors.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseFlavors.java @@ -71,8 +71,8 @@ public class ParseFlavors extends ParseJson { @Override protected Function> markerToNextForArg0(Optional arg0) { - String zone = arg0.get().toString(); - final FlavorApi flavorApi = api.getFlavorApiForZone(zone); + String region = arg0.get().toString(); + final FlavorApi flavorApi = api.getFlavorApi(region); return new Function>() { @SuppressWarnings("unchecked") diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseImageDetails.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseImageDetails.java index 39b3984cee..65c0aab506 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseImageDetails.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseImageDetails.java @@ -71,8 +71,8 @@ public class ParseImageDetails extends ParseJson { @Override protected Function> markerToNextForArg0(Optional arg0) { - String zone = arg0.get().toString(); - final ImageApi imageApi = api.getImageApiForZone(zone); + String region = arg0.get().toString(); + final ImageApi imageApi = api.getImageApi(region); return new Function>() { @SuppressWarnings("unchecked") diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseImages.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseImages.java index d4e1944544..b33c2f96ec 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseImages.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseImages.java @@ -23,22 +23,22 @@ import java.beans.ConstructorProperties; import javax.inject.Inject; import javax.inject.Singleton; -import com.google.common.base.Optional; import org.jclouds.collect.IterableWithMarker; import org.jclouds.collect.internal.Arg0ToPagedIterable; import org.jclouds.http.functions.ParseJson; import org.jclouds.json.Json; -import org.jclouds.openstack.v2_0.domain.PaginatedCollection; import org.jclouds.openstack.nova.v2_0.NovaApi; import org.jclouds.openstack.nova.v2_0.features.ImageApi; import org.jclouds.openstack.nova.v2_0.functions.internal.ParseImages.Images; import org.jclouds.openstack.v2_0.domain.Link; +import org.jclouds.openstack.v2_0.domain.PaginatedCollection; import org.jclouds.openstack.v2_0.domain.Resource; +import org.jclouds.openstack.v2_0.options.PaginationOptions; import com.google.common.annotations.Beta; import com.google.common.base.Function; +import com.google.common.base.Optional; import com.google.inject.TypeLiteral; -import org.jclouds.openstack.v2_0.options.PaginationOptions; /** * boiler plate until we determine a better way @@ -71,8 +71,8 @@ public class ParseImages extends ParseJson { @Override protected Function> markerToNextForArg0(Optional arg0) { - String zone = arg0.get().toString(); - final ImageApi imageApi = api.getImageApiForZone(zone); + String region = arg0.get().toString(); + final ImageApi imageApi = api.getImageApi(region); return new Function>() { @SuppressWarnings("unchecked") diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseServerDetails.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseServerDetails.java index e9389cabad..f85e8a70da 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseServerDetails.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseServerDetails.java @@ -71,8 +71,8 @@ public class ParseServerDetails extends ParseJson { @Override protected Function> markerToNextForArg0(Optional arg0) { - String zone = arg0.get().toString(); - final ServerApi serverApi = api.getServerApiForZone(zone); + String region = arg0.get().toString(); + final ServerApi serverApi = api.getServerApi(region); return new Function>() { @SuppressWarnings("unchecked") diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseServers.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseServers.java index 15a932e696..cc4d9adea0 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseServers.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/functions/internal/ParseServers.java @@ -23,22 +23,22 @@ import java.beans.ConstructorProperties; import javax.inject.Inject; import javax.inject.Singleton; -import com.google.common.base.Optional; import org.jclouds.collect.IterableWithMarker; import org.jclouds.collect.internal.Arg0ToPagedIterable; import org.jclouds.http.functions.ParseJson; import org.jclouds.json.Json; -import org.jclouds.openstack.v2_0.domain.PaginatedCollection; import org.jclouds.openstack.nova.v2_0.NovaApi; import org.jclouds.openstack.nova.v2_0.features.ServerApi; import org.jclouds.openstack.nova.v2_0.functions.internal.ParseServers.Servers; import org.jclouds.openstack.v2_0.domain.Link; +import org.jclouds.openstack.v2_0.domain.PaginatedCollection; import org.jclouds.openstack.v2_0.domain.Resource; +import org.jclouds.openstack.v2_0.options.PaginationOptions; import com.google.common.annotations.Beta; import com.google.common.base.Function; +import com.google.common.base.Optional; import com.google.inject.TypeLiteral; -import org.jclouds.openstack.v2_0.options.PaginationOptions; /** * boiler plate until we determine a better way @@ -71,8 +71,8 @@ public class ParseServers extends ParseJson { @Override protected Function> markerToNextForArg0(Optional arg0) { - String zone = arg0.get().toString(); - final ServerApi serverApi = api.getServerApiForZone(zone); + String region = arg0.get().toString(); + final ServerApi serverApi = api.getServerApi(region); return new Function>() { @SuppressWarnings("unchecked") diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/options/CreateServerOptions.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/options/CreateServerOptions.java index 29ade1d455..0ed8a69a19 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/options/CreateServerOptions.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/options/CreateServerOptions.java @@ -360,7 +360,7 @@ public class CreateServerOptions implements MapBinder { *

    *

    Note

    *

    - * This requires that {@link NovaApi#getSecurityGroupExtensionForZone(String)} to return + * This requires that {@link NovaApi#getSecurityGroupExtensionApi(String)} to return * {@link Optional#isPresent present} */ public Set getSecurityGroupNames() { @@ -376,7 +376,7 @@ public class CreateServerOptions implements MapBinder { public Set getNetworks() { return networks; } - + /** * Get custom networks specified for the server. * @@ -429,7 +429,7 @@ public class CreateServerOptions implements MapBinder { /** * Determines if a configuration drive will be attached to the server or not. - * This can be used for cloud-init or other configuration purposes. + * This can be used for cloud-init or other configuration purposes. */ public boolean getConfigDrive() { return configDrive; diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/predicates/FindSecurityGroupWithNameAndReturnTrue.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/predicates/FindSecurityGroupWithNameAndReturnTrue.java index 0899e8802e..578a484716 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/predicates/FindSecurityGroupWithNameAndReturnTrue.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/predicates/FindSecurityGroupWithNameAndReturnTrue.java @@ -28,8 +28,8 @@ import javax.inject.Singleton; import org.jclouds.logging.Logger; import org.jclouds.openstack.nova.v2_0.NovaApi; import org.jclouds.openstack.nova.v2_0.domain.SecurityGroup; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.SecurityGroupInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.SecurityGroupInRegion; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; import org.jclouds.openstack.nova.v2_0.extensions.SecurityGroupApi; import org.jclouds.rest.ResourceNotFoundException; @@ -42,7 +42,7 @@ import com.google.inject.Inject; * AtomicReference is so that we can return the securityGroup that matched. */ @Singleton -public class FindSecurityGroupWithNameAndReturnTrue implements Predicate> { +public class FindSecurityGroupWithNameAndReturnTrue implements Predicate> { private final NovaApi novaApi; @@ -54,24 +54,24 @@ public class FindSecurityGroupWithNameAndReturnTrue implements Predicate securityGroupInZoneRef) { - checkNotNull(securityGroupInZoneRef, "securityGroupRef"); - final ZoneAndName securityGroupInZone = checkNotNull(securityGroupInZoneRef.get(), "securityGroupInZone"); + public boolean apply(AtomicReference securityGroupInRegionRef) { + checkNotNull(securityGroupInRegionRef, "securityGroupRef"); + final RegionAndName securityGroupInRegion = checkNotNull(securityGroupInRegionRef.get(), "securityGroupInRegion"); - Optional api = novaApi.getSecurityGroupExtensionForZone(securityGroupInZone.getZone()); + Optional api = novaApi.getSecurityGroupApi(securityGroupInRegion.getRegion()); checkArgument(api.isPresent(), "Security groups are required, but the extension is not available!"); - logger.trace("looking for security group %s", securityGroupInZone.slashEncode()); + logger.trace("looking for security group %s", securityGroupInRegion.slashEncode()); try { SecurityGroup returnVal = Iterables.find(api.get().list(), new Predicate() { @Override public boolean apply(SecurityGroup input) { - return input.getName().equals(securityGroupInZone.getName()); + return input.getName().equals(securityGroupInRegion.getName()); } }); - securityGroupInZoneRef.set(new SecurityGroupInZone(returnVal, securityGroupInZone.getZone())); + securityGroupInRegionRef.set(new SecurityGroupInRegion(returnVal, securityGroupInRegion.getRegion())); return true; } catch (ResourceNotFoundException e) { return false; diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/predicates/ServerPredicates.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/predicates/ServerPredicates.java index 18461d28ce..d29f0819d8 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/predicates/ServerPredicates.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/predicates/ServerPredicates.java @@ -57,18 +57,18 @@ public class ServerPredicates { /** * Waits until a Server is ACTIVE. - * - * @param serverApi The ServerApi in the zone where your Server resides. + * + * @param serverApi The ServerApi in the region where your Server resides. * @return Predicate that will check the status every 5 seconds for a maximum of 10 minutes. */ public static Predicate awaitActive(ServerApi serverApi) { return awaitStatus(serverApi, ACTIVE, TEN_MINUTES, FIVE_SECONDS); } - + /** * Waits until a Server is SHUTOFF. - * - * @param serverApi The ServerApi in the zone where your Server resides. + * + * @param serverApi The ServerApi in the region where your Server resides. * @return Predicate that will check the status every 5 seconds for a maximum of 10 minutes. */ public static Predicate awaitShutoff(ServerApi serverApi) { @@ -78,7 +78,7 @@ public class ServerPredicates { /** * Waits until a Server reaches Status. * - * @param serverApi The ServerApi in the zone where your Server resides. + * @param serverApi The ServerApi in the region where your Server resides. * @return Predicate that will check the status every periodInSec seconds for a maximum of maxWaitInSec minutes. */ public static Predicate awaitStatus( @@ -87,7 +87,7 @@ public class ServerPredicates { return retry(statusPredicate, maxWaitInSec, periodInSec, periodInSec, SECONDS); } - + public static class ServerStatusPredicate implements Predicate { private final ServerApi serverApi; private final Status status; diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/AccessKeyAndSecretKeyAndTenantIdAuthenticationExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/AccessKeyAndSecretKeyAndTenantIdAuthenticationExpectTest.java index 7cafdd5c40..47eeeaf063 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/AccessKeyAndSecretKeyAndTenantIdAuthenticationExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/AccessKeyAndSecretKeyAndTenantIdAuthenticationExpectTest.java @@ -30,8 +30,8 @@ import org.testng.annotations.Test; import com.google.common.collect.ImmutableSet; /** - * - * @see KeystoneProperties#CREDENTIAL_TYPE + * + * @see org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties#CREDENTIAL_TYPE */ @Test(groups = "unit", testName = "AccessKeyAndSecretKeyAndTenantIdAuthenticationExpectTest") public class AccessKeyAndSecretKeyAndTenantIdAuthenticationExpectTest extends BaseNovaApiExpectTest { @@ -64,9 +64,9 @@ public class AccessKeyAndSecretKeyAndTenantIdAuthenticationExpectTest extends Ba NovaApi apiWhenServersExist = requestsSendResponses(keystoneAuthWithAccessKeyAndSecretKeyAndTenantId, responseWithKeystoneAccess, listServers, listServersResponse); - assertEquals(apiWhenServersExist.getConfiguredZones(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); + assertEquals(apiWhenServersExist.getConfiguredRegions(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); - assertEquals(apiWhenServersExist.getServerApiForZone("az-1.region-a.geo-1").list().concat().toString(), + assertEquals(apiWhenServersExist.getServerApi("az-1.region-a.geo-1").list().concat().toString(), new ParseServerListTest().expected().toString()); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/AccessKeyAndSecretKeyAndTenantNamePropertyAuthenticationExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/AccessKeyAndSecretKeyAndTenantNamePropertyAuthenticationExpectTest.java index a013889a9b..a05e6c79d4 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/AccessKeyAndSecretKeyAndTenantNamePropertyAuthenticationExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/AccessKeyAndSecretKeyAndTenantNamePropertyAuthenticationExpectTest.java @@ -30,7 +30,7 @@ import org.testng.annotations.Test; import com.google.common.collect.ImmutableSet; /** - * + * * @see KeystoneProperties#CREDENTIAL_TYPE */ @Test(groups = "unit", testName = "AccessKeyAndSecretKeyAndTenantNamePropertyAuthenticationExpectTest") @@ -64,9 +64,9 @@ public class AccessKeyAndSecretKeyAndTenantNamePropertyAuthenticationExpectTest NovaApi apiWhenServersExist = requestsSendResponses(keystoneAuthWithAccessKeyAndSecretKeyAndTenantName, responseWithKeystoneAccess, listServers, listServersResponse); - assertEquals(apiWhenServersExist.getConfiguredZones(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); + assertEquals(apiWhenServersExist.getConfiguredRegions(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); - assertEquals(apiWhenServersExist.getServerApiForZone("az-1.region-a.geo-1").list().concat().toString(), + assertEquals(apiWhenServersExist.getServerApi("az-1.region-a.geo-1").list().concat().toString(), new ParseServerListTest().expected().toString()); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/AccessKeyAndSecretKeyAuthenticationExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/AccessKeyAndSecretKeyAuthenticationExpectTest.java index 8cc0539127..ff6b068374 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/AccessKeyAndSecretKeyAuthenticationExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/AccessKeyAndSecretKeyAuthenticationExpectTest.java @@ -29,8 +29,8 @@ import org.testng.annotations.Test; import com.google.common.collect.ImmutableSet; /** - * - * @see KeystoneProperties#CREDENTIAL_TYPE + * + * @see org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties#CREDENTIAL_TYPE */ @Test(groups = "unit", testName = "AccessKeyAndSecretKeyAuthenticationExpectTest") public class AccessKeyAndSecretKeyAuthenticationExpectTest extends BaseNovaApiExpectTest { @@ -59,9 +59,9 @@ public class AccessKeyAndSecretKeyAuthenticationExpectTest extends BaseNovaApiEx NovaApi apiWhenServersExist = requestsSendResponses(keystoneAuthWithAccessKeyAndSecretKeyAndTenantName, responseWithKeystoneAccess, listServers, listServersResponse); - assertEquals(apiWhenServersExist.getConfiguredZones(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); + assertEquals(apiWhenServersExist.getConfiguredRegions(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); - assertEquals(apiWhenServersExist.getServerApiForZone("az-1.region-a.geo-1").list().concat().toString(), + assertEquals(apiWhenServersExist.getServerApi("az-1.region-a.geo-1").list().concat().toString(), new ParseServerListTest().expected().toString()); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/EndpointIdIsRandomExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/EndpointIdIsRandomExpectTest.java index 59723b66c6..23a3c4cf33 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/EndpointIdIsRandomExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/EndpointIdIsRandomExpectTest.java @@ -46,7 +46,7 @@ public class EndpointIdIsRandomExpectTest extends BaseNovaApiExpectTest { return overrides; } - public void testVersionMatchOnConfiguredZonesWhenResponseIs2xx() { + public void testVersionMatchOnConfiguredRegionsWhenResponseIs2xx() { HttpRequest authenticate = HttpRequest .builder() @@ -63,7 +63,7 @@ public class EndpointIdIsRandomExpectTest extends BaseNovaApiExpectTest { NovaApi whenNovaRegionExists = requestSendsResponse(authenticate, authenticationResponse); - assertEquals(whenNovaRegionExists.getConfiguredZones(), ImmutableSet.of("RegionOne")); + assertEquals(whenNovaRegionExists.getConfiguredRegions(), ImmutableSet.of("RegionOne")); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/PasswordAuthenticationExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/PasswordAuthenticationExpectTest.java index 22b446ec22..55f1a21b49 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/PasswordAuthenticationExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/PasswordAuthenticationExpectTest.java @@ -27,15 +27,15 @@ import org.testng.annotations.Test; import com.google.common.collect.ImmutableSet; /** - * - * @see KeystoneProperties#CREDENTIAL_TYPE + * + * @see org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties#CREDENTIAL_TYPE */ @Test(groups = "unit", testName = "PasswordAuthenticationExpectTest") public class PasswordAuthenticationExpectTest extends BaseNovaApiExpectTest { public PasswordAuthenticationExpectTest() { identity = "identity"; } - + public void testListServersWhenResponseIs2xx() throws Exception { HttpRequest listServers = HttpRequest .builder() @@ -50,9 +50,9 @@ public class PasswordAuthenticationExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPassword, responseWithKeystoneAccess, listServers, listServersResponse); - assertEquals(apiWhenServersExist.getConfiguredZones(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); + assertEquals(apiWhenServersExist.getConfiguredRegions(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); - assertEquals(apiWhenServersExist.getServerApiForZone("az-1.region-a.geo-1").list().concat().toString(), + assertEquals(apiWhenServersExist.getServerApi("az-1.region-a.geo-1").list().concat().toString(), new ParseServerListTest().expected().toString()); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/PasswordAuthenticationWithTenantNameExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/PasswordAuthenticationWithTenantNameExpectTest.java index b6cb8812bf..87d3f379b8 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/PasswordAuthenticationWithTenantNameExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/PasswordAuthenticationWithTenantNameExpectTest.java @@ -29,8 +29,8 @@ import org.testng.annotations.Test; import com.google.common.collect.ImmutableSet; /** - * - * @see KeystoneProperties#CREDENTIAL_TYPE + * + * @see org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties#CREDENTIAL_TYPE */ @Test(groups = "unit", testName = "PasswordAuthenticationWithTenantNameExpectTest") public class PasswordAuthenticationWithTenantNameExpectTest extends BaseNovaApiExpectTest { @@ -59,9 +59,9 @@ public class PasswordAuthenticationWithTenantNameExpectTest extends BaseNovaApiE NovaApi apiWhenServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, listServers, listServersResponse); - assertEquals(apiWhenServersExist.getConfiguredZones(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); + assertEquals(apiWhenServersExist.getConfiguredRegions(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); - assertEquals(apiWhenServersExist.getServerApiForZone("az-1.region-a.geo-1").list().concat().toString(), + assertEquals(apiWhenServersExist.getServerApi("az-1.region-a.geo-1").list().concat().toString(), new ParseServerListTest().expected().toString()); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapterExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapterExpectTest.java index 0a9aa06dba..35c5b39078 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapterExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapterExpectTest.java @@ -35,8 +35,8 @@ import org.jclouds.openstack.nova.v2_0.compute.options.NovaTemplateOptions; import org.jclouds.openstack.nova.v2_0.domain.KeyPair; import org.jclouds.openstack.nova.v2_0.domain.Network; import org.jclouds.openstack.nova.v2_0.domain.Server; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ServerInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.ServerInRegion; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; import org.jclouds.openstack.nova.v2_0.internal.BaseNovaComputeServiceContextExpectTest; import org.testng.annotations.Test; @@ -92,7 +92,7 @@ public class NovaComputeServiceAdapterExpectTest extends BaseNovaComputeServiceC NovaComputeServiceAdapter adapter = forNetworks.getInstance(NovaComputeServiceAdapter.class); - NodeAndInitialCredentials server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); + NodeAndInitialCredentials server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); assertNotNull(server); // Response irrelevant in this expect test - just verifying the request. } @@ -127,7 +127,7 @@ public class NovaComputeServiceAdapterExpectTest extends BaseNovaComputeServiceC NovaComputeServiceAdapter adapter = forDiskConfig.getInstance(NovaComputeServiceAdapter.class); - NodeAndInitialCredentials server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); + NodeAndInitialCredentials server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); assertNotNull(server); assertEquals(server.getNode().getServer().getDiskConfig().orNull(), Server.DISK_CONFIG_AUTO); } @@ -162,7 +162,7 @@ public class NovaComputeServiceAdapterExpectTest extends BaseNovaComputeServiceC NovaComputeServiceAdapter adapter = forConfigDrive.getInstance(NovaComputeServiceAdapter.class); - NodeAndInitialCredentials server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); + NodeAndInitialCredentials server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); assertNotNull(server); } @@ -209,7 +209,7 @@ public class NovaComputeServiceAdapterExpectTest extends BaseNovaComputeServiceC NovaComputeServiceAdapter adapter = forNovaNetworks.getInstance(NovaComputeServiceAdapter.class); - NodeAndInitialCredentials server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); + NodeAndInitialCredentials server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); assertNotNull(server); } @@ -243,7 +243,7 @@ public class NovaComputeServiceAdapterExpectTest extends BaseNovaComputeServiceC NovaComputeServiceAdapter adapter = forSecurityGroups.getInstance(NovaComputeServiceAdapter.class); - NodeAndInitialCredentials server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", + NodeAndInitialCredentials server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); assertNotNull(server); assertEquals(server.getCredentials(), LoginCredentials.builder().password("ZWuHcmTMQ7eXoHeM").build()); @@ -286,13 +286,13 @@ public class NovaComputeServiceAdapterExpectTest extends BaseNovaComputeServiceC NovaComputeServiceAdapter adapter = forSecurityGroups.getInstance(NovaComputeServiceAdapter.class); // we expect to have already an entry in the cache for the key - LoadingCache keyPairCache = forSecurityGroups.getInstance(Key - .get(new TypeLiteral>() { + LoadingCache keyPairCache = forSecurityGroups.getInstance(Key + .get(new TypeLiteral>() { })); - keyPairCache.put(ZoneAndName.fromZoneAndName("az-1.region-a.geo-1", "foo"), KeyPair.builder().name("foo") + keyPairCache.put(RegionAndName.fromRegionAndName("az-1.region-a.geo-1", "foo"), KeyPair.builder().name("foo") .privateKey("privateKey").build()); - NodeAndInitialCredentials server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", + NodeAndInitialCredentials server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); assertNotNull(server); assertEquals(server.getCredentials(), LoginCredentials.builder().privateKey("privateKey").build()); @@ -333,7 +333,7 @@ public class NovaComputeServiceAdapterExpectTest extends BaseNovaComputeServiceC NovaComputeServiceAdapter adapter = forSecurityGroups.getInstance(NovaComputeServiceAdapter.class); - NodeAndInitialCredentials server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", + NodeAndInitialCredentials server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); assertNotNull(server); assertNull(server.getCredentials()); @@ -417,8 +417,8 @@ public class NovaComputeServiceAdapterExpectTest extends BaseNovaComputeServiceC @Override protected Properties setupProperties() { Properties overrides = super.setupProperties(); - // only specify one zone so that we don't have to configure requests for multiple zones - overrides.setProperty("jclouds.zones", "az-1.region-a.geo-1"); + // only specify one region so that we don't have to configure requests for multiple regions + overrides.setProperty("jclouds.regions", "az-1.region-a.geo-1"); return overrides; } } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceExpectTest.java index f62e97e04f..3ec610240c 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceExpectTest.java @@ -50,17 +50,17 @@ import com.google.inject.TypeLiteral; */ @Test(groups = "unit", testName = "NovaComputeServiceExpectTest") public class NovaComputeServiceExpectTest extends BaseNovaComputeServiceExpectTest { - + @Override protected Properties setupProperties() { Properties overrides = super.setupProperties(); - // only specify limited zones so that we don't have to configure requests for multiple zones. + // only specify limited regions so that we don't have to configure requests for multiple regions. // since we are doing tests with keystone responses from hpcloud and also openstack, we have - // to whitelist one zone from each - overrides.setProperty("jclouds.zones", "az-1.region-a.geo-1,RegionOne"); + // to whitelist one region from each + overrides.setProperty("jclouds.regions", "az-1.region-a.geo-1,RegionOne"); return overrides; } - + public void testListLocationsWhenResponseIs2xx() throws Exception { Map requestResponseMap = ImmutableMap. builder() @@ -189,7 +189,7 @@ public class NovaComputeServiceExpectTest extends BaseNovaComputeServiceExpectTe HttpResponse securityGroupWithPort22 = HttpResponse.builder().statusCode(200) .payload(payloadFromResource("/securitygroup_details_port22.json")).build(); - + HttpRequest create = HttpRequest .builder() .method("POST") diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaImageExtensionExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaImageExtensionExpectTest.java index 8021cb9cf0..08762cd9d6 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaImageExtensionExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaImageExtensionExpectTest.java @@ -34,11 +34,11 @@ import com.google.common.util.concurrent.Futures; @Test(groups = "unit", testName = "NovaImageExtensionExpectTest") public class NovaImageExtensionExpectTest extends BaseNovaComputeServiceExpectTest { - + @Override protected Properties setupProperties() { Properties overrides = super.setupProperties(); - overrides.setProperty("jclouds.zones", "az-1.region-a.geo-1"); + overrides.setProperty("jclouds.regions", "az-1.region-a.geo-1"); return overrides; } @@ -58,7 +58,7 @@ public class NovaImageExtensionExpectTest extends BaseNovaComputeServiceExpectTe payloadFromStringWithContentType( "{\"createImage\":{\"name\":\"test\", \"metadata\": {}}}", "application/json")).build(); - + HttpResponse createImageResponse = HttpResponse.builder().statusCode(202) .addHeader("Location", "https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/images/52415800-8b69-11e0-9b19-734f5736d2a2") .build(); @@ -67,7 +67,7 @@ public class NovaImageExtensionExpectTest extends BaseNovaComputeServiceExpectTe .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/images/52415800-8b69-11e0-9b19-734f5736d2a2") .addHeader("Accept", "application/json") .addHeader("X-Auth-Token", authToken).build(); - + HttpResponse getImageResponse = HttpResponse.builder().statusCode(200) .payload(payloadFromResource("/image_active.json")).build(); @@ -79,7 +79,7 @@ public class NovaImageExtensionExpectTest extends BaseNovaComputeServiceExpectTe requestResponseMap.put(getImage, getImageResponse).build(); ImageExtension apiThatCreatesImage = requestsSendResponses(requestResponseMap.build()).getImageExtension().get(); - + ImageTemplate newImageTemplate = apiThatCreatesImage.buildImageTemplateFromNode("test", "az-1.region-a.geo-1/71752"); Image image = Futures.getUnchecked(apiThatCreatesImage.createImage(newImageTemplate)); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaSecurityGroupExtensionExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaSecurityGroupExtensionExpectTest.java index 775490a9f8..9795aa9966 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaSecurityGroupExtensionExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaSecurityGroupExtensionExpectTest.java @@ -47,7 +47,7 @@ import com.google.common.collect.Sets; @Test(groups = "unit", testName = "NovaSecurityGroupExtensionExpectTest") public class NovaSecurityGroupExtensionExpectTest extends BaseNovaComputeServiceExpectTest { - protected String zone = "az-1.region-a.geo-1"; + protected String region = "az-1.region-a.geo-1"; protected HttpRequest list = HttpRequest.builder().method("GET").endpoint( URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-security-groups")).headers( ImmutableMultimap. builder().put("Accept", "application/json").put("X-Auth-Token", @@ -59,7 +59,7 @@ public class NovaSecurityGroupExtensionExpectTest extends BaseNovaComputeService @Override protected Properties setupProperties() { Properties overrides = super.setupProperties(); - overrides.setProperty("jclouds.zones", zone); + overrides.setProperty("jclouds.regions", region); return overrides; } @@ -95,9 +95,9 @@ public class NovaSecurityGroupExtensionExpectTest extends BaseNovaComputeService SecurityGroupExtension extension = requestsSendResponses(requestResponseMap.build()).getSecurityGroupExtension().get(); Set groups = extension.listSecurityGroupsInLocation(new LocationBuilder() - .scope(LocationScope.ZONE) - .id(zone) - .description("zone") + .scope(LocationScope.REGION) + .id(region) + .description("region") .build()); assertEquals(groups.size(), 1); } @@ -129,7 +129,7 @@ public class NovaSecurityGroupExtensionExpectTest extends BaseNovaComputeService SecurityGroupExtension extension = requestsSendResponses(requestResponseMap.build()).getSecurityGroupExtension().get(); - Set groups = extension.listSecurityGroupsForNode(zone + "/8d0a6ca5-8849-4b3d-b86e-f24c92490ebb"); + Set groups = extension.listSecurityGroupsForNode(region + "/8d0a6ca5-8849-4b3d-b86e-f24c92490ebb"); assertEquals(groups.size(), 1); } @@ -150,8 +150,8 @@ public class NovaSecurityGroupExtensionExpectTest extends BaseNovaComputeService SecurityGroupExtension extension = requestsSendResponses(requestResponseMap.build()).getSecurityGroupExtension().get(); - SecurityGroup group = extension.getSecurityGroupById(zone + "/160"); - assertEquals(group.getId(), zone + "/160"); + SecurityGroup group = extension.getSecurityGroupById(region + "/160"); + assertEquals(group.getId(), region + "/160"); } public void testCreateSecurityGroup() { @@ -193,11 +193,11 @@ public class NovaSecurityGroupExtensionExpectTest extends BaseNovaComputeService SecurityGroupExtension extension = requestsSendResponses(requestResponseMap.build()).getSecurityGroupExtension().get(); SecurityGroup group = extension.createSecurityGroup("test", new LocationBuilder() - .scope(LocationScope.ZONE) - .id(zone) - .description("zone") + .scope(LocationScope.REGION) + .id(region) + .description("region") .build()); - assertEquals(group.getId(), zone + "/160"); + assertEquals(group.getId(), region + "/160"); } public void testRemoveSecurityGroup() { @@ -225,7 +225,7 @@ public class NovaSecurityGroupExtensionExpectTest extends BaseNovaComputeService SecurityGroupExtension extension = requestsSendResponses(requestResponseMap.build()).getSecurityGroupExtension().get(); - assertTrue(extension.removeSecurityGroup(zone + "/160"), "Expected removal of securitygroup to be successful"); + assertTrue(extension.removeSecurityGroup(region + "/160"), "Expected removal of securitygroup to be successful"); } public void testAddIpPermissionCidrFromIpPermission() { @@ -269,7 +269,7 @@ public class NovaSecurityGroupExtensionExpectTest extends BaseNovaComputeService IpPermission perm = builder.build(); - SecurityGroup origGroup = extension.getSecurityGroupById(zone + "/160"); + SecurityGroup origGroup = extension.getSecurityGroupById(region + "/160"); assertNotNull(origGroup); SecurityGroup newGroup = extension.addIpPermission(perm, origGroup); @@ -309,7 +309,7 @@ public class NovaSecurityGroupExtensionExpectTest extends BaseNovaComputeService ImmutableList.of(responseWithKeystoneAccess, extensionsOfNovaResponse, getSecurityGroupNoRulesResponse, createRuleResponse, getSecurityGroupResponse, listResponse, listResponse)).getSecurityGroupExtension().get(); - SecurityGroup origGroup = extension.getSecurityGroupById(zone + "/160"); + SecurityGroup origGroup = extension.getSecurityGroupById(region + "/160"); assertNotNull(origGroup); SecurityGroup newGroup = extension.addIpPermission(IpProtocol.TCP, @@ -364,7 +364,7 @@ public class NovaSecurityGroupExtensionExpectTest extends BaseNovaComputeService IpPermission perm = builder.build(); - SecurityGroup origGroup = extension.getSecurityGroupById(zone + "/160"); + SecurityGroup origGroup = extension.getSecurityGroupById(region + "/160"); assertNotNull(origGroup); SecurityGroup newGroup = extension.addIpPermission(perm, origGroup); @@ -404,7 +404,7 @@ public class NovaSecurityGroupExtensionExpectTest extends BaseNovaComputeService ImmutableList.of(responseWithKeystoneAccess, extensionsOfNovaResponse, getSecurityGroupNoRulesResponse, createRuleResponse, getSecurityGroupResponse, listResponse, listResponse)).getSecurityGroupExtension().get(); - SecurityGroup origGroup = extension.getSecurityGroupById(zone + "/160"); + SecurityGroup origGroup = extension.getSecurityGroupById(region + "/160"); assertNotNull(origGroup); SecurityGroup newGroup = extension.addIpPermission(IpProtocol.TCP, diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNodeExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNodeExpectTest.java index 28cc5334a9..af20d8508c 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNodeExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNodeExpectTest.java @@ -48,10 +48,10 @@ import com.google.common.util.concurrent.Atomics; public class AllocateAndAddFloatingIpToNodeExpectTest extends BaseNovaComputeServiceExpectTest { final Location provider = new LocationBuilder().scope(LocationScope.PROVIDER).id("openstack-nova").description( "openstack-nova").build(); - final Location zone = new LocationBuilder().id("az-1.region-a.geo-1").description("az-1.region-a.geo-1").scope( - LocationScope.ZONE).parent(provider).build(); + final Location region = new LocationBuilder().id("az-1.region-a.geo-1").description("az-1.region-a.geo-1").scope( + LocationScope.REGION).parent(provider).build(); final Location host = new LocationBuilder().scope(LocationScope.HOST).id("hostId").description("hostId") - .parent(zone).build(); + .parent(region).build(); final NodeMetadata node = new NodeMetadataBuilder().id("az-1.region-a.geo-1/71592").providerId("71592").location( host).name("Server 71592").status(Status.RUNNING).privateAddresses(ImmutableSet.of("10.4.27.237")) .credentials(LoginCredentials.builder().password("foo").build()).build(); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/FlavorInZoneToHardwareTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/FlavorInRegionToHardwareTest.java similarity index 75% rename from apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/FlavorInZoneToHardwareTest.java rename to apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/FlavorInRegionToHardwareTest.java index 6e0e00157c..7445c9ab2c 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/FlavorInZoneToHardwareTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/FlavorInRegionToHardwareTest.java @@ -28,7 +28,7 @@ import org.jclouds.domain.Location; import org.jclouds.domain.LocationBuilder; import org.jclouds.domain.LocationScope; import org.jclouds.openstack.nova.v2_0.domain.Flavor; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.FlavorInZone; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.FlavorInRegion; import org.testng.annotations.Test; import com.google.common.base.Supplier; @@ -38,28 +38,28 @@ import com.google.common.collect.ImmutableMap; /** * Tests the function used to transform Flavor objects into Hardware objects */ -@Test(testName = "FlavorInZoneToHardwareTest") -public class FlavorInZoneToHardwareTest { +@Test(testName = "FlavorInRegionToHardwareTest") +public class FlavorInRegionToHardwareTest { Location provider = new LocationBuilder().scope(LocationScope.PROVIDER).id("openstack-nova").description( "openstack-nova").build(); - Location zone = new LocationBuilder().id("az-1.region-a.geo-1").description("az-1.region-a.geo-1").scope( - LocationScope.ZONE).parent(provider).build(); + Location region = new LocationBuilder().id("az-1.region-a.geo-1").description("az-1.region-a.geo-1").scope( + LocationScope.REGION).parent(provider).build(); Supplier> locationIndex = Suppliers.> ofInstance(ImmutableMap - . of("az-1.region-a.geo-1", zone)); + . of("az-1.region-a.geo-1", region)); @Test public void testConversionWhereLocationFound() { UUID id = UUID.randomUUID(); - FlavorInZone flavorInZoneToConvert = new FlavorInZone(Flavor.builder().id(id.toString()) + FlavorInRegion flavorInRegionToConvert = new FlavorInRegion(Flavor.builder().id(id.toString()) .name("Test Flavor " + id).ram(262144).disk(10000).vcpus(16).build(), "az-1.region-a.geo-1"); - Hardware converted = new FlavorInZoneToHardware(locationIndex).apply(flavorInZoneToConvert); + Hardware converted = new FlavorInRegionToHardware(locationIndex).apply(flavorInRegionToConvert); - Flavor flavorToConvert = flavorInZoneToConvert.getFlavor(); + Flavor flavorToConvert = flavorInRegionToConvert.getFlavor(); assertEquals(converted.getName(), flavorToConvert.getName()); - assertEquals(converted.getId(), flavorInZoneToConvert.slashEncode()); + assertEquals(converted.getId(), flavorInRegionToConvert.slashEncode()); assertEquals(converted.getProviderId(), flavorToConvert.getId()); assertEquals(converted.getLocation(), locationIndex.get().get("az-1.region-a.geo-1")); @@ -80,9 +80,9 @@ public class FlavorInZoneToHardwareTest { UUID id = UUID.randomUUID(); - FlavorInZone flavorInZoneToConvert = new FlavorInZone(Flavor.builder().id(id.toString()) + FlavorInRegion flavorInRegionToConvert = new FlavorInRegion(Flavor.builder().id(id.toString()) .name("Test Flavor " + id).ram(262144).disk(10000).vcpus(16).build(), "South"); - new FlavorInZoneToHardware(locationIndex).apply(flavorInZoneToConvert); + new FlavorInRegionToHardware(locationIndex).apply(flavorInRegionToConvert); } } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/ImageInZoneToImageTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/ImageInRegionToImageTest.java similarity index 77% rename from apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/ImageInZoneToImageTest.java rename to apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/ImageInRegionToImageTest.java index 98722424e9..b767929c8c 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/ImageInZoneToImageTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/ImageInRegionToImageTest.java @@ -28,7 +28,7 @@ import org.jclouds.domain.LocationBuilder; import org.jclouds.domain.LocationScope; import org.jclouds.openstack.nova.v2_0.compute.config.NovaComputeServiceContextModule; import org.jclouds.openstack.nova.v2_0.domain.Image; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ImageInZone; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.ImageInRegion; import org.testng.annotations.Test; import com.google.common.base.Function; @@ -40,30 +40,30 @@ import com.google.common.collect.ImmutableMap; /** * Tests the function that transforms nova-specific images to generic images. */ -@Test(testName = "ImageInZoneToHardwareTest") -public class ImageInZoneToImageTest { +@Test(testName = "ImageInRegionToHardwareTest") +public class ImageInRegionToImageTest { Location provider = new LocationBuilder().scope(LocationScope.PROVIDER).id("openstack-nova").description( "openstack-nova").build(); - Location zone = new LocationBuilder().id("az-1.region-a.geo-1").description("az-1.region-a.geo-1").scope( - LocationScope.ZONE).parent(provider).build(); + Location region = new LocationBuilder().id("az-1.region-a.geo-1").description("az-1.region-a.geo-1").scope( + LocationScope.REGION).parent(provider).build(); Supplier> locationIndex = Suppliers.> ofInstance(ImmutableMap - . of("az-1.region-a.geo-1", zone)); - + . of("az-1.region-a.geo-1", region)); + @Test public void testConversionWhereLocationFound() { UUID id = UUID.randomUUID(); Image novaImageToConvert = Image.builder().id(id.toString()).name("Test Image " + id).status(Image.Status.DELETED).build(); OperatingSystem operatingSystem = new OperatingSystem(OsFamily.UBUNTU, "My Test OS", "My Test Version", "x86", "My Test OS", true); - ImageInZoneToImage converter = new ImageInZoneToImage(NovaComputeServiceContextModule.toPortableImageStatus, + ImageInRegionToImage converter = new ImageInRegionToImage(NovaComputeServiceContextModule.toPortableImageStatus, constant(operatingSystem), locationIndex); - ImageInZone novaImageInZoneToConvert = new ImageInZone(novaImageToConvert, "az-1.region-a.geo-1"); + ImageInRegion novaImageInRegionToConvert = new ImageInRegion(novaImageToConvert, "az-1.region-a.geo-1"); - org.jclouds.compute.domain.Image convertedImage = converter.apply(novaImageInZoneToConvert); + org.jclouds.compute.domain.Image convertedImage = converter.apply(novaImageInRegionToConvert); - assertEquals(convertedImage.getId(), novaImageInZoneToConvert.slashEncode()); + assertEquals(convertedImage.getId(), novaImageInRegionToConvert.slashEncode()); assertEquals(convertedImage.getProviderId(), novaImageToConvert.getId()); assertEquals(convertedImage.getLocation(), locationIndex.get().get("az-1.region-a.geo-1")); @@ -78,12 +78,12 @@ public class ImageInZoneToImageTest { Image novaImageToConvert = Image.builder().id(id.toString()).name("Test Image " + id).build(); OperatingSystem operatingSystem = new OperatingSystem(OsFamily.UBUNTU, "My Test OS", "My Test Version", "x86", "My Test OS", true); - ImageInZoneToImage converter = new ImageInZoneToImage(NovaComputeServiceContextModule.toPortableImageStatus, + ImageInRegionToImage converter = new ImageInRegionToImage(NovaComputeServiceContextModule.toPortableImageStatus, constant(operatingSystem), locationIndex); - ImageInZone novaImageInZoneToConvert = new ImageInZone(novaImageToConvert, "South"); + ImageInRegion novaImageInRegionToConvert = new ImageInRegion(novaImageToConvert, "South"); - converter.apply(novaImageInZoneToConvert); + converter.apply(novaImageInRegionToConvert); } @SuppressWarnings("unchecked") diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupInZoneToSecurityGroupTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupInRegionToSecurityGroupTest.java similarity index 72% rename from apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupInZoneToSecurityGroupTest.java rename to apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupInRegionToSecurityGroupTest.java index dceba6c072..969b3f4d5e 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupInZoneToSecurityGroupTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupInRegionToSecurityGroupTest.java @@ -27,7 +27,7 @@ import org.jclouds.compute.domain.SecurityGroup; import org.jclouds.domain.Location; import org.jclouds.domain.LocationBuilder; import org.jclouds.domain.LocationScope; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.SecurityGroupInZone; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.SecurityGroupInRegion; import org.testng.annotations.Test; import com.google.common.base.Supplier; @@ -35,56 +35,56 @@ import com.google.common.base.Suppliers; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -@Test(groups = "unit", testName = "NovaSecurityGroupInZoneToSecurityGroupTest") -public class NovaSecurityGroupInZoneToSecurityGroupTest { +@Test(groups = "unit", testName = "NovaSecurityGroupInRegionToSecurityGroupTest") +public class NovaSecurityGroupInRegionToSecurityGroupTest { Location provider = new LocationBuilder().scope(LocationScope.PROVIDER).id("openstack-nova") .description("openstack-nova").build(); - Location zone = new LocationBuilder().id("az-1.region-a.geo-1").description("az-1.region-a.geo-1") - .scope(LocationScope.ZONE).parent(provider).build(); + Location region = new LocationBuilder().id("az-1.region-a.geo-1").description("az-1.region-a.geo-1") + .scope(LocationScope.REGION).parent(provider).build(); Supplier> locationIndex = Suppliers.> ofInstance(ImmutableMap - .of("az-1.region-a.geo-1", zone)); + .of("az-1.region-a.geo-1", region)); @Test public void testApplyWithGroup() { - NovaSecurityGroupInZoneToSecurityGroup parser = createGroupParser(); + NovaSecurityGroupInRegionToSecurityGroup parser = createGroupParser(); - SecurityGroupInZone origGroup = new SecurityGroupInZone(securityGroupWithGroup(), zone.getId()); + SecurityGroupInRegion origGroup = new SecurityGroupInRegion(securityGroupWithGroup(), region.getId()); SecurityGroup newGroup = parser.apply(origGroup); - assertEquals(newGroup.getId(), origGroup.getZone() + "/" + origGroup.getSecurityGroup().getId()); + assertEquals(newGroup.getId(), origGroup.getRegion() + "/" + origGroup.getSecurityGroup().getId()); assertEquals(newGroup.getProviderId(), origGroup.getSecurityGroup().getId()); assertEquals(newGroup.getName(), origGroup.getSecurityGroup().getName()); assertEquals(newGroup.getOwnerId(), origGroup.getSecurityGroup().getTenantId()); assertEquals(newGroup.getIpPermissions(), ImmutableSet.copyOf(transform(origGroup.getSecurityGroup().getRules(), NovaSecurityGroupToSecurityGroupTest.ruleConverter))); - assertEquals(newGroup.getLocation().getId(), origGroup.getZone()); + assertEquals(newGroup.getLocation().getId(), origGroup.getRegion()); } @Test public void testApplyWithCidr() { - NovaSecurityGroupInZoneToSecurityGroup parser = createGroupParser(); + NovaSecurityGroupInRegionToSecurityGroup parser = createGroupParser(); - SecurityGroupInZone origGroup = new SecurityGroupInZone(securityGroupWithCidr(), zone.getId()); + SecurityGroupInRegion origGroup = new SecurityGroupInRegion(securityGroupWithCidr(), region.getId()); SecurityGroup newGroup = parser.apply(origGroup); - assertEquals(newGroup.getId(), origGroup.getZone() + "/" + origGroup.getSecurityGroup().getId()); + assertEquals(newGroup.getId(), origGroup.getRegion() + "/" + origGroup.getSecurityGroup().getId()); assertEquals(newGroup.getProviderId(), origGroup.getSecurityGroup().getId()); assertEquals(newGroup.getName(), origGroup.getSecurityGroup().getName()); assertEquals(newGroup.getOwnerId(), origGroup.getSecurityGroup().getTenantId()); assertEquals(newGroup.getIpPermissions(), ImmutableSet.copyOf(transform(origGroup.getSecurityGroup().getRules(), NovaSecurityGroupToSecurityGroupTest.ruleConverter))); - assertEquals(newGroup.getLocation().getId(), origGroup.getZone()); + assertEquals(newGroup.getLocation().getId(), origGroup.getRegion()); } - private NovaSecurityGroupInZoneToSecurityGroup createGroupParser() { + private NovaSecurityGroupInRegionToSecurityGroup createGroupParser() { NovaSecurityGroupToSecurityGroup baseParser = new NovaSecurityGroupToSecurityGroup(NovaSecurityGroupToSecurityGroupTest.ruleConverter); - NovaSecurityGroupInZoneToSecurityGroup parser = new NovaSecurityGroupInZoneToSecurityGroup(baseParser, locationIndex); + NovaSecurityGroupInRegionToSecurityGroup parser = new NovaSecurityGroupInRegionToSecurityGroup(baseParser, locationIndex); return parser; } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupToSecurityGroupTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupToSecurityGroupTest.java index 1a964b66df..5edc44dc1a 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupToSecurityGroupTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupToSecurityGroupTest.java @@ -29,8 +29,8 @@ import org.jclouds.domain.LocationScope; import org.jclouds.net.domain.IpProtocol; import org.jclouds.openstack.nova.v2_0.domain.SecurityGroupRule; import org.jclouds.openstack.nova.v2_0.domain.TenantIdAndName; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.SecurityGroupInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.SecurityGroupInRegion; import org.testng.annotations.Test; import com.google.common.base.Functions; @@ -49,23 +49,23 @@ public class NovaSecurityGroupToSecurityGroupTest { private static final Location provider = new LocationBuilder().scope(LocationScope.PROVIDER).id("openstack-nova") .description("openstack-nova").build(); - private static final Location zone = new LocationBuilder().id("az-1.region-a.geo-1").description("az-1.region-a.geo-1") - .scope(LocationScope.ZONE).parent(provider).build(); + private static final Location region = new LocationBuilder().id("az-1.region-a.geo-1").description("az-1.region-a.geo-1") + .scope(LocationScope.REGION).parent(provider).build(); private static final Supplier> locationIndex = Suppliers.> ofInstance(ImmutableMap - .of("az-1.region-a.geo-1", zone)); + .of("az-1.region-a.geo-1", region)); - private static final Predicate> returnSecurityGroupExistsInZone = Predicates.alwaysTrue(); + private static final Predicate> returnSecurityGroupExistsInRegion = Predicates.alwaysTrue(); - private static final Map groupMap = ImmutableMap.of( - ZoneAndName.fromZoneAndName("az-1.region-a.geo-1", "some-group"), new SecurityGroupInZone(securityGroupWithGroup(), "az-1.region-a.geo-1"), - ZoneAndName.fromZoneAndName("az-1.region-a.geo-1", "some-other-group"), new SecurityGroupInZone(securityGroupWithCidr(), "az-1.region-a.geo-1")); + private static final Map groupMap = ImmutableMap.of( + RegionAndName.fromRegionAndName("az-1.region-a.geo-1", "some-group"), new SecurityGroupInRegion(securityGroupWithGroup(), "az-1.region-a.geo-1"), + RegionAndName.fromRegionAndName("az-1.region-a.geo-1", "some-other-group"), new SecurityGroupInRegion(securityGroupWithCidr(), "az-1.region-a.geo-1")); // weird compilation error means have to declare extra generics for call to build() - see https://bugs.eclipse.org/bugs/show_bug.cgi?id=365818 - private static final Supplier > groupCache = Suppliers.> ofInstance( - CacheBuilder.newBuilder().build(CacheLoader.from(Functions.forMap(groupMap)))); + private static final Supplier > groupCache = Suppliers.> ofInstance( + CacheBuilder.newBuilder().build(CacheLoader.from(Functions.forMap(groupMap)))); - public static final SecurityGroupRuleToIpPermission ruleConverter = new SecurityGroupRuleToIpPermission(returnSecurityGroupExistsInZone, locationIndex, + public static final SecurityGroupRuleToIpPermission ruleConverter = new SecurityGroupRuleToIpPermission(returnSecurityGroupExistsInRegion, locationIndex, groupCache.get()); public static org.jclouds.openstack.nova.v2_0.domain.SecurityGroup securityGroupWithGroup() { diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/OrphanedGroupsByZoneIdTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/OrphanedGroupsByRegionIdTest.java similarity index 70% rename from apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/OrphanedGroupsByZoneIdTest.java rename to apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/OrphanedGroupsByRegionIdTest.java index b6ae064c5d..27b976dead 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/OrphanedGroupsByZoneIdTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/OrphanedGroupsByRegionIdTest.java @@ -29,8 +29,8 @@ import org.jclouds.domain.Location; import org.jclouds.domain.LocationBuilder; import org.jclouds.domain.LocationScope; import org.jclouds.openstack.nova.v2_0.compute.config.NovaComputeServiceContextModule; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ServerInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.ServerInRegion; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; import org.jclouds.openstack.nova.v2_0.parse.ParseServerTest; import org.testng.annotations.Test; @@ -42,49 +42,49 @@ import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.ImmutableSet; import com.google.inject.Guice; -@Test(testName = "OrphanedGroupsByZoneIdTest") -public class OrphanedGroupsByZoneIdTest { +@Test(testName = "OrphanedGroupsByRegionIdTest") +public class OrphanedGroupsByRegionIdTest { Location provider = new LocationBuilder().scope(LocationScope.PROVIDER).id("openstack-nova").description( "openstack-nova").build(); - Location zone = new LocationBuilder().id("az-1.region-a.geo-1").description("az-1.region-a.geo-1").scope( - LocationScope.ZONE).parent(provider).build(); + Location region = new LocationBuilder().id("az-1.region-a.geo-1").description("az-1.region-a.geo-1").scope( + LocationScope.REGION).parent(provider).build(); Supplier> locationIndex = Suppliers.> ofInstance(ImmutableMap - . of("az-1.region-a.geo-1", zone)); + . of("az-1.region-a.geo-1", region)); GroupNamingConvention.Factory namingConvention = Guice.createInjector().getInstance(GroupNamingConvention.Factory.class); - + @Test public void testWhenComputeServiceSaysAllNodesAreDeadBothGroupsAreReturned() { - ServerInZone withoutHost = new ServerInZone(new ServerInZoneToNodeMetadataTest().expectedServer(), "az-1.region-a.geo-1"); - ServerInZone withHost = new ServerInZone(new ParseServerTest().expected(), "az-1.region-a.geo-1"); - - ServerInZoneToNodeMetadata converter = new ServerInZoneToNodeMetadata( + ServerInRegion withoutHost = new ServerInRegion(new ServerInRegionToNodeMetadataTest().expectedServer(), "az-1.region-a.geo-1"); + ServerInRegion withHost = new ServerInRegion(new ParseServerTest().expected(), "az-1.region-a.geo-1"); + + ServerInRegionToNodeMetadata converter = new ServerInRegionToNodeMetadata( NovaComputeServiceContextModule.toPortableNodeStatus, locationIndex, Suppliers .> ofInstance(ImmutableSet. of()), Suppliers .> ofInstance(ImmutableSet. of()), namingConvention); Set set = ImmutableSet.of(converter.apply(withHost), converter.apply(withoutHost)); - assertEquals(new OrphanedGroupsByZoneId(Predicates. alwaysTrue()).apply(set), ImmutableMultimap + assertEquals(new OrphanedGroupsByRegionId(Predicates. alwaysTrue()).apply(set), ImmutableMultimap . builder().putAll("az-1.region-a.geo-1", "sample", "test").build()); } @Test public void testWhenComputeServiceSaysAllNodesAreDeadNoGroupsAreReturned() { - ServerInZone withoutHost = new ServerInZone(new ServerInZoneToNodeMetadataTest().expectedServer(), "az-1.region-a.geo-1"); - ServerInZone withHost = new ServerInZone(new ParseServerTest().expected(), "az-1.region-a.geo-1"); + ServerInRegion withoutHost = new ServerInRegion(new ServerInRegionToNodeMetadataTest().expectedServer(), "az-1.region-a.geo-1"); + ServerInRegion withHost = new ServerInRegion(new ParseServerTest().expected(), "az-1.region-a.geo-1"); - ServerInZoneToNodeMetadata converter = new ServerInZoneToNodeMetadata( + ServerInRegionToNodeMetadata converter = new ServerInRegionToNodeMetadata( NovaComputeServiceContextModule.toPortableNodeStatus, locationIndex, Suppliers .> ofInstance(ImmutableSet. of()), Suppliers .> ofInstance(ImmutableSet. of()), namingConvention); Set set = ImmutableSet.of(converter.apply(withHost), converter.apply(withoutHost)); - assertEquals(new OrphanedGroupsByZoneId(Predicates. alwaysFalse()).apply(set), ImmutableMultimap + assertEquals(new OrphanedGroupsByRegionId(Predicates. alwaysFalse()).apply(set), ImmutableMultimap . of()); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInZoneToNodeMetadataTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInRegionToNodeMetadataTest.java similarity index 86% rename from apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInZoneToNodeMetadataTest.java rename to apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInRegionToNodeMetadataTest.java index b5c16464e2..e602f54b86 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInZoneToNodeMetadataTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInRegionToNodeMetadataTest.java @@ -38,7 +38,7 @@ import org.jclouds.domain.LocationBuilder; import org.jclouds.domain.LocationScope; import org.jclouds.openstack.nova.v2_0.compute.config.NovaComputeServiceContextModule; import org.jclouds.openstack.nova.v2_0.domain.Server; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ServerInZone; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.ServerInRegion; import org.jclouds.openstack.nova.v2_0.parse.ParseServerTest; import org.jclouds.openstack.nova.v2_0.parse.ParseServerWithoutImageTest; import org.jclouds.openstack.v2_0.domain.Link; @@ -55,15 +55,15 @@ import com.google.inject.Guice; * Tests for the function for transforming a nova specific Server into a generic * NodeMetadata object. */ -@Test(testName = "ServerInZoneToNodeMetadataTest") -public class ServerInZoneToNodeMetadataTest { +@Test(testName = "ServerInRegionToNodeMetadataTest") +public class ServerInRegionToNodeMetadataTest { Location provider = new LocationBuilder().scope(LocationScope.PROVIDER).id("openstack-nova") .description("openstack-nova").build(); - Location zone = new LocationBuilder().id("az-1.region-a.geo-1").description("az-1.region-a.geo-1") - .scope(LocationScope.ZONE).parent(provider).build(); + Location region = new LocationBuilder().id("az-1.region-a.geo-1").description("az-1.region-a.geo-1") + .scope(LocationScope.REGION).parent(provider).build(); Supplier> locationIndex = Suppliers.> ofInstance(ImmutableMap - . of("az-1.region-a.geo-1", zone)); + . of("az-1.region-a.geo-1", region)); GroupNamingConvention.Factory namingConvention = Guice.createInjector().getInstance(GroupNamingConvention.Factory.class); @@ -71,10 +71,10 @@ public class ServerInZoneToNodeMetadataTest { public void testWhenNoHardwareOrImageMatchServerScopedIdsImageIdIsStillSet() { Hardware existingHardware = new HardwareBuilder().id("az-1.region-a.geo-1/FOOOOOOOO").providerId("FOOOOOOOO") - .location(zone).build(); + .location(region).build(); Image existingImage = new ImageBuilder().id("az-1.region-a.geo-1/FOOOOOOOO") .operatingSystem(OperatingSystem.builder().family(OsFamily.LINUX).description("foobuntu").build()) - .providerId("FOOOOOOOO").description("foobuntu").location(zone).status(Image.Status.AVAILABLE).build(); + .providerId("FOOOOOOOO").description("foobuntu").location(region).status(Image.Status.AVAILABLE).build(); checkHardwareAndImageStatus(null, existingHardware, "az-1.region-a.geo-1/52415800-8b69-11e0-9b19-734f6f006e54", null, existingImage); @@ -84,11 +84,11 @@ public class ServerInZoneToNodeMetadataTest { public void testWhenNoHardwareAndImageMatchServerScopedIdsHardwareOperatingSystemAndImageIdAreSet() { Hardware existingHardware = new HardwareBuilder().id("az-1.region-a.geo-1/52415800-8b69-11e0-9b19-734f216543fd") - .providerId("52415800-8b69-11e0-9b19-734f216543fd").location(zone).build(); + .providerId("52415800-8b69-11e0-9b19-734f216543fd").location(region).build(); Image existingImage = new ImageBuilder().id("az-1.region-a.geo-1/52415800-8b69-11e0-9b19-734f6f006e54") .operatingSystem(OperatingSystem.builder().family(OsFamily.LINUX).description("foobuntu").build()) .providerId("52415800-8b69-11e0-9b19-734f6f006e54").description("foobuntu").status(Image.Status.AVAILABLE) - .location(zone).build(); + .location(region).build(); checkHardwareAndImageStatus(existingHardware, existingHardware, existingImage.getId(), existingImage.getOperatingSystem(), existingImage); @@ -97,11 +97,11 @@ public class ServerInZoneToNodeMetadataTest { @Test public void testNullAccessIPs() { Hardware existingHardware = new HardwareBuilder().id("az-1.region-a.geo-1/52415800-8b69-11e0-9b19-734f216543fd") - .providerId("52415800-8b69-11e0-9b19-734f216543fd").location(zone).build(); + .providerId("52415800-8b69-11e0-9b19-734f216543fd").location(region).build(); Image existingImage = new ImageBuilder().id("az-1.region-a.geo-1/52415800-8b69-11e0-9b19-734f6f006e54") .operatingSystem(OperatingSystem.builder().family(OsFamily.LINUX).description("foobuntu").build()) .providerId("52415800-8b69-11e0-9b19-734f6f006e54").description("foobuntu").status(Image.Status.AVAILABLE) - .location(zone).build(); + .location(region).build(); Set images = existingImage == null ? ImmutableSet. of() : ImmutableSet.of(existingImage); Set hardwares = existingHardware == null ? ImmutableSet. of() : ImmutableSet @@ -111,14 +111,14 @@ public class ServerInZoneToNodeMetadataTest { .accessIPv6(null) .build(); - ServerInZone serverInZoneToConvert = new ServerInZone(serverToConvert, "az-1.region-a.geo-1"); + ServerInRegion serverInRegionToConvert = new ServerInRegion(serverToConvert, "az-1.region-a.geo-1"); - ServerInZoneToNodeMetadata converter = new ServerInZoneToNodeMetadata( + ServerInRegionToNodeMetadata converter = new ServerInRegionToNodeMetadata( NovaComputeServiceContextModule.toPortableNodeStatus, locationIndex, Suppliers .> ofInstance(images), Suppliers .> ofInstance(hardwares), namingConvention); - NodeMetadata convertedNodeMetadata = converter.apply(serverInZoneToConvert); + NodeMetadata convertedNodeMetadata = converter.apply(serverInRegionToConvert); assertNotNull(convertedNodeMetadata.getPrivateAddresses()); assertEquals(convertedNodeMetadata.getPrivateAddresses(), ImmutableSet.of("10.176.42.16")); @@ -131,11 +131,11 @@ public class ServerInZoneToNodeMetadataTest { @Test public void testDuplicateAccessIPs() { Hardware existingHardware = new HardwareBuilder().id("az-1.region-a.geo-1/52415800-8b69-11e0-9b19-734f216543fd") - .providerId("52415800-8b69-11e0-9b19-734f216543fd").location(zone).build(); + .providerId("52415800-8b69-11e0-9b19-734f216543fd").location(region).build(); Image existingImage = new ImageBuilder().id("az-1.region-a.geo-1/52415800-8b69-11e0-9b19-734f6f006e54") .operatingSystem(OperatingSystem.builder().family(OsFamily.LINUX).description("foobuntu").build()) .providerId("52415800-8b69-11e0-9b19-734f6f006e54").description("foobuntu").status(Image.Status.AVAILABLE) - .location(zone).build(); + .location(region).build(); Set images = existingImage == null ? ImmutableSet. of() : ImmutableSet.of(existingImage); Set hardwares = existingHardware == null ? ImmutableSet. of() : ImmutableSet @@ -145,14 +145,14 @@ public class ServerInZoneToNodeMetadataTest { .accessIPv6("::babe:67.23.10.132") .build(); - ServerInZone serverInZoneToConvert = new ServerInZone(serverToConvert, "az-1.region-a.geo-1"); + ServerInRegion serverInRegionToConvert = new ServerInRegion(serverToConvert, "az-1.region-a.geo-1"); - ServerInZoneToNodeMetadata converter = new ServerInZoneToNodeMetadata( + ServerInRegionToNodeMetadata converter = new ServerInRegionToNodeMetadata( NovaComputeServiceContextModule.toPortableNodeStatus, locationIndex, Suppliers .> ofInstance(images), Suppliers .> ofInstance(hardwares), namingConvention); - NodeMetadata convertedNodeMetadata = converter.apply(serverInZoneToConvert); + NodeMetadata convertedNodeMetadata = converter.apply(serverInRegionToConvert); assertNotNull(convertedNodeMetadata.getPrivateAddresses()); assertEquals(convertedNodeMetadata.getPrivateAddresses(), ImmutableSet.of("10.176.42.16")); @@ -165,11 +165,11 @@ public class ServerInZoneToNodeMetadataTest { @Test public void testAlternateAccessIPs() { Hardware existingHardware = new HardwareBuilder().id("az-1.region-a.geo-1/52415800-8b69-11e0-9b19-734f216543fd") - .providerId("52415800-8b69-11e0-9b19-734f216543fd").location(zone).build(); + .providerId("52415800-8b69-11e0-9b19-734f216543fd").location(region).build(); Image existingImage = new ImageBuilder().id("az-1.region-a.geo-1/52415800-8b69-11e0-9b19-734f6f006e54") .operatingSystem(OperatingSystem.builder().family(OsFamily.LINUX).description("foobuntu").build()) .providerId("52415800-8b69-11e0-9b19-734f6f006e54").description("foobuntu").status(Image.Status.AVAILABLE) - .location(zone).build(); + .location(region).build(); Set images = existingImage == null ? ImmutableSet. of() : ImmutableSet.of(existingImage); Set hardwares = existingHardware == null ? ImmutableSet. of() : ImmutableSet @@ -179,14 +179,14 @@ public class ServerInZoneToNodeMetadataTest { .accessIPv6("::babe:76.32.1.231") .build(); - ServerInZone serverInZoneToConvert = new ServerInZone(serverToConvert, "az-1.region-a.geo-1"); + ServerInRegion serverInRegionToConvert = new ServerInRegion(serverToConvert, "az-1.region-a.geo-1"); - ServerInZoneToNodeMetadata converter = new ServerInZoneToNodeMetadata( + ServerInRegionToNodeMetadata converter = new ServerInRegionToNodeMetadata( NovaComputeServiceContextModule.toPortableNodeStatus, locationIndex, Suppliers .> ofInstance(images), Suppliers .> ofInstance(hardwares), namingConvention); - NodeMetadata convertedNodeMetadata = converter.apply(serverInZoneToConvert); + NodeMetadata convertedNodeMetadata = converter.apply(serverInRegionToConvert); assertNotNull(convertedNodeMetadata.getPrivateAddresses()); assertEquals(convertedNodeMetadata.getPrivateAddresses(), ImmutableSet.of("10.176.42.16")); @@ -206,22 +206,22 @@ public class ServerInZoneToNodeMetadataTest { @Test public void testServerWithoutImage() { Hardware existingHardware = new HardwareBuilder().id("az-1.region-a.geo-1/52415800-8b69-11e0-9b19-734f216543fd") - .providerId("52415800-8b69-11e0-9b19-734f216543fd").location(zone).build(); + .providerId("52415800-8b69-11e0-9b19-734f216543fd").location(region).build(); Image existingImage = new ImageBuilder().id("az-1.region-a.geo-1/52415800-8b69-11e0-9b19-734f6f006e54") .operatingSystem(OperatingSystem.builder().family(OsFamily.LINUX).description("foobuntu").build()) .providerId("52415800-8b69-11e0-9b19-734f6f006e54").description("foobuntu").status(Image.Status.AVAILABLE) - .location(zone).build(); + .location(region).build(); Server serverToConvert = new ParseServerWithoutImageTest().expected(); - ServerInZone serverInZoneToConvert = new ServerInZone(serverToConvert, "az-1.region-a.geo-1"); + ServerInRegion serverInRegionToConvert = new ServerInRegion(serverToConvert, "az-1.region-a.geo-1"); - ServerInZoneToNodeMetadata converter = new ServerInZoneToNodeMetadata( + ServerInRegionToNodeMetadata converter = new ServerInRegionToNodeMetadata( NovaComputeServiceContextModule.toPortableNodeStatus, locationIndex, Suppliers.> ofInstance(ImmutableSet.of(existingImage)), Suppliers.> ofInstance(ImmutableSet.of(existingHardware)), namingConvention); - NodeMetadata convertedNodeMetadata = converter.apply(serverInZoneToConvert); + NodeMetadata convertedNodeMetadata = converter.apply(serverInRegionToConvert); assertNull(convertedNodeMetadata.getImageId()); } @@ -235,16 +235,16 @@ public class ServerInZoneToNodeMetadataTest { .of(existingHardware); Server serverToConvert = new ParseServerTest().expected(); - ServerInZone serverInZoneToConvert = new ServerInZone(serverToConvert, "az-1.region-a.geo-1"); + ServerInRegion serverInRegionToConvert = new ServerInRegion(serverToConvert, "az-1.region-a.geo-1"); - ServerInZoneToNodeMetadata converter = new ServerInZoneToNodeMetadata( + ServerInRegionToNodeMetadata converter = new ServerInRegionToNodeMetadata( NovaComputeServiceContextModule.toPortableNodeStatus, locationIndex, Suppliers .> ofInstance(images), Suppliers .> ofInstance(hardwares), namingConvention); - NodeMetadata convertedNodeMetadata = converter.apply(serverInZoneToConvert); + NodeMetadata convertedNodeMetadata = converter.apply(serverInRegionToConvert); - assertEquals(serverInZoneToConvert.slashEncode(), convertedNodeMetadata.getId()); + assertEquals(serverInRegionToConvert.slashEncode(), convertedNodeMetadata.getId()); assertEquals(serverToConvert.getId(), convertedNodeMetadata.getProviderId()); assertEquals(convertedNodeMetadata.getLocation().getScope(), LocationScope.HOST); @@ -279,26 +279,26 @@ public class ServerInZoneToNodeMetadataTest { } @Test - public void testNewServerWithoutHostIdSetsZoneAsLocation() { + public void testNewServerWithoutHostIdSetsRegionAsLocation() { Set images = ImmutableSet. of(); Set hardwares = ImmutableSet. of(); Server serverToConvert = expectedServer(); - ServerInZone serverInZoneToConvert = new ServerInZone(serverToConvert, "az-1.region-a.geo-1"); + ServerInRegion serverInRegionToConvert = new ServerInRegion(serverToConvert, "az-1.region-a.geo-1"); - ServerInZoneToNodeMetadata converter = new ServerInZoneToNodeMetadata( + ServerInRegionToNodeMetadata converter = new ServerInRegionToNodeMetadata( NovaComputeServiceContextModule.toPortableNodeStatus, locationIndex, Suppliers .> ofInstance(images), Suppliers .> ofInstance(hardwares), namingConvention); - NodeMetadata convertedNodeMetadata = converter.apply(serverInZoneToConvert); + NodeMetadata convertedNodeMetadata = converter.apply(serverInRegionToConvert); - assertEquals(serverInZoneToConvert.slashEncode(), convertedNodeMetadata.getId()); + assertEquals(serverInRegionToConvert.slashEncode(), convertedNodeMetadata.getId()); assertEquals(serverToConvert.getId(), convertedNodeMetadata.getProviderId()); - assertEquals(convertedNodeMetadata.getLocation(), zone); + assertEquals(convertedNodeMetadata.getLocation(), region); URI expectedURI = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/37936628937291/servers/71752"); assertEquals(convertedNodeMetadata.getUri(), expectedURI); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/loaders/CreateUniqueKeyPairTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/loaders/CreateUniqueKeyPairTest.java index 269864341a..5667ab85e1 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/loaders/CreateUniqueKeyPairTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/loaders/CreateUniqueKeyPairTest.java @@ -26,7 +26,7 @@ import java.net.UnknownHostException; import org.jclouds.openstack.nova.v2_0.NovaApi; import org.jclouds.openstack.nova.v2_0.domain.KeyPair; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; import org.jclouds.openstack.nova.v2_0.extensions.KeyPairApi; import org.testng.annotations.Test; @@ -48,8 +48,8 @@ public class CreateUniqueKeyPairTest { KeyPair pair = createMock(KeyPair.class); Optional optKeyApi = Optional.of(keyApi); - - expect(api.getKeyPairExtensionForZone("zone")).andReturn(optKeyApi).atLeastOnce(); + + expect(api.getKeyPairApi("region")).andReturn(optKeyApi).atLeastOnce(); expect(keyApi.create("group-1")).andReturn(pair); @@ -66,7 +66,7 @@ public class CreateUniqueKeyPairTest { }).getInstance(CreateUniqueKeyPair.class); - assertEquals(parser.load(ZoneAndName.fromZoneAndName("zone", "group")), pair); + assertEquals(parser.load(RegionAndName.fromRegionAndName("region", "group")), pair); verify(api, keyApi); } @@ -80,7 +80,7 @@ public class CreateUniqueKeyPairTest { KeyPair pair = createMock(KeyPair.class); - expect(api.getKeyPairExtensionForZone("zone")).andReturn((Optional) Optional.of(keyApi)).atLeastOnce(); + expect(api.getKeyPairApi("region")).andReturn((Optional) Optional.of(keyApi)).atLeastOnce(); expect(uniqueIdSupplier.get()).andReturn("1"); expect(keyApi.create("group-1")).andThrow(new IllegalStateException()); @@ -100,7 +100,7 @@ public class CreateUniqueKeyPairTest { }).getInstance(CreateUniqueKeyPair.class); - assertEquals(parser.load(ZoneAndName.fromZoneAndName("zone", "group")), pair); + assertEquals(parser.load(RegionAndName.fromRegionAndName("region", "group")), pair); verify(api, keyApi, uniqueIdSupplier); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/loaders/FindSecurityGroupOrCreateTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/loaders/FindSecurityGroupOrCreateTest.java index 81bf3b0688..83585bc4aa 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/loaders/FindSecurityGroupOrCreateTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/loaders/FindSecurityGroupOrCreateTest.java @@ -22,9 +22,9 @@ import static org.testng.Assert.fail; import java.util.concurrent.atomic.AtomicReference; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.SecurityGroupInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneSecurityGroupNameAndPorts; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.SecurityGroupInRegion; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionSecurityGroupNameAndPorts; import org.testng.annotations.Test; import com.google.common.base.Function; @@ -39,43 +39,43 @@ public class FindSecurityGroupOrCreateTest { @Test public void testWhenNotFoundCreatesANewSecurityGroup() throws Exception { - Predicate> returnSecurityGroupExistsInZone = Predicates.alwaysFalse(); + Predicate> returnSecurityGroupExistsInRegion = Predicates.alwaysFalse(); - SecurityGroupInZone securityGroupInZone = createMock(SecurityGroupInZone.class); + SecurityGroupInRegion securityGroupInRegion = createMock(SecurityGroupInRegion.class); - ZoneSecurityGroupNameAndPorts input = new ZoneSecurityGroupNameAndPorts("zone", "groupName", ImmutableSet + RegionSecurityGroupNameAndPorts input = new RegionSecurityGroupNameAndPorts("region", "groupName", ImmutableSet . of(22, 8080)); - Function groupCreator = Functions.forMap(ImmutableMap - . of(input, securityGroupInZone)); + Function groupCreator = Functions.forMap(ImmutableMap + . of(input, securityGroupInRegion)); FindSecurityGroupOrCreate parser = new FindSecurityGroupOrCreate( - returnSecurityGroupExistsInZone, groupCreator); + returnSecurityGroupExistsInRegion, groupCreator); - assertEquals(parser.load(input), securityGroupInZone); + assertEquals(parser.load(input), securityGroupInRegion); } - + @Test public void testWhenFoundReturnsSecurityGroupFromAtomicReferenceValueUpdatedDuringPredicateCheck() throws Exception { - final SecurityGroupInZone securityGroupInZone = createMock(SecurityGroupInZone.class); + final SecurityGroupInRegion securityGroupInRegion = createMock(SecurityGroupInRegion.class); - Predicate> returnSecurityGroupExistsInZone = new Predicate>() { + Predicate> returnSecurityGroupExistsInRegion = new Predicate>() { @Override - public boolean apply(AtomicReference input) { - input.set(securityGroupInZone); + public boolean apply(AtomicReference input) { + input.set(securityGroupInRegion); return true; } - + }; - ZoneAndName input = ZoneAndName.fromZoneAndName("zone", "groupName"); + RegionAndName input = RegionAndName.fromRegionAndName("region", "groupName"); - Function groupCreator = new Function() { + Function groupCreator = new Function() { @Override - public SecurityGroupInZone apply(ZoneSecurityGroupNameAndPorts input) { + public SecurityGroupInRegion apply(RegionSecurityGroupNameAndPorts input) { fail(); return null; } @@ -83,24 +83,24 @@ public class FindSecurityGroupOrCreateTest { }; FindSecurityGroupOrCreate parser = new FindSecurityGroupOrCreate( - returnSecurityGroupExistsInZone, groupCreator); + returnSecurityGroupExistsInRegion, groupCreator); - assertEquals(parser.load(input), securityGroupInZone); + assertEquals(parser.load(input), securityGroupInRegion); } - + @Test(expectedExceptions = IllegalStateException.class) public void testWhenFoundPredicateMustUpdateAtomicReference() throws Exception { - Predicate> returnSecurityGroupExistsInZone = Predicates.alwaysTrue(); + Predicate> returnSecurityGroupExistsInRegion = Predicates.alwaysTrue(); - ZoneAndName input = ZoneAndName.fromZoneAndName("zone", "groupName"); + RegionAndName input = RegionAndName.fromRegionAndName("region", "groupName"); - Function groupCreator = new Function() { + Function groupCreator = new Function() { @Override - public SecurityGroupInZone apply(ZoneSecurityGroupNameAndPorts input) { + public SecurityGroupInRegion apply(RegionSecurityGroupNameAndPorts input) { fail(); return null; } @@ -108,7 +108,7 @@ public class FindSecurityGroupOrCreateTest { }; FindSecurityGroupOrCreate parser = new FindSecurityGroupOrCreate( - returnSecurityGroupExistsInZone, groupCreator); + returnSecurityGroupExistsInRegion, groupCreator); parser.load(input); @@ -117,15 +117,15 @@ public class FindSecurityGroupOrCreateTest { @Test(expectedExceptions = IllegalStateException.class) - public void testWhenNotFoundInputMustBeZoneSecurityGroupNameAndPorts() throws Exception { - Predicate> returnSecurityGroupExistsInZone = Predicates.alwaysFalse(); + public void testWhenNotFoundInputMustBeRegionSecurityGroupNameAndPorts() throws Exception { + Predicate> returnSecurityGroupExistsInRegion = Predicates.alwaysFalse(); - ZoneAndName input = ZoneAndName.fromZoneAndName("zone", "groupName"); + RegionAndName input = RegionAndName.fromRegionAndName("region", "groupName"); - Function groupCreator = new Function() { + Function groupCreator = new Function() { @Override - public SecurityGroupInZone apply(ZoneSecurityGroupNameAndPorts input) { + public SecurityGroupInRegion apply(RegionSecurityGroupNameAndPorts input) { fail(); return null; } @@ -133,7 +133,7 @@ public class FindSecurityGroupOrCreateTest { }; FindSecurityGroupOrCreate parser = new FindSecurityGroupOrCreate( - returnSecurityGroupExistsInZone, groupCreator); + returnSecurityGroupExistsInRegion, groupCreator); parser.load(input); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/loaders/LoadFloatingIpsForInstanceTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/loaders/LoadFloatingIpsForInstanceTest.java index c31e684002..84d2fa7c88 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/loaders/LoadFloatingIpsForInstanceTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/loaders/LoadFloatingIpsForInstanceTest.java @@ -23,10 +23,9 @@ import static org.easymock.EasyMock.verify; import static org.testng.Assert.assertEquals; import static org.testng.AssertJUnit.assertFalse; - import org.jclouds.openstack.nova.v2_0.NovaApi; import org.jclouds.openstack.nova.v2_0.domain.FloatingIP; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndId; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndId; import org.jclouds.openstack.nova.v2_0.extensions.FloatingIPApi; import org.testng.annotations.Test; @@ -43,7 +42,7 @@ public class LoadFloatingIpsForInstanceTest { FloatingIPApi ipApi = createMock(FloatingIPApi.class); FloatingIP testIp = FloatingIP.builder().id("1").ip("1.1.1.1").fixedIp("10.1.1.1").instanceId("i-blah").build(); - expect(api.getFloatingIPExtensionForZone("Zone")).andReturn((Optional) Optional.of(ipApi)).atLeastOnce(); + expect(api.getFloatingIPApi("RegionOne")).andReturn((Optional) Optional.of(ipApi)).atLeastOnce(); expect(ipApi.list()).andReturn((FluentIterable) FluentIterable.from(ImmutableSet. of(testIp))) .atLeastOnce(); @@ -52,7 +51,7 @@ public class LoadFloatingIpsForInstanceTest { LoadFloatingIpsForInstance parser = new LoadFloatingIpsForInstance(api); - assertEquals(ImmutableSet.copyOf(parser.load(ZoneAndId.fromZoneAndId("Zone", "i-blah"))), ImmutableSet.of(testIp)); + assertEquals(ImmutableSet.copyOf(parser.load(RegionAndId.fromRegionAndId("RegionOne", "i-blah"))), ImmutableSet.of(testIp)); verify(api); verify(ipApi); @@ -63,7 +62,7 @@ public class LoadFloatingIpsForInstanceTest { NovaApi api = createMock(NovaApi.class); FloatingIPApi ipApi = createMock(FloatingIPApi.class); - expect(api.getFloatingIPExtensionForZone("Zone")).andReturn((Optional) Optional.of(ipApi)).atLeastOnce(); + expect(api.getFloatingIPApi("region")).andReturn((Optional) Optional.of(ipApi)).atLeastOnce(); expect(ipApi.list()).andReturn((FluentIterable) FluentIterable.from(ImmutableSet. of())) .atLeastOnce(); @@ -73,7 +72,7 @@ public class LoadFloatingIpsForInstanceTest { LoadFloatingIpsForInstance parser = new LoadFloatingIpsForInstance(api); - assertFalse(parser.load(ZoneAndId.fromZoneAndId("Zone", "i-blah")).iterator().hasNext()); + assertFalse(parser.load(RegionAndId.fromRegionAndId("region", "i-blah")).iterator().hasNext()); verify(api); verify(ipApi); @@ -85,7 +84,7 @@ public class LoadFloatingIpsForInstanceTest { NovaApi api = createMock(NovaApi.class); FloatingIPApi ipApi = createMock(FloatingIPApi.class); - expect(api.getFloatingIPExtensionForZone("Zone")).andReturn((Optional) Optional.of(ipApi)).atLeastOnce(); + expect(api.getFloatingIPApi("region")).andReturn((Optional) Optional.of(ipApi)).atLeastOnce(); expect(ipApi.list()).andReturn((FluentIterable) FluentIterable.from(ImmutableSet. of(FloatingIP.builder().id("1").ip("1.1.1.1").build()))) .atLeastOnce(); @@ -95,7 +94,7 @@ public class LoadFloatingIpsForInstanceTest { LoadFloatingIpsForInstance parser = new LoadFloatingIpsForInstance(api); - assertFalse(parser.load(ZoneAndId.fromZoneAndId("Zone", "i-blah")).iterator().hasNext()); + assertFalse(parser.load(RegionAndId.fromRegionAndId("region", "i-blah")).iterator().hasNext()); verify(api); verify(ipApi); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiExpectTest.java index b3a80a79ac..356a849393 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiExpectTest.java @@ -48,7 +48,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "suspend").build(), HttpResponse.builder().statusCode(202).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertTrue(api.suspend("1")); } @@ -60,7 +60,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "suspend").build(), HttpResponse.builder().statusCode(404).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertFalse(api.suspend("1")); } @@ -73,11 +73,11 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "suspend").build(), HttpResponse.builder().statusCode(403).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); api.suspend("1"); } - + public void testResume() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action"); ServerAdminApi api = requestsSendResponses( @@ -85,7 +85,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "resume").build(), HttpResponse.builder().statusCode(202).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertTrue(api.resume("1")); } @@ -97,7 +97,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "resume").build(), HttpResponse.builder().statusCode(404).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertFalse(api.resume("1")); } @@ -110,7 +110,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "resume").build(), HttpResponse.builder().statusCode(403).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); api.resume("1"); } @@ -122,7 +122,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "lock").build(), HttpResponse.builder().statusCode(202).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertTrue(api.lock("1")); } @@ -134,7 +134,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "lock").build(), HttpResponse.builder().statusCode(404).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertFalse(api.lock("1")); } @@ -146,7 +146,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "unlock").build(), HttpResponse.builder().statusCode(202).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertTrue(api.unlock("1")); } @@ -158,7 +158,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "unlock").build(), HttpResponse.builder().statusCode(404).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertFalse(api.unlock("1")); } @@ -170,7 +170,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "pause").build(), HttpResponse.builder().statusCode(202).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertTrue(api.pause("1")); } @@ -182,11 +182,11 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "pause").build(), HttpResponse.builder().statusCode(404).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertFalse(api.pause("1")); } - + public void testUnpause() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action"); ServerAdminApi api = requestsSendResponses( @@ -194,7 +194,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "unpause").build(), HttpResponse.builder().statusCode(202).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertTrue(api.unpause("1")); } @@ -206,11 +206,11 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "unpause").build(), HttpResponse.builder().statusCode(404).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertFalse(api.unpause("1")); } - + public void testMigrateServer() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action"); ServerAdminApi api = requestsSendResponses( @@ -218,7 +218,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "migrate").build(), HttpResponse.builder().statusCode(202).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertTrue(api.migrate("1")); } @@ -231,7 +231,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "migrate").build(), HttpResponse.builder().statusCode(404).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertFalse(api.migrate("1")); } @@ -243,7 +243,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "resetNetwork").build(), HttpResponse.builder().statusCode(202).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertTrue(api.resetNetwork("1")); } @@ -255,11 +255,11 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "resetNetwork").build(), HttpResponse.builder().statusCode(404).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertFalse(api.resetNetwork("1")); } - + public void testInjectNetworkInfoIntoServer() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action"); ServerAdminApi api = requestsSendResponses( @@ -267,7 +267,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "injectNetworkInfo").build(), HttpResponse.builder().statusCode(202).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertTrue(api.injectNetworkInfo("1")); } @@ -279,11 +279,11 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, standardActionRequestBuilderVoidResponse(endpoint, "injectNetworkInfo").build(), HttpResponse.builder().statusCode(404).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertFalse(api.injectNetworkInfo("1")); } - + public void testBackupServer() { ServerAdminApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, @@ -291,7 +291,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { authenticatedGET().endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action").method("POST") .payload(payloadFromStringWithContentType("{\"createBackup\":{\"backup_type\":\"weekly\",\"rotation\":3,\"name\":\"mybackup\",\"metadata\":{\"some\":\"data or other\"}}}", MediaType.APPLICATION_JSON)).build(), HttpResponse.builder().statusCode(202).addHeader("Location", "http://172.16.89.149:8774/v2/images/1976b3b3-409a-468d-b16c-a9172c341b46").build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); String imageId = api.createBackup("1", "mybackup", BackupType.WEEKLY, 3, CreateBackupOfServerOptions.Builder.metadata(ImmutableMap.of("some", "data or other"))); assertEquals(imageId, "1976b3b3-409a-468d-b16c-a9172c341b46"); @@ -306,7 +306,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { authenticatedGET().endpoint(endpoint).method("POST") .payload(payloadFromStringWithContentType("{\"createBackup\":{\"backup_type\":\"weekly\",\"rotation\":3,\"name\":\"mybackup\",\"metadata\":{\"some\":\"data or other\"}}}", MediaType.APPLICATION_JSON)).build(), HttpResponse.builder().statusCode(404).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); api.createBackup("1", "mybackup", BackupType.WEEKLY, 3, CreateBackupOfServerOptions.Builder.metadata(ImmutableMap.of("some", "data or other"))); } @@ -319,7 +319,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { standardActionRequestBuilderVoidResponse(endpoint, "GONNAOVERWRITE") .payload(payloadFromStringWithContentType("{\"os-migrateLive\":{\"host\":\"bighost\",\"block_migration\":true,\"disk_over_commit\":false}}", MediaType.APPLICATION_JSON)).build(), HttpResponse.builder().statusCode(202).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertTrue(api.liveMigrate("1", "bighost", true, false)); } @@ -332,11 +332,11 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest { standardActionRequestBuilderVoidResponse(endpoint, "GONNAOVERWRITE") .payload(payloadFromStringWithContentType("{\"os-migrateLive\":{\"host\":\"bighost\",\"block_migration\":true,\"disk_over_commit\":false}}", MediaType.APPLICATION_JSON)).build(), HttpResponse.builder().statusCode(404).build() - ).getServerAdminExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerAdminApi("az-1.region-a.geo-1").get(); assertFalse(api.liveMigrate("1", "bighost", true, false)); } - + protected HttpRequest.Builder standardActionRequestBuilderVoidResponse(URI endpoint, String actionName) { return HttpRequest.builder() .method("POST") diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiLiveTest.java index 37f6f376e9..99b2d62f43 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiLiveTest.java @@ -42,7 +42,7 @@ import com.google.common.collect.Iterables; /** * Tests behavior of HostAdministrationApi - * + * * TODO test migration methods */ @Test(groups = "live", testName = "AdminActionsApiLiveTest", singleThreaded = true) @@ -51,7 +51,7 @@ public class AdminActionsApiLiveTest extends BaseNovaApiLiveTest { private ServerApi serverApi; private ExtensionApi extensionApi; private Optional apiOption; - private String zone; + private String region; private String testServerId; private String backupImageId; @@ -60,13 +60,13 @@ public class AdminActionsApiLiveTest extends BaseNovaApiLiveTest { @Override public void setup() { super.setup(); - zone = Iterables.getLast(api.getConfiguredZones(), "nova"); - serverApi = api.getServerApiForZone(zone); - extensionApi = api.getExtensionApiForZone(zone); - imageApi = api.getImageApiForZone(zone); - apiOption = api.getServerAdminExtensionForZone(zone); + region = Iterables.getLast(api.getConfiguredRegions(), "nova"); + serverApi = api.getServerApi(region); + extensionApi = api.getExtensionApi(region); + imageApi = api.getImageApi(region); + apiOption = api.getServerAdminApi(region); if (apiOption.isPresent()) { - testServerId = createServerInZone(zone).getId(); + testServerId = createServerInRegion(region).getId(); } } @@ -75,7 +75,7 @@ public class AdminActionsApiLiveTest extends BaseNovaApiLiveTest { protected void tearDown() { if (apiOption.isPresent()) { if (testServerId != null) { - assertTrue(api.getServerApiForZone(zone).delete(testServerId)); + assertTrue(api.getServerApi(region).delete(testServerId)); } if (backupImageId != null) { imageApi.delete(backupImageId); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApiExpectTest.java index bc2eba4ef9..fd608111fb 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApiExpectTest.java @@ -19,10 +19,11 @@ package org.jclouds.openstack.nova.v2_0.extensions; import com.google.common.base.Optional; import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableSet; + import org.jclouds.http.HttpRequest; import org.jclouds.http.HttpResponse; import org.jclouds.openstack.nova.v2_0.NovaApi; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.AvailabilityZone; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.AvailabilityZone; import org.jclouds.openstack.nova.v2_0.internal.BaseNovaApiExpectTest; import org.testng.annotations.Test; @@ -46,7 +47,7 @@ public class AvailabilityZoneApiExpectTest extends BaseNovaApiExpectTest { NovaApi availabilityZonesApi = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, list, listResponse); - assertEquals(availabilityZonesApi.getConfiguredZones(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); + assertEquals(availabilityZonesApi.getConfiguredRegions(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); FluentIterable zones = availabilityZonesApi.getAvailabilityZoneApi("az-1.region-a.geo-1").get().list(); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZonesApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZonesApiLiveTest.java index 3cadf68910..1c0a93b830 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZonesApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZonesApiLiveTest.java @@ -18,9 +18,11 @@ package org.jclouds.openstack.nova.v2_0.extensions; import com.google.common.base.Optional; import com.google.common.collect.FluentIterable; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.AvailabilityZone; + +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.AvailabilityZone; import org.jclouds.openstack.nova.v2_0.internal.BaseNovaApiLiveTest; import org.testng.annotations.Test; + import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApiLiveTest.java index c74dbad49a..94b03cb7ef 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApiLiveTest.java @@ -42,16 +42,16 @@ public class ConsolesApiLiveTest extends BaseNovaApiLiveTest { } private void testGetConsole(Console.Type consoleType) { - for (String zoneId : api.getConfiguredZones()) { - Optional apiOption = api.getConsolesExtensionForZone(zoneId); + for (String regionId : api.getConfiguredRegions()) { + Optional apiOption = api.getConsolesApi(regionId); if (!apiOption.isPresent()) { System.err.println("Consoles extension not present in server."); continue; } ConsolesApi api = apiOption.get(); - ServerApi serverApi = this.api.getServerApiForZone(zoneId); - Server server = createServerInZone(zoneId); + ServerApi serverApi = this.api.getServerApi(regionId); + Server server = createServerInRegion(regionId); Console console = api.getConsole(server.getId(), consoleType); assertNotNull(console.getType()); assertTrue(consoleType.equals(console.getType())); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApiMockTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApiMockTest.java index c636603d85..9a5263f310 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApiMockTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApiMockTest.java @@ -90,9 +90,9 @@ public class ConsolesApiMockTest extends BaseOpenStackMockTest { try { NovaApi novaApi = api(server.getUrl("/").toString(), "openstack-nova"); - String zoneId = getFirst(novaApi.getConfiguredZones(), "RegionTwo"); + String regionId = getFirst(novaApi.getConfiguredRegions(), "RegionTwo"); - ConsolesApi consolesApi = novaApi.getConsolesExtensionForZone(zoneId).get(); + ConsolesApi consolesApi = novaApi.getConsolesApi(regionId).get(); assertEquals(server.getRequestCount(), 2); assertAuthentication(server); @@ -120,9 +120,9 @@ public class ConsolesApiMockTest extends BaseOpenStackMockTest { try { NovaApi novaApi = api(server.getUrl("/").toString(), "openstack-nova"); - String zoneId = getFirst(novaApi.getConfiguredZones(), "RegionTwo"); + String regionId = getFirst(novaApi.getConfiguredRegions(), "RegionTwo"); - ConsolesApi consolesApi = novaApi.getConsolesExtensionForZone(zoneId).get(); + ConsolesApi consolesApi = novaApi.getConsolesApi(regionId).get(); assertEquals(server.getRequestCount(), 2); assertAuthentication(server); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiExpectTest.java index eb1009af82..8b90de6ef1 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiExpectTest.java @@ -44,7 +44,7 @@ public class FlavorExtraSpecsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_type_extra_specs.json")).build() - ).getFlavorExtraSpecsExtensionForZone("az-1.region-a.geo-1").get(); + ).getFlavorExtraSpecsApi("az-1.region-a.geo-1").get(); assertEquals(api.getMetadata("9"), ImmutableMap.of("test", "value1")); } @@ -56,7 +56,7 @@ public class FlavorExtraSpecsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getFlavorExtraSpecsExtensionForZone("az-1.region-a.geo-1").get(); + ).getFlavorExtraSpecsApi("az-1.region-a.geo-1").get(); assertTrue(api.getMetadata("9").isEmpty()); } @@ -70,7 +70,7 @@ public class FlavorExtraSpecsApiExpectTest extends BaseNovaApiExpectTest { .method("POST") .payload(payloadFromStringWithContentType("{\"extra_specs\":{\"test1\":\"somevalue\"}}", MediaType.APPLICATION_JSON)).build(), HttpResponse.builder().statusCode(200).build() - ).getFlavorExtraSpecsExtensionForZone("az-1.region-a.geo-1").get(); + ).getFlavorExtraSpecsApi("az-1.region-a.geo-1").get(); assertTrue(api.updateMetadata("9", ImmutableMap.of("test1", "somevalue"))); } @@ -84,7 +84,7 @@ public class FlavorExtraSpecsApiExpectTest extends BaseNovaApiExpectTest { .method("PUT") .payload(payloadFromStringWithContentType("{\"test1\":\"somevalue\"}", MediaType.APPLICATION_JSON)).build(), HttpResponse.builder().statusCode(200).build() - ).getFlavorExtraSpecsExtensionForZone("az-1.region-a.geo-1").get(); + ).getFlavorExtraSpecsApi("az-1.region-a.geo-1").get(); assertTrue(api.updateMetadataEntry("5", "test1", "somevalue")); } @@ -96,7 +96,7 @@ public class FlavorExtraSpecsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromStringWithContentType("{\"test1\":\"another value\"}", MediaType.APPLICATION_JSON)).build() - ).getFlavorExtraSpecsExtensionForZone("az-1.region-a.geo-1").get(); + ).getFlavorExtraSpecsApi("az-1.region-a.geo-1").get(); assertEquals(api.getMetadataKey("5", "test1"), "another value"); } @@ -108,7 +108,7 @@ public class FlavorExtraSpecsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getFlavorExtraSpecsExtensionForZone("az-1.region-a.geo-1").get(); + ).getFlavorExtraSpecsApi("az-1.region-a.geo-1").get(); assertNull(api.getMetadataKey("5", "test1")); } @@ -120,7 +120,7 @@ public class FlavorExtraSpecsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(200).build() - ).getFlavorExtraSpecsExtensionForZone("az-1.region-a.geo-1").get(); + ).getFlavorExtraSpecsApi("az-1.region-a.geo-1").get(); assertTrue(api.deleteMetadataKey("5", "test1")); } @@ -132,7 +132,7 @@ public class FlavorExtraSpecsApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(404).build() - ).getFlavorExtraSpecsExtensionForZone("az-1.region-a.geo-1").get(); + ).getFlavorExtraSpecsApi("az-1.region-a.geo-1").get(); assertFalse(api.deleteMetadataKey("5", "test1")); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiLiveTest.java index b7a6d9ca6b..d1ed7c2906 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiLiveTest.java @@ -41,7 +41,7 @@ import com.google.common.collect.Maps; public class FlavorExtraSpecsApiLiveTest extends BaseNovaApiLiveTest { private FlavorApi flavorApi; private Optional apiOption; - private String zone; + private String region; private Resource testFlavor; private Map testSpecs = ImmutableMap.of("jclouds-test", "some data", "jclouds-test2", "more data!"); @@ -50,9 +50,9 @@ public class FlavorExtraSpecsApiLiveTest extends BaseNovaApiLiveTest { @Override public void setup() { super.setup(); - zone = Iterables.getLast(api.getConfiguredZones(), "nova"); - flavorApi = api.getFlavorApiForZone(zone); - apiOption = api.getFlavorExtraSpecsExtensionForZone(zone); + region = Iterables.getLast(api.getConfiguredRegions(), "nova"); + flavorApi = api.getFlavorApi(region); + apiOption = api.getFlavorExtraSpecsApi(region); } @AfterClass(groups = { "integration", "live" }) diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApiExpectTest.java index 4647c4183d..e77c2e2d11 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApiExpectTest.java @@ -41,9 +41,9 @@ public class FloatingIPApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenExtensionNotInList = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse); - assertEquals(apiWhenExtensionNotInList.getConfiguredZones(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); + assertEquals(apiWhenExtensionNotInList.getConfiguredRegions(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); - assertTrue(apiWhenExtensionNotInList.getFloatingIPExtensionForZone("az-1.region-a.geo-1").isPresent()); + assertTrue(apiWhenExtensionNotInList.getFloatingIPApi("az-1.region-a.geo-1").isPresent()); } @@ -52,9 +52,9 @@ public class FloatingIPApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenExtensionNotInList = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, unmatchedExtensionsOfNovaResponse); - assertEquals(apiWhenExtensionNotInList.getConfiguredZones(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); + assertEquals(apiWhenExtensionNotInList.getConfiguredRegions(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); - assertFalse(apiWhenExtensionNotInList.getFloatingIPExtensionForZone("az-1.region-a.geo-1").isPresent()); + assertFalse(apiWhenExtensionNotInList.getFloatingIPApi("az-1.region-a.geo-1").isPresent()); } @@ -72,9 +72,9 @@ public class FloatingIPApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenFloatingIPsExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, list, listResponse); - assertEquals(apiWhenFloatingIPsExist.getConfiguredZones(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); + assertEquals(apiWhenFloatingIPsExist.getConfiguredRegions(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); - assertEquals(apiWhenFloatingIPsExist.getFloatingIPExtensionForZone("az-1.region-a.geo-1").get().list() + assertEquals(apiWhenFloatingIPsExist.getFloatingIPApi("az-1.region-a.geo-1").get().list() .toString(), new ParseFloatingIPListTest().expected().toString()); } @@ -91,7 +91,7 @@ public class FloatingIPApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, list, listResponse); - assertTrue(apiWhenNoServersExist.getFloatingIPExtensionForZone("az-1.region-a.geo-1").get().list().isEmpty()); + assertTrue(apiWhenNoServersExist.getFloatingIPApi("az-1.region-a.geo-1").get().list().isEmpty()); } public void testGetFloatingIPWhenResponseIs2xx() throws Exception { @@ -108,7 +108,7 @@ public class FloatingIPApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenFloatingIPsExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, get, getResponse); - assertEquals(apiWhenFloatingIPsExist.getFloatingIPExtensionForZone("az-1.region-a.geo-1").get().get("1") + assertEquals(apiWhenFloatingIPsExist.getFloatingIPApi("az-1.region-a.geo-1").get().get("1") .toString(), new ParseFloatingIPTest().expected().toString()); } @@ -125,7 +125,7 @@ public class FloatingIPApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, get, getResponse); - assertNull(apiWhenNoServersExist.getFloatingIPExtensionForZone("az-1.region-a.geo-1").get().get("1")); + assertNull(apiWhenNoServersExist.getFloatingIPApi("az-1.region-a.geo-1").get().get("1")); } public void testAllocateWhenResponseIs2xx() throws Exception { @@ -144,7 +144,7 @@ public class FloatingIPApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, createFloatingIP, createFloatingIPResponse); - assertEquals(apiWhenFloatingIPsExist.getFloatingIPExtensionForZone("az-1.region-a.geo-1").get().create().toString(), + assertEquals(apiWhenFloatingIPsExist.getFloatingIPApi("az-1.region-a.geo-1").get().create().toString(), new ParseFloatingIPTest().expected().toString()); } @@ -164,7 +164,7 @@ public class FloatingIPApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, createFloatingIP, createFloatingIPResponse); - assertNull(apiWhenNoServersExist.getFloatingIPExtensionForZone("az-1.region-a.geo-1").get().create()); + assertNull(apiWhenNoServersExist.getFloatingIPApi("az-1.region-a.geo-1").get().create()); } public void testAllocateWithPoolNameWhenResponseIs2xx() throws Exception { @@ -183,7 +183,7 @@ public class FloatingIPApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, createFloatingIP, createFloatingIPResponse); - assertEquals(apiWhenFloatingIPsExist.getFloatingIPExtensionForZone("az-1.region-a.geo-1").get().allocateFromPool("myPool").toString(), + assertEquals(apiWhenFloatingIPsExist.getFloatingIPApi("az-1.region-a.geo-1").get().allocateFromPool("myPool").toString(), new ParseFloatingIPTest().expected().toString()); } } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApiLiveTest.java index f65914f0d2..27eee5a726 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApiLiveTest.java @@ -43,8 +43,8 @@ public class FloatingIPApiLiveTest extends BaseNovaApiLiveTest { @Test public void testListFloatingIPs() throws Exception { - for (String zoneId : api.getConfiguredZones()) { - Optional apiOption = api.getFloatingIPExtensionForZone(zoneId); + for (String regionId : api.getConfiguredRegions()) { + Optional apiOption = api.getFloatingIPApi(regionId); if (!apiOption.isPresent()) continue; FloatingIPApi api = apiOption.get(); @@ -65,8 +65,8 @@ public class FloatingIPApiLiveTest extends BaseNovaApiLiveTest { @Test public void testAllocateAndDecreateFloatingIPs() throws Exception { - for (String zoneId : api.getConfiguredZones()) { - Optional apiOption = api.getFloatingIPExtensionForZone(zoneId); + for (String regionId : api.getConfiguredRegions()) { + Optional apiOption = api.getFloatingIPApi(regionId); if (!apiOption.isPresent()) continue; FloatingIPApi api = apiOption.get(); @@ -96,13 +96,13 @@ public class FloatingIPApiLiveTest extends BaseNovaApiLiveTest { @Test public void testAddAndRemoveFloatingIp() throws Exception { - for (String zoneId : api.getConfiguredZones()) { - Optional apiOption = api.getFloatingIPExtensionForZone(zoneId); + for (String regionId : api.getConfiguredRegions()) { + Optional apiOption = api.getFloatingIPApi(regionId); if (!apiOption.isPresent()) continue; FloatingIPApi api = apiOption.get(); - ServerApi serverApi = this.api.getServerApiForZone(zoneId); - Server server = createServerInZone(zoneId); + ServerApi serverApi = this.api.getServerApi(regionId); + Server server = createServerInRegion(regionId); FloatingIP floatingIP = api.create(); assertNotNull(floatingIP); try { diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApiExpectTest.java index 3b3f01f81c..836d6c0bb5 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApiExpectTest.java @@ -41,8 +41,8 @@ import com.google.common.collect.Iterables; */ @Test(groups = "unit", testName = "HostAdministrationApiExpectTest") public class HostAdministrationApiExpectTest extends BaseNovaApiExpectTest { - - + + public void testList() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-hosts"); HostAdministrationApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, @@ -51,8 +51,8 @@ public class HostAdministrationApiExpectTest extends BaseNovaApiExpectTest { .addHeader("Accept", "application/json") .addHeader("X-Auth-Token", authToken) .endpoint(endpoint).build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResource("/hosts_list.json")).build()).getHostAdministrationExtensionForZone("az-1.region-a.geo-1").get(); - + HttpResponse.builder().statusCode(200).payload(payloadFromResource("/hosts_list.json")).build()).getHostAdministrationApi("az-1.region-a.geo-1").get(); + Host expected = Host.builder().name("ubuntu").service("compute").build(); Set result = api.list().toSet(); @@ -71,7 +71,7 @@ public class HostAdministrationApiExpectTest extends BaseNovaApiExpectTest { .addHeader("Accept", "application/json") .addHeader("X-Auth-Token", authToken) .endpoint(endpoint).build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResource("/host.json")).build()).getHostAdministrationExtensionForZone("az-1.region-a.geo-1").get(); + HttpResponse.builder().statusCode(200).payload(payloadFromResource("/host.json")).build()).getHostAdministrationApi("az-1.region-a.geo-1").get(); Set expected = ImmutableSet.of( HostResourceUsage.builder().memoryMb(16083).project("(total)").cpu(4).diskGb(181).host("ubuntu").build(), @@ -82,7 +82,7 @@ public class HostAdministrationApiExpectTest extends BaseNovaApiExpectTest { assertEquals(api.listResourceUsage("xyz").toSet(), expected); } - + public void testEnableHost() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-hosts/ubuntu"); HostAdministrationApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, @@ -94,7 +94,7 @@ public class HostAdministrationApiExpectTest extends BaseNovaApiExpectTest { .endpoint(endpoint).build(), HttpResponse.builder().statusCode(200) .payload(payloadFromStringWithContentType("{\"host\":\"ubuntu\",\"status\":\"enabled\"}", MediaType.APPLICATION_JSON)) - .build()).getHostAdministrationExtensionForZone("az-1.region-a.geo-1").get(); + .build()).getHostAdministrationApi("az-1.region-a.geo-1").get(); assertTrue(api.enable("ubuntu")); } @@ -109,7 +109,7 @@ public class HostAdministrationApiExpectTest extends BaseNovaApiExpectTest { .payload(payloadFromStringWithContentType("{\"status\":\"enable\"}", MediaType.APPLICATION_JSON)) .endpoint(endpoint).build(), HttpResponse.builder().statusCode(404) - .build()).getHostAdministrationExtensionForZone("az-1.region-a.geo-1").get(); + .build()).getHostAdministrationApi("az-1.region-a.geo-1").get(); api.enable("ubuntu"); } @@ -124,7 +124,7 @@ public class HostAdministrationApiExpectTest extends BaseNovaApiExpectTest { .endpoint(endpoint).build(), HttpResponse.builder().statusCode(200) .payload(payloadFromStringWithContentType("{\"host\":\"ubuntu\",\"status\":\"disabled\"}", MediaType.APPLICATION_JSON)) - .build()).getHostAdministrationExtensionForZone("az-1.region-a.geo-1").get(); + .build()).getHostAdministrationApi("az-1.region-a.geo-1").get(); assertFalse(api.enable("ubuntu")); } @@ -139,7 +139,7 @@ public class HostAdministrationApiExpectTest extends BaseNovaApiExpectTest { .endpoint(endpoint).build(), HttpResponse.builder().statusCode(200) .payload(payloadFromStringWithContentType("{\"host\":\"ubuntu\",\"status\":\"disabled\"}", MediaType.APPLICATION_JSON)) - .build()).getHostAdministrationExtensionForZone("az-1.region-a.geo-1").get(); + .build()).getHostAdministrationApi("az-1.region-a.geo-1").get(); assertTrue(api.disable("ubuntu")); } @@ -154,7 +154,7 @@ public class HostAdministrationApiExpectTest extends BaseNovaApiExpectTest { .endpoint(endpoint).build(), HttpResponse.builder().statusCode(200) .payload(payloadFromStringWithContentType("{\"host\":\"ubuntu\",\"maintenance_mode\":\"on_maintenance\"}", MediaType.APPLICATION_JSON)) - .build()).getHostAdministrationExtensionForZone("az-1.region-a.geo-1").get(); + .build()).getHostAdministrationApi("az-1.region-a.geo-1").get(); assertTrue(api.startMaintenance("ubuntu")); } @@ -169,10 +169,10 @@ public class HostAdministrationApiExpectTest extends BaseNovaApiExpectTest { .endpoint(endpoint).build(), HttpResponse.builder().statusCode(200) .payload(payloadFromStringWithContentType("{\"host\":\"ubuntu\",\"maintenance_mode\":\"off_maintenance\"}", MediaType.APPLICATION_JSON)) - .build()).getHostAdministrationExtensionForZone("az-1.region-a.geo-1").get(); + .build()).getHostAdministrationApi("az-1.region-a.geo-1").get(); assertTrue(api.stopMaintenance("ubuntu")); } - + public void testStartupHost() { HostAdministrationApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, @@ -182,7 +182,7 @@ public class HostAdministrationApiExpectTest extends BaseNovaApiExpectTest { .addHeader("X-Auth-Token", authToken).build(), HttpResponse.builder().statusCode(200) .payload(payloadFromStringWithContentType("{\"host\":\"ubuntu\",\"power_action\":\"startup\"}", MediaType.APPLICATION_JSON)) - .build()).getHostAdministrationExtensionForZone("az-1.region-a.geo-1").get(); + .build()).getHostAdministrationApi("az-1.region-a.geo-1").get(); assertTrue(api.startup("ubuntu")); } @@ -194,7 +194,7 @@ public class HostAdministrationApiExpectTest extends BaseNovaApiExpectTest { .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-hosts/ubuntu/startup") .addHeader("Accept", "application/json") .addHeader("X-Auth-Token", authToken).build(), - HttpResponse.builder().statusCode(404).build()).getHostAdministrationExtensionForZone("az-1.region-a.geo-1").get(); + HttpResponse.builder().statusCode(404).build()).getHostAdministrationApi("az-1.region-a.geo-1").get(); assertTrue(api.startup("ubuntu")); } @@ -207,10 +207,10 @@ public class HostAdministrationApiExpectTest extends BaseNovaApiExpectTest { .addHeader("X-Auth-Token", authToken).build(), HttpResponse.builder().statusCode(200) .payload(payloadFromStringWithContentType("{\"host\":\"ubuntu\",\"power_action\":\"shutdown\"}", MediaType.APPLICATION_JSON)) - .build()).getHostAdministrationExtensionForZone("az-1.region-a.geo-1").get(); + .build()).getHostAdministrationApi("az-1.region-a.geo-1").get(); assertFalse(api.startup("ubuntu")); } - + public void testShutdownHost() { HostAdministrationApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, @@ -220,10 +220,10 @@ public class HostAdministrationApiExpectTest extends BaseNovaApiExpectTest { .addHeader("X-Auth-Token", authToken).build(), HttpResponse.builder().statusCode(200) .payload(payloadFromStringWithContentType("{\"host\":\"ubuntu\",\"power_action\":\"shutdown\"}", MediaType.APPLICATION_JSON)) - .build()).getHostAdministrationExtensionForZone("az-1.region-a.geo-1").get(); + .build()).getHostAdministrationApi("az-1.region-a.geo-1").get(); assertTrue(api.shutdown("ubuntu")); } - + public void testRebootHost() { HostAdministrationApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, @@ -233,7 +233,7 @@ public class HostAdministrationApiExpectTest extends BaseNovaApiExpectTest { .addHeader("X-Auth-Token", authToken).build(), HttpResponse.builder().statusCode(200) .payload(payloadFromStringWithContentType("{\"host\":\"ubuntu\",\"power_action\":\"reboot\"}", MediaType.APPLICATION_JSON)) - .build()).getHostAdministrationExtensionForZone("az-1.region-a.geo-1").get(); + .build()).getHostAdministrationApi("az-1.region-a.geo-1").get(); assertTrue(api.reboot("ubuntu")); } } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApiLiveTest.java index ab5ace0205..9c0265089c 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApiLiveTest.java @@ -53,8 +53,8 @@ public class HostAdministrationApiLiveTest extends BaseNovaApiLiveTest { super.setup(); if (identity.endsWith(":admin")) { - String zone = Iterables.getLast(api.getConfiguredZones(), "nova"); - optApi = api.getHostAdministrationExtensionForZone(zone); + String region = Iterables.getLast(api.getConfiguredRegions(), "nova"); + optApi = api.getHostAdministrationApi(region); } } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAggregateApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAggregateApiExpectTest.java index 8e192c190a..7080c74e6d 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAggregateApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAggregateApiExpectTest.java @@ -48,7 +48,7 @@ public class HostAggregateApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/host_aggregate_list.json")).build()) - .getHostAggregateExtensionForZone("az-1.region-a.geo-1").get(); + .getHostAggregateApi("az-1.region-a.geo-1").get(); HostAggregate result = Iterables.getOnlyElement(api.list()); assertEquals(result, exampleHostAggregate()); @@ -60,7 +60,7 @@ public class HostAggregateApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/host_aggregate_with_host_details.json")).build()) - .getHostAggregateExtensionForZone("az-1.region-a.geo-1").get(); + .getHostAggregateApi("az-1.region-a.geo-1").get(); assertEquals(api.get("1"), exampleHostAggregateWithHost()); } @@ -70,7 +70,7 @@ public class HostAggregateApiExpectTest extends BaseNovaApiExpectTest { HostAggregateApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), - HttpResponse.builder().statusCode(404).build()).getHostAggregateExtensionForZone("az-1.region-a.geo-1").get(); + HttpResponse.builder().statusCode(404).build()).getHostAggregateApi("az-1.region-a.geo-1").get(); assertNull(api.get("1")); } @@ -83,7 +83,7 @@ public class HostAggregateApiExpectTest extends BaseNovaApiExpectTest { .payload(payloadFromStringWithContentType("{\"aggregate\":{\"name\":\"ubuntu1\",\"availability_zone\":\"nova\"}}", MediaType.APPLICATION_JSON)) .endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/host_aggregate_details.json")).build()) - .getHostAggregateExtensionForZone("az-1.region-a.geo-1").get(); + .getHostAggregateApi("az-1.region-a.geo-1").get(); assertEquals(api.createInAvailabilityZone("ubuntu1", "nova"), exampleHostAggregate()); } @@ -93,7 +93,7 @@ public class HostAggregateApiExpectTest extends BaseNovaApiExpectTest { HostAggregateApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), - HttpResponse.builder().statusCode(200).build()).getHostAggregateExtensionForZone("az-1.region-a.geo-1").get(); + HttpResponse.builder().statusCode(200).build()).getHostAggregateApi("az-1.region-a.geo-1").get(); assertTrue(api.delete("1")); } @@ -103,7 +103,7 @@ public class HostAggregateApiExpectTest extends BaseNovaApiExpectTest { HostAggregateApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), - HttpResponse.builder().statusCode(404).build()).getHostAggregateExtensionForZone("az-1.region-a.geo-1").get(); + HttpResponse.builder().statusCode(404).build()).getHostAggregateApi("az-1.region-a.geo-1").get(); assertFalse(api.delete("1")); } @@ -114,7 +114,7 @@ public class HostAggregateApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("POST") .payload(payloadFromStringWithContentType("{\"aggregate\":{\"name\":\"newaggregatename\"}}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResource("/host_aggregate_details.json")).build()).getHostAggregateExtensionForZone("az-1.region-a.geo-1").get(); + HttpResponse.builder().statusCode(200).payload(payloadFromResource("/host_aggregate_details.json")).build()).getHostAggregateApi("az-1.region-a.geo-1").get(); assertEquals(api.updateName("1", "newaggregatename"), exampleHostAggregate()); } @@ -125,7 +125,7 @@ public class HostAggregateApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("POST") .payload(payloadFromStringWithContentType("{\"aggregate\":{\"availability_zone\":\"zone1\"}}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResource("/host_aggregate_details.json")).build()).getHostAggregateExtensionForZone("az-1.region-a.geo-1").get(); + HttpResponse.builder().statusCode(200).payload(payloadFromResource("/host_aggregate_details.json")).build()).getHostAggregateApi("az-1.region-a.geo-1").get(); assertEquals(api.updateAvailabilityZone("1", "zone1"), exampleHostAggregate()); } @@ -136,7 +136,7 @@ public class HostAggregateApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("POST") .payload(payloadFromStringWithContentType("{\"add_host\":{\"host\":\"ubuntu\"}}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResource("/host_aggregate_details.json")).build()).getHostAggregateExtensionForZone("az-1.region-a.geo-1").get(); + HttpResponse.builder().statusCode(200).payload(payloadFromResource("/host_aggregate_details.json")).build()).getHostAggregateApi("az-1.region-a.geo-1").get(); assertEquals(api.addHost("1", "ubuntu"), exampleHostAggregate()); } @@ -147,7 +147,7 @@ public class HostAggregateApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("POST") .payload(payloadFromStringWithContentType("{\"remove_host\":{\"host\":\"ubuntu\"}}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResource("/host_aggregate_details.json")).build()).getHostAggregateExtensionForZone("az-1.region-a.geo-1").get(); + HttpResponse.builder().statusCode(200).payload(payloadFromResource("/host_aggregate_details.json")).build()).getHostAggregateApi("az-1.region-a.geo-1").get(); assertEquals(api.removeHost("1", "ubuntu"), exampleHostAggregate()); } @@ -159,7 +159,7 @@ public class HostAggregateApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("POST") .payload(payloadFromStringWithContentType("{\"set_metadata\":{\"metadata\":{\"mykey\":\"some value or other\"}}}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResource("/host_aggregate_details.json")).build()).getHostAggregateExtensionForZone("az-1.region-a.geo-1").get(); + HttpResponse.builder().statusCode(200).payload(payloadFromResource("/host_aggregate_details.json")).build()).getHostAggregateApi("az-1.region-a.geo-1").get(); assertEquals(api.setMetadata("1", ImmutableMap.of("mykey", "some value or other")), exampleHostAggregate()); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAggregateApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAggregateApiLiveTest.java index 49940a02ea..499d916411 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAggregateApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAggregateApiLiveTest.java @@ -49,9 +49,9 @@ public class HostAggregateApiLiveTest extends BaseNovaApiLiveTest { @Override public void setup() { super.setup(); - String zone = Iterables.getLast(api.getConfiguredZones(), "nova"); - apiOption = api.getHostAggregateExtensionForZone(zone); - hostAdminOption = api.getHostAdministrationExtensionForZone(zone); + String region = Iterables.getLast(api.getConfiguredRegions(), "nova"); + apiOption = api.getHostAggregateApi(region); + hostAdminOption = api.getHostAdministrationApi(region); } @AfterClass(groups = { "integration", "live" }) @@ -99,7 +99,7 @@ public class HostAggregateApiLiveTest extends BaseNovaApiLiveTest { )) { // Apply changes HostAggregate details = api.setMetadata(testAggregate.getId(), theMetaData); - + // bug in openstack - metadata values are never removed, so we just checking what we've set for (Map.Entry entry : theMetaData.entrySet()) { assertEquals(details.getMetadata().get(entry.getKey()), entry.getValue()); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/KeyPairApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/KeyPairApiExpectTest.java index ea04fbea25..ea719e5a29 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/KeyPairApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/KeyPairApiExpectTest.java @@ -50,10 +50,10 @@ public class KeyPairApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, list, listResponse); - assertEquals(apiWhenServersExist.getConfiguredZones(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); + assertEquals(apiWhenServersExist.getConfiguredRegions(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); // NOTE this required a change to the KeyPair domain object toString method - assertEquals(apiWhenServersExist.getKeyPairExtensionForZone("az-1.region-a.geo-1").get().list().toString(), + assertEquals(apiWhenServersExist.getKeyPairApi("az-1.region-a.geo-1").get().list().toString(), new ParseKeyPairListTest().expected().toString()); } @@ -70,7 +70,7 @@ public class KeyPairApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, list, listResponse); - assertTrue(apiWhenNoServersExist.getKeyPairExtensionForZone("az-1.region-a.geo-1").get().list().isEmpty()); + assertTrue(apiWhenNoServersExist.getKeyPairApi("az-1.region-a.geo-1").get().list().isEmpty()); } @@ -90,7 +90,7 @@ public class KeyPairApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, create, createResponse); - assertEquals(apiWhenServersExist.getKeyPairExtensionForZone("az-1.region-a.geo-1").get().create("testkeypair") + assertEquals(apiWhenServersExist.getKeyPairApi("az-1.region-a.geo-1").get().create("testkeypair") .toString(), new ParseKeyPairTest().expected().toString()); } @@ -115,7 +115,7 @@ public class KeyPairApiExpectTest extends BaseNovaApiExpectTest { assertEquals( apiWhenServersExist - .getKeyPairExtensionForZone("az-1.region-a.geo-1") + .getKeyPairApi("az-1.region-a.geo-1") .get() .createWithPublicKey( "testkeypair", @@ -136,7 +136,7 @@ public class KeyPairApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, delete, deleteResponse); - assertTrue(apiWhenServersExist.getKeyPairExtensionForZone("az-1.region-a.geo-1").get().delete("testkeypair")); + assertTrue(apiWhenServersExist.getKeyPairApi("az-1.region-a.geo-1").get().delete("testkeypair")); } public void testGetKeyPairWhenResponseIs2xx() throws Exception { @@ -153,7 +153,7 @@ public class KeyPairApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenKeyPairExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, get, getResponse); - assertEquals(apiWhenKeyPairExists.getKeyPairExtensionForZone("az-1.region-a.geo-1").get().get("testkeypair"), + assertEquals(apiWhenKeyPairExists.getKeyPairApi("az-1.region-a.geo-1").get().get("testkeypair"), new ParseKeyPairTest().expected()); } @@ -170,6 +170,6 @@ public class KeyPairApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenNoKeyPairExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, get, getResponse); - assertNull(apiWhenNoKeyPairExists.getKeyPairExtensionForZone("az-1.region-a.geo-1").get().get("testkeypair")); + assertNull(apiWhenNoKeyPairExists.getKeyPairApi("az-1.region-a.geo-1").get().get("testkeypair")); } } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/KeyPairApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/KeyPairApiLiveTest.java index 4edfed83a9..506960f600 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/KeyPairApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/KeyPairApiLiveTest.java @@ -35,16 +35,16 @@ public class KeyPairApiLiveTest extends BaseNovaApiLiveTest { final String PUBLIC_KEY = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCrrBREFxz3002l1HuXz0+UOdJQ/mOYD5DiJwwB/TOybwIKQJPOxJWA9gBoo4k9dthTKBTaEYbzrll7iZcp59E80S6mNiAr3mUgi+x5Y8uyXeJ2Ws+h6peVyFVUu9epkwpcTd1GVfdcVWsTajwDz9+lxCDhl0RZKDFoT0scTxbj/w== nova@nv-aw2az2-api0002"; public void testListKeyPairs() throws Exception { - for (String zoneId : api.getConfiguredZones()) { - KeyPairApi keyPairApi = api.getKeyPairExtensionForZone(zoneId).get(); + for (String regionId : api.getConfiguredRegions()) { + KeyPairApi keyPairApi = api.getKeyPairApi(regionId).get(); FluentIterable keyPairsList = keyPairApi.list(); assertNotNull(keyPairsList); } } public void testCreateAndGetAndDeleteKeyPair() throws Exception { - for (String zoneId : api.getConfiguredZones()) { - KeyPairApi keyPairApi = api.getKeyPairExtensionForZone(zoneId).get(); + for (String regionId : api.getConfiguredRegions()) { + KeyPairApi keyPairApi = api.getKeyPairApi(regionId).get(); KeyPair createdKeyPair = null; try { createdKeyPair = keyPairApi.create(KEYPAIR_NAME); @@ -63,8 +63,8 @@ public class KeyPairApiLiveTest extends BaseNovaApiLiveTest { } public void testCreateAndDeleteKeyPairWithPublicKey() throws Exception { - for (String zoneId : api.getConfiguredZones()) { - KeyPairApi keyPairApi = api.getKeyPairExtensionForZone(zoneId).get(); + for (String regionId : api.getConfiguredRegions()) { + KeyPairApi keyPairApi = api.getKeyPairApi(regionId).get(); KeyPair createdKeyPair = null; try { createdKeyPair = keyPairApi.createWithPublicKey(KEYPAIR_NAME, PUBLIC_KEY); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/QuotaApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/QuotaApiExpectTest.java index fe876aa118..03501281b7 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/QuotaApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/QuotaApiExpectTest.java @@ -42,7 +42,7 @@ public class QuotaApiExpectTest extends BaseNovaApiExpectTest { QuotaApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResource("/quotas.json")).build()).getQuotaExtensionForZone("az-1.region-a.geo-1").get(); + HttpResponse.builder().statusCode(200).payload(payloadFromResource("/quotas.json")).build()).getQuotaApi("az-1.region-a.geo-1").get(); assertEquals(api.getByTenant("demo"), getTestQuotas()); } @@ -52,7 +52,7 @@ public class QuotaApiExpectTest extends BaseNovaApiExpectTest { QuotaApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), - HttpResponse.builder().statusCode(404).build()).getQuotaExtensionForZone("az-1.region-a.geo-1").get(); + HttpResponse.builder().statusCode(404).build()).getQuotaApi("az-1.region-a.geo-1").get(); assertNull(api.getByTenant("demo")); } @@ -61,7 +61,7 @@ public class QuotaApiExpectTest extends BaseNovaApiExpectTest { QuotaApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResource("/quotas.json")).build()).getQuotaExtensionForZone("az-1.region-a.geo-1").get(); + HttpResponse.builder().statusCode(200).payload(payloadFromResource("/quotas.json")).build()).getQuotaApi("az-1.region-a.geo-1").get(); assertEquals(api.getDefaultsForTenant("demo"), getTestQuotas()); } @@ -71,7 +71,7 @@ public class QuotaApiExpectTest extends BaseNovaApiExpectTest { QuotaApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), - HttpResponse.builder().statusCode(404).build()).getQuotaExtensionForZone("az-1.region-a.geo-1").get(); + HttpResponse.builder().statusCode(404).build()).getQuotaApi("az-1.region-a.geo-1").get(); assertNull(api.getDefaultsForTenant("demo")); } @@ -85,7 +85,7 @@ public class QuotaApiExpectTest extends BaseNovaApiExpectTest { .addHeader("Accept", "application/json") .payload(payloadFromResourceWithContentType("/quotas.json", MediaType.APPLICATION_JSON)) .build(), - HttpResponse.builder().statusCode(200).build()).getQuotaExtensionForZone("az-1.region-a.geo-1").get(); + HttpResponse.builder().statusCode(200).build()).getQuotaApi("az-1.region-a.geo-1").get(); assertTrue(api.updateQuotaOfTenant(getTestQuotas(), "demo")); } @@ -100,7 +100,7 @@ public class QuotaApiExpectTest extends BaseNovaApiExpectTest { .addHeader("Accept", "application/json") .payload(payloadFromResourceWithContentType("/quotas.json", MediaType.APPLICATION_JSON)) .build(), - HttpResponse.builder().statusCode(404).build()).getQuotaExtensionForZone("az-1.region-a.geo-1").get(); + HttpResponse.builder().statusCode(404).build()).getQuotaApi("az-1.region-a.geo-1").get(); api.updateQuotaOfTenant(getTestQuotas(), "demo"); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/QuotaApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/QuotaApiLiveTest.java index d0190dcc96..9d1ecc9162 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/QuotaApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/QuotaApiLiveTest.java @@ -40,8 +40,8 @@ public class QuotaApiLiveTest extends BaseNovaApiLiveTest { public void setup() { super.setup(); tenant = identity.split(":")[0]; - String zone = Iterables.getLast(api.getConfiguredZones(), "nova"); - apiOption = api.getQuotaExtensionForZone(zone); + String region = Iterables.getLast(api.getConfiguredRegions(), "nova"); + apiOption = api.getQuotaApi(region); } public void testGetQuotasForCurrentTenant() { diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApiExpectTest.java index fe692ba3c6..ae108ace56 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApiExpectTest.java @@ -55,9 +55,9 @@ public class SecurityGroupApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, list, listResponse); - assertEquals(apiWhenSecurityGroupsExist.getConfiguredZones(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); + assertEquals(apiWhenSecurityGroupsExist.getConfiguredRegions(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); - assertEquals(apiWhenSecurityGroupsExist.getSecurityGroupExtensionForZone("az-1.region-a.geo-1").get() + assertEquals(apiWhenSecurityGroupsExist.getSecurityGroupApi("az-1.region-a.geo-1").get() .list().toString(), new ParseSecurityGroupListTest().expected().toString()); } @@ -73,7 +73,7 @@ public class SecurityGroupApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, listListSecurityGroups, listListSecurityGroupsResponse); - assertTrue(apiWhenNoSecurityGroupsExist.getSecurityGroupExtensionForZone("az-1.region-a.geo-1").get() + assertTrue(apiWhenNoSecurityGroupsExist.getSecurityGroupApi("az-1.region-a.geo-1").get() .list().isEmpty()); } @@ -91,7 +91,7 @@ public class SecurityGroupApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, getSecurityGroup, getSecurityGroupResponse); - assertEquals(apiWhenSecurityGroupsExist.getSecurityGroupExtensionForZone("az-1.region-a.geo-1").get() + assertEquals(apiWhenSecurityGroupsExist.getSecurityGroupApi("az-1.region-a.geo-1").get() .get("0").toString(), new ParseSecurityGroupTest().expected().toString()); } @@ -107,7 +107,7 @@ public class SecurityGroupApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, getSecurityGroup, getSecurityGroupResponse); - assertNull(apiWhenNoSecurityGroupsExist.getSecurityGroupExtensionForZone("az-1.region-a.geo-1").get() + assertNull(apiWhenNoSecurityGroupsExist.getSecurityGroupApi("az-1.region-a.geo-1").get() .get("0")); } @@ -129,7 +129,7 @@ public class SecurityGroupApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, create, createResponse); - assertEquals(apiWhenSecurityGroupsExist.getSecurityGroupExtensionForZone("az-1.region-a.geo-1").get() + assertEquals(apiWhenSecurityGroupsExist.getSecurityGroupApi("az-1.region-a.geo-1").get() .createWithDescription("jclouds-test", "jclouds-test").toString(), createExpected().toString()); } @@ -147,7 +147,7 @@ public class SecurityGroupApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, delete, deleteResponse); - assertTrue(apiWhenServersExist.getSecurityGroupExtensionForZone("az-1.region-a.geo-1").get() + assertTrue(apiWhenServersExist.getSecurityGroupApi("az-1.region-a.geo-1").get() .delete("160")); } @@ -171,12 +171,12 @@ public class SecurityGroupApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, createRule, createRuleResponse); - assertEquals(apiWhenSecurityGroupsExist.getSecurityGroupExtensionForZone("az-1.region-a.geo-1").get() + assertEquals(apiWhenSecurityGroupsExist.getSecurityGroupApi("az-1.region-a.geo-1").get() .createRuleAllowingCidrBlock("161", Ingress.builder().ipProtocol(IpProtocol.TCP).fromPort(80).toPort(8080).build(), "0.0.0.0/0") .toString(), createRuleExpected().toString()); } - + public void testCreateSecurityGroupRuleForSecurityGroupIdWhenResponseIs2xx() throws Exception { HttpRequest createRule = HttpRequest .builder() @@ -196,7 +196,7 @@ public class SecurityGroupApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, createRule, createRuleResponse); - assertEquals(apiWhenSecurityGroupsExist.getSecurityGroupExtensionForZone("az-1.region-a.geo-1").get() + assertEquals(apiWhenSecurityGroupsExist.getSecurityGroupApi("az-1.region-a.geo-1").get() .createRuleAllowingSecurityGroupId("161", Ingress.builder().ipProtocol(IpProtocol.TCP).fromPort(80).toPort(8080).build(), "999") .toString(), createRuleExpected().toString()); @@ -215,7 +215,7 @@ public class SecurityGroupApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, deleteRule, deleteRuleResponse); - assertTrue(apiWhenSecurityGroupsExist.getSecurityGroupExtensionForZone("az-1.region-a.geo-1").get() + assertTrue(apiWhenSecurityGroupsExist.getSecurityGroupApi("az-1.region-a.geo-1").get() .deleteRule("161")); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApiLiveTest.java index eaf9c0fe49..c930a17c74 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApiLiveTest.java @@ -38,16 +38,16 @@ public class SecurityGroupApiLiveTest extends BaseNovaApiLiveTest { public static final String SECURITY_GROUP_NAME = "testsg"; public void list() throws Exception { - for (String zoneId : api.getConfiguredZones()) { - SecurityGroupApi securityGroupApi = api.getSecurityGroupExtensionForZone(zoneId).get(); + for (String regionId : api.getConfiguredRegions()) { + SecurityGroupApi securityGroupApi = api.getSecurityGroupApi(regionId).get(); Set securityGroupsList = securityGroupApi.list().toSet(); assertNotNull(securityGroupsList); } } public void createGetAndDeleteSecurityGroup() throws Exception { - for (String zoneId : api.getConfiguredZones()) { - SecurityGroupApi securityGroupApi = api.getSecurityGroupExtensionForZone(zoneId).get(); + for (String regionId : api.getConfiguredRegions()) { + SecurityGroupApi securityGroupApi = api.getSecurityGroupApi(regionId).get(); SecurityGroup securityGroup = null; String id; try { @@ -66,8 +66,8 @@ public class SecurityGroupApiLiveTest extends BaseNovaApiLiveTest { } public void createAndDeleteSecurityGroupRule() throws Exception { - for (String zoneId : api.getConfiguredZones()) { - SecurityGroupApi securityGroupApi = api.getSecurityGroupExtensionForZone(zoneId).get(); + for (String regionId : api.getConfiguredRegions()) { + SecurityGroupApi securityGroupApi = api.getSecurityGroupApi(regionId).get(); SecurityGroup securityGroup = null; try { diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ServerWithSecurityGroupsApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ServerWithSecurityGroupsApiExpectTest.java index d770a05e53..c528b9ee76 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ServerWithSecurityGroupsApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ServerWithSecurityGroupsApiExpectTest.java @@ -41,7 +41,7 @@ public class ServerWithSecurityGroupsApiExpectTest extends BaseNovaApiExpectTest responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/server_with_security_groups.json")).build() - ).getServerWithSecurityGroupsExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerWithSecurityGroupsApi("az-1.region-a.geo-1").get(); ServerWithSecurityGroups server = api.get("8d0a6ca5-8849-4b3d-b86e-f24c92490ebb"); assertEquals(server.getId(), "8d0a6ca5-8849-4b3d-b86e-f24c92490ebb"); @@ -55,7 +55,7 @@ public class ServerWithSecurityGroupsApiExpectTest extends BaseNovaApiExpectTest responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getServerWithSecurityGroupsExtensionForZone("az-1.region-a.geo-1").get(); + ).getServerWithSecurityGroupsApi("az-1.region-a.geo-1").get(); assertNull(api.get("8d0a6ca5-8849-4b3d-b86e-f24c92490ebb")); } } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ServerWithSecurityGroupsApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ServerWithSecurityGroupsApiLiveTest.java index 8be4f9a832..a6c326631f 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ServerWithSecurityGroupsApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ServerWithSecurityGroupsApiLiveTest.java @@ -38,15 +38,15 @@ import com.google.common.collect.Iterables; public class ServerWithSecurityGroupsApiLiveTest extends BaseNovaApiLiveTest { private ServerApi serverApi; private Optional apiOption; - private String zone; + private String region; @BeforeGroups(groups = {"integration", "live"}) @Override public void setup() { super.setup(); - zone = Iterables.getLast(api.getConfiguredZones(), "nova"); - serverApi = api.getServerApiForZone(zone); - apiOption = api.getServerWithSecurityGroupsExtensionForZone(zone); + region = Iterables.getLast(api.getConfiguredRegions(), "nova"); + serverApi = api.getServerApi(region); + apiOption = api.getServerWithSecurityGroupsApi(region); } public void testGetServer() { @@ -62,8 +62,8 @@ public class ServerWithSecurityGroupsApiLiveTest extends BaseNovaApiLiveTest { // Create a new server to verify the groups work as expected Server testServer = null; try { - testServer = createServerInZone(zone); - + testServer = createServerInRegion(region); + ServerWithSecurityGroups results = apiOption.get().get(testServer.getId()); assertEquals(results.getId(), testServer.getId()); assertEquals(results.getSecurityGroupNames(), ImmutableSet.of("default")); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SimpleTenantUsageApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SimpleTenantUsageApiExpectTest.java index d04dd8efa3..2f48412e20 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SimpleTenantUsageApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SimpleTenantUsageApiExpectTest.java @@ -52,10 +52,10 @@ public class SimpleTenantUsageApiExpectTest extends BaseNovaApiExpectTest { .endpoint(endpoint).build(), HttpResponse.builder().statusCode(200) .payload(payloadFromResource("/simple_tenant_usages.json")).build()) - .getSimpleTenantUsageExtensionForZone("az-1.region-a.geo-1").get(); - + .getSimpleTenantUsageApi("az-1.region-a.geo-1").get(); + Set results = api.list().toSet(); - + SimpleTenantUsage usage = Iterables.getOnlyElement(results); assertEquals(usage.getTenantId(), "f8535069c3fb404cb61c873b1a0b4921"); assertEquals(usage.getTotalHours(), 4.888888888888889e-07); @@ -78,11 +78,11 @@ public class SimpleTenantUsageApiExpectTest extends BaseNovaApiExpectTest { .endpoint(endpoint).build(), HttpResponse.builder().statusCode(200) .payload(payloadFromResource("/simple_tenant_usage.json")).build()) - .getSimpleTenantUsageExtensionForZone("az-1.region-a.geo-1").get(); + .getSimpleTenantUsageApi("az-1.region-a.geo-1").get(); SimpleTenantUsage usage = api.get("test-1234"); assertEquals(usage.getTenantId(), "f8535069c3fb404cb61c873b1a0b4921"); - + SimpleTenantUsage expected = SimpleTenantUsage.builder().tenantId("f8535069c3fb404cb61c873b1a0b4921").totalHours(4.833333333333333E-7).totalLocalGbUsage(1.933333333333333E-05) .start(dateService.iso8601DateParse("2012-04-18 13:32:07.255743")).stop(dateService.iso8601DateParse("2012-04-18 13:32:07.255743")) .totalMemoryMbUsage(0.0014847999999999999).totalVcpusUsage(7.249999999999999E-07).serverUsages( @@ -90,7 +90,7 @@ public class SimpleTenantUsageApiExpectTest extends BaseNovaApiExpectTest { SimpleServerUsage.builder().hours(2.4166666666666665e-07).uptime(91149).flavorLocalGb(50).instanceName("test1").tenantId("f8535069c3fb404cb61c873b1a0b4921").flavorVcpus(2).flavorMemoryMb(4096).instanceStatus(SimpleServerUsage.Status.ACTIVE).flavorName("m1.medium").instanceCreated(this.dateService.iso8601SecondsDateParse("2012-04-17T12:12:58")).build(), SimpleServerUsage.builder().hours(2.4166666666666665e-07).uptime(84710).flavorLocalGb(30).instanceName("mish_test").tenantId("f8535069c3fb404cb61c873b1a0b4921").flavorVcpus(1).flavorMemoryMb(2048).instanceStatus(SimpleServerUsage.Status.ACTIVE).flavorName("m1.small").instanceCreated(this.dateService.iso8601SecondsDateParse("2012-04-17T14:00:17")).build() )).build(); - + assertEquals(usage, expected); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SimpleTenantUsageApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SimpleTenantUsageApiLiveTest.java index 58b958129c..e562f04513 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SimpleTenantUsageApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SimpleTenantUsageApiLiveTest.java @@ -33,8 +33,8 @@ import com.google.common.base.Optional; public class SimpleTenantUsageApiLiveTest extends BaseNovaApiLiveTest { public void testList() throws Exception { - for (String zoneId : api.getConfiguredZones()) { - Optional optApi = api.getSimpleTenantUsageExtensionForZone(zoneId); + for (String regionId : api.getConfiguredRegions()) { + Optional optApi = api.getSimpleTenantUsageApi(regionId); if (optApi.isPresent() && identity.endsWith(":admin")) { SimpleTenantUsageApi api = optApi.get(); Set usages = api.list().toSet(); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VirtualInterfaceApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VirtualInterfaceApiExpectTest.java index 1e68dbab73..48e6aef06d 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VirtualInterfaceApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VirtualInterfaceApiExpectTest.java @@ -41,7 +41,7 @@ public class VirtualInterfaceApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/virtual_interfaces_list.json")).build() - ).getVirtualInterfaceExtensionForZone("az-1.region-a.geo-1").get(); + ).getVirtualInterfaceApi("az-1.region-a.geo-1").get(); VirtualInterface vif = Iterables.getOnlyElement(api.listOnServer("1")); assertEquals(vif.getId(), "02315827-b05c-4668-9c05-75c68838074a"); @@ -55,7 +55,7 @@ public class VirtualInterfaceApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getVirtualInterfaceExtensionForZone("az-1.region-a.geo-1").get(); + ).getVirtualInterfaceApi("az-1.region-a.geo-1").get(); assertTrue(api.listOnServer("1").isEmpty()); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VirtualInterfaceApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VirtualInterfaceApiLiveTest.java index c27d17c83e..27990a7813 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VirtualInterfaceApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VirtualInterfaceApiLiveTest.java @@ -35,22 +35,21 @@ import com.google.common.collect.Iterables; @Test(groups = "live", testName = "VirtualInterfaceApiLiveTest", singleThreaded = true) public class VirtualInterfaceApiLiveTest extends BaseNovaApiLiveTest { private Optional apiOption; - private String zone; - + private String region; @BeforeClass(groups = {"integration", "live"}) @Override public void setup() { super.setup(); - zone = Iterables.getLast(api.getConfiguredZones(), "nova"); - apiOption = api.getVirtualInterfaceExtensionForZone(zone); + region = Iterables.getLast(api.getConfiguredRegions(), "nova"); + apiOption = api.getVirtualInterfaceApi(region); } public void testListVirtualInterfaces() { if (apiOption.isPresent()) { Server testServer = null; try { - testServer = createServerInZone(zone); + testServer = createServerInRegion(region); Set results = apiOption.get().listOnServer(testServer.getId()).toSet(); for (VirtualInterface vif : results) { assertNotNull(vif.getId()); @@ -58,7 +57,7 @@ public class VirtualInterfaceApiLiveTest extends BaseNovaApiLiveTest { } } finally { if (testServer != null) { - api.getServerApiForZone(zone).delete(testServer.getId()); + api.getServerApi(region).delete(testServer.getId()); } } } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeApiExpectTest.java index e2ba73dd05..520ead2131 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeApiExpectTest.java @@ -56,7 +56,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_list.json")).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); Set volumes = api.list().toSet(); assertEquals(volumes, ImmutableSet.of(testVolume())); @@ -69,7 +69,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); Set volumes = api.list().toSet(); assertTrue(volumes.isEmpty()); @@ -82,7 +82,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_list_detail.json")).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); Set volumes = api.listInDetail().toSet(); assertEquals(volumes, ImmutableSet.of(testVolume())); @@ -95,12 +95,12 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); Set volumes = api.listInDetail().toSet(); assertTrue(volumes.isEmpty()); } - + public void testCreateVolume() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volumes"); VolumeApi api = requestsSendResponses( @@ -111,7 +111,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { .payload(payloadFromStringWithContentType("{\"volume\":{\"display_name\":\"jclouds-test-volume\",\"display_description\":\"description of test volume\",\"size\":1}}", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_details.json")).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); Volume volume = api.create(1, CreateVolumeOptions.Builder.name("jclouds-test-volume").description("description of test volume")); assertEquals(volume, testVolume()); @@ -129,7 +129,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { .payload(payloadFromStringWithContentType("{\"volume\":{\"display_name\":\"jclouds-test-volume\",\"display_description\":\"description of test volume\",\"size\":1}}", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(404).payload(payloadFromResource("/volume_details.json")).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); api.create(1, CreateVolumeOptions.Builder.name("jclouds-test-volume").description("description of test volume")); } @@ -141,7 +141,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_details.json")).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); Volume volume = api.get("1"); assertEquals(volume, testVolume()); @@ -161,7 +161,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); assertNull(api.get("1")); } @@ -173,7 +173,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/attachment_details.json")).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); assertTrue(api.delete("1")); } @@ -185,7 +185,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); assertFalse(api.delete("1")); } @@ -197,7 +197,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/attachment_list.json")).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); Set attachments = api.listAttachmentsOnServer("instance-1").toSet(); assertEquals(attachments, ImmutableSet.of(testAttachment())); @@ -217,11 +217,11 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(401).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); api.listAttachmentsOnServer("instance-2"); } - + public void testGetAttachment() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/instance-1/os-volume_attachments/1"); VolumeApi api = requestsSendResponses( @@ -229,7 +229,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/attachment_details.json")).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); VolumeAttachment attachment = api.getAttachmentForVolumeOnServer("1", "instance-1"); assertEquals(attachment, testAttachment()); @@ -242,7 +242,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); assertNull(api.getAttachmentForVolumeOnServer("1", "instance-1")); } @@ -255,7 +255,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { authenticatedGET().endpoint(endpoint).method("POST") .payload(payloadFromStringWithContentType("{\"volumeAttachment\":{\"volumeId\":\"1\",\"device\":\"/dev/vdc\"}}", MediaType.APPLICATION_JSON)).endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/attachment_details.json")).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); VolumeAttachment result = api.attachVolumeToServerAsDevice("1", "instance-1", "/dev/vdc"); assertEquals(result, testAttachment()); @@ -270,7 +270,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { authenticatedGET().endpoint(endpoint).method("POST") .payload(payloadFromStringWithContentType("{\"volumeAttachment\":{\"volumeId\":\"1\",\"device\":\"/dev/vdc\"}}", MediaType.APPLICATION_JSON)).endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); api.attachVolumeToServerAsDevice("1", "instance-1", "/dev/vdc"); } @@ -282,7 +282,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/attachment_details.json")).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); assertTrue(api.detachVolumeFromServer("1", "instance-1")); } @@ -294,7 +294,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); assertFalse(api.detachVolumeFromServer("1", "instance-1")); } @@ -306,7 +306,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/snapshot_list.json")).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); Set snapshots = api.listSnapshots().toSet(); assertEquals(snapshots, ImmutableSet.of(testSnapshot())); @@ -319,7 +319,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); Set snapshots = api.listSnapshots().toSet(); assertTrue(snapshots.isEmpty()); @@ -332,7 +332,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/snapshot_details.json")).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); VolumeSnapshot snapshot = api.getSnapshot("1"); assertEquals(snapshot, testSnapshot()); @@ -345,7 +345,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); assertNull(api.getSnapshot("1")); } @@ -357,7 +357,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/snapshot_list_detail.json")).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); Set snapshots = api.listSnapshotsInDetail().toSet(); assertEquals(snapshots, ImmutableSet.of(testSnapshot())); @@ -379,12 +379,12 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); Set snapshots = api.listSnapshotsInDetail().toSet(); assertTrue(snapshots.isEmpty()); } - + public void testCreateSnapshot() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-snapshots"); VolumeApi api = requestsSendResponses( @@ -395,7 +395,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { .payload(payloadFromStringWithContentType("{\"snapshot\":{\"display_name\":\"jclouds-live-test\",\"volume_id\":\"13\",\"display_description\":\"jclouds live test snapshot\",\"force\":\"true\"}}", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/snapshot_details.json")).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); VolumeSnapshot snapshot = api.createSnapshot("13", CreateVolumeSnapshotOptions.Builder.name("jclouds-live-test").description("jclouds live test snapshot").force()); assertEquals(snapshot, testSnapshot()); @@ -412,7 +412,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { .payload(payloadFromStringWithContentType("{\"snapshot\":{\"display_name\":\"jclouds-live-test\",\"volume_id\":\"13\",\"display_description\":\"jclouds live test snapshot\",\"force\":\"true\"}}", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(401).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); api.createSnapshot("13", CreateVolumeSnapshotOptions.Builder.name("jclouds-live-test").description("jclouds live test snapshot").force()); } @@ -424,7 +424,7 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/snapshot_details.json")).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); assertTrue(api.deleteSnapshot("1")); } @@ -437,11 +437,11 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(401).build() - ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeApi("az-1.region-a.geo-1").get(); api.deleteSnapshot("1"); } - + protected Volume testVolume() { return Volume.builder().status(Volume.Status.IN_USE).description("This is a test volume").zone("nova").name("test") .attachments(ImmutableSet.of(testAttachment())).size(1).id("1").created(dateService.iso8601SecondsDateParse("2012-04-23 12:16:45")).build(); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeApiLiveTest.java index 930cecd87e..d1d701d8ae 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeApiLiveTest.java @@ -46,7 +46,7 @@ import com.google.common.collect.Iterables; public class VolumeApiLiveTest extends BaseNovaApiLiveTest { private Optional volumeOption; - private String zone; + private String region; private String availabilityZone; private Volume testVolume; @@ -56,11 +56,11 @@ public class VolumeApiLiveTest extends BaseNovaApiLiveTest { @Override public void setup() { super.setup(); - zone = Iterables.getLast(api.getConfiguredZones(), "nova"); - volumeOption = api.getVolumeExtensionForZone(zone); + region = Iterables.getLast(api.getConfiguredRegions(), "nova"); + volumeOption = api.getVolumeApi(region); - Optional availabilityZoneApi = api.getAvailabilityZoneApi(zone); - availabilityZone = availabilityZoneApi.isPresent() ? Iterables.getLast(availabilityZoneApi.get().list()).getName() : zone; + Optional availabilityZoneApi = api.getAvailabilityZoneApi(region); + availabilityZone = availabilityZoneApi.isPresent() ? Iterables.getLast(availabilityZoneApi.get().list()).getName() : region; } @AfterClass(groups = { "integration", "live" }) @@ -221,7 +221,7 @@ public class VolumeApiLiveTest extends BaseNovaApiLiveTest { String server_id = null; try { CreateServerOptions createServerOptions = CreateServerOptions.Builder.availabilityZone(availabilityZone); - final String serverId = server_id = createServerInZone(zone, createServerOptions).getId(); + final String serverId = server_id = createServerInRegion(region, createServerOptions).getId(); Set attachments = volumeOption.get().listAttachmentsOnServer(serverId).toSet(); assertNotNull(attachments); @@ -274,7 +274,7 @@ public class VolumeApiLiveTest extends BaseNovaApiLiveTest { } finally { if (server_id != null) - api.getServerApiForZone(zone).delete(server_id); + api.getServerApi(region).delete(server_id); } } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeAttachmentApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeAttachmentApiExpectTest.java index 57be07c673..b905b57791 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeAttachmentApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeAttachmentApiExpectTest.java @@ -53,7 +53,7 @@ public class VolumeAttachmentApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/attachment_list.json")).build() - ).getVolumeAttachmentExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeAttachmentApi("az-1.region-a.geo-1").get(); Set attachments = api.listAttachmentsOnServer("instance-1").toSet(); assertEquals(attachments, ImmutableSet.of(testAttachment())); @@ -73,11 +73,11 @@ public class VolumeAttachmentApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(401).build() - ).getVolumeAttachmentExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeAttachmentApi("az-1.region-a.geo-1").get(); api.listAttachmentsOnServer("instance-2"); } - + public void testGetAttachment() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/instance-1/os-volume_attachments/1"); VolumeAttachmentApi api = requestsSendResponses( @@ -85,7 +85,7 @@ public class VolumeAttachmentApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/attachment_details.json")).build() - ).getVolumeAttachmentExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeAttachmentApi("az-1.region-a.geo-1").get(); VolumeAttachment attachment = api.getAttachmentForVolumeOnServer("1", "instance-1"); assertEquals(attachment, testAttachment()); @@ -98,7 +98,7 @@ public class VolumeAttachmentApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeAttachmentExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeAttachmentApi("az-1.region-a.geo-1").get(); assertNull(api.getAttachmentForVolumeOnServer("1", "instance-1")); } @@ -111,7 +111,7 @@ public class VolumeAttachmentApiExpectTest extends BaseNovaApiExpectTest { authenticatedGET().endpoint(endpoint).method("POST") .payload(payloadFromStringWithContentType("{\"volumeAttachment\":{\"volumeId\":\"1\",\"device\":\"/dev/vdc\"}}", MediaType.APPLICATION_JSON)).endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/attachment_details.json")).build() - ).getVolumeAttachmentExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeAttachmentApi("az-1.region-a.geo-1").get(); VolumeAttachment result = api.attachVolumeToServerAsDevice("1", "instance-1", "/dev/vdc"); assertEquals(result, testAttachment()); @@ -126,7 +126,7 @@ public class VolumeAttachmentApiExpectTest extends BaseNovaApiExpectTest { authenticatedGET().endpoint(endpoint).method("POST") .payload(payloadFromStringWithContentType("{\"volumeAttachment\":{\"volumeId\":\"1\",\"device\":\"/dev/vdc\"}}", MediaType.APPLICATION_JSON)).endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeAttachmentExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeAttachmentApi("az-1.region-a.geo-1").get(); api.attachVolumeToServerAsDevice("1", "instance-1", "/dev/vdc"); } @@ -138,7 +138,7 @@ public class VolumeAttachmentApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/attachment_details.json")).build() - ).getVolumeAttachmentExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeAttachmentApi("az-1.region-a.geo-1").get(); assertTrue(api.detachVolumeFromServer("1", "instance-1")); } @@ -150,11 +150,11 @@ public class VolumeAttachmentApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeAttachmentExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeAttachmentApi("az-1.region-a.geo-1").get(); assertFalse(api.detachVolumeFromServer("1", "instance-1")); } - + protected Volume testVolume() { return Volume.builder().status(Volume.Status.IN_USE).description("This is a test volume").zone("nova").name("test") .attachments(ImmutableSet.of(testAttachment())).size(1).id("1").created(dateService.iso8601SecondsDateParse("2012-04-23 12:16:45")).build(); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeAttachmentApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeAttachmentApiLiveTest.java index 473e5c7cd2..3c34563e14 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeAttachmentApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeAttachmentApiLiveTest.java @@ -44,17 +44,17 @@ public class VolumeAttachmentApiLiveTest extends BaseNovaApiLiveTest { private Optional volumeApi; private Optional volumeAttachmentApi; - - private String zone; + + private String region; private Volume testVolume; @BeforeClass(groups = {"integration", "live"}) @Override public void setup() { super.setup(); - zone = Iterables.getLast(api.getConfiguredZones(), "nova"); - volumeApi = api.getVolumeExtensionForZone(zone); - volumeAttachmentApi = api.getVolumeAttachmentExtensionForZone(zone); + region = Iterables.getLast(api.getConfiguredRegions(), "nova"); + volumeApi = api.getVolumeApi(region); + volumeAttachmentApi = api.getVolumeAttachmentApi(region); } @AfterClass(groups = { "integration", "live" }) @@ -80,7 +80,7 @@ public class VolumeAttachmentApiLiveTest extends BaseNovaApiLiveTest { CreateVolumeOptions options = CreateVolumeOptions.Builder .name("jclouds-test-volume") .description("description of test volume") - .availabilityZone(zone); + .availabilityZone(region); testVolume = volumeApi.get().create(1, options); assertTrue(retry(new Predicate() { @@ -96,9 +96,9 @@ public class VolumeAttachmentApiLiveTest extends BaseNovaApiLiveTest { if (volumeApi.isPresent()) { String server_id = null; try { - final String serverId = server_id = createServerInZone(zone).getId(); + final String serverId = server_id = createServerInRegion(region).getId(); - Set attachments = + Set attachments = volumeAttachmentApi.get().listAttachmentsOnServer(serverId).toSet(); assertNotNull(attachments); final int before = attachments.size(); @@ -146,7 +146,7 @@ public class VolumeAttachmentApiLiveTest extends BaseNovaApiLiveTest { } finally { if (server_id != null) - api.getServerApiForZone(zone).delete(server_id); + api.getServerApi(region).delete(server_id); } } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApiExpectTest.java index 2e84833709..2c8e8c003d 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApiExpectTest.java @@ -51,7 +51,7 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_type_list.json")).build() - ).getVolumeTypeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeTypeApi("az-1.region-a.geo-1").get(); Set types = api.list().toSet(); assertEquals(types, ImmutableSet.of(testVolumeType())); @@ -64,7 +64,7 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_type.json")).build() - ).getVolumeTypeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeTypeApi("az-1.region-a.geo-1").get(); VolumeType type = api.get("8"); assertEquals(type, testVolumeType()); @@ -77,7 +77,7 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeTypeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeTypeApi("az-1.region-a.geo-1").get(); assertNull(api.get("8")); } @@ -91,7 +91,7 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest { .payload(payloadFromStringWithContentType("{\"volume_type\":{\"name\":\"jclouds-test-1\"}}", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_type.json")).build() - ).getVolumeTypeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeTypeApi("az-1.region-a.geo-1").get(); VolumeType type = api.create("jclouds-test-1"); assertEquals(type, testVolumeType()); @@ -106,7 +106,7 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest { .payload(payloadFromStringWithContentType("{\"volume_type\":{\"name\":\"jclouds-test-1\",\"extra_specs\":{}}}", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_type.json")).build() - ).getVolumeTypeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeTypeApi("az-1.region-a.geo-1").get(); VolumeType type = api.create("jclouds-test-1", CreateVolumeTypeOptions.NONE); assertEquals(type, testVolumeType()); @@ -121,7 +121,7 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest { .payload(payloadFromStringWithContentType("{\"volume_type\":{\"name\":\"jclouds-test-1\",\"extra_specs\":{\"x\": \"y\"}}}", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_type.json")).build() - ).getVolumeTypeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeTypeApi("az-1.region-a.geo-1").get(); VolumeType type = api.create("jclouds-test-1", CreateVolumeTypeOptions.Builder.specs(ImmutableMap.of("x", "y"))); assertEquals(type, testVolumeType()); @@ -134,7 +134,7 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(200).build() - ).getVolumeTypeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeTypeApi("az-1.region-a.geo-1").get(); assertTrue(api.delete("8")); } @@ -146,7 +146,7 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeTypeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeTypeApi("az-1.region-a.geo-1").get(); assertFalse(api.delete("8")); } @@ -158,7 +158,7 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_type_extra_specs.json")).build() - ).getVolumeTypeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeTypeApi("az-1.region-a.geo-1").get(); assertEquals(api.getExtraSpecs("9"), ImmutableMap.of("test", "value1")); } @@ -170,7 +170,7 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeTypeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeTypeApi("az-1.region-a.geo-1").get(); assertTrue(api.getExtraSpecs("9").isEmpty()); } @@ -184,7 +184,7 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest { .method("POST") .payload(payloadFromStringWithContentType("{\"extra_specs\":{\"test1\":\"somevalue\"}}", MediaType.APPLICATION_JSON)).build(), HttpResponse.builder().statusCode(200).build() - ).getVolumeTypeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeTypeApi("az-1.region-a.geo-1").get(); assertTrue(api.updateExtraSpecs("9", ImmutableMap.of("test1", "somevalue"))); } @@ -198,7 +198,7 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest { .method("PUT") .payload(payloadFromStringWithContentType("{\"test1\":\"somevalue\"}", MediaType.APPLICATION_JSON)).build(), HttpResponse.builder().statusCode(200).build() - ).getVolumeTypeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeTypeApi("az-1.region-a.geo-1").get(); assertTrue(api.updateExtraSpec("5", "test1", "somevalue")); } @@ -210,7 +210,7 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromStringWithContentType("{\"test1\":\"another value\"}", MediaType.APPLICATION_JSON)).build() - ).getVolumeTypeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeTypeApi("az-1.region-a.geo-1").get(); assertEquals(api.getExtraSpec("5", "test1"), "another value"); } @@ -222,7 +222,7 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeTypeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeTypeApi("az-1.region-a.geo-1").get(); assertNull(api.getExtraSpec("5", "test1")); } @@ -234,7 +234,7 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(200).build() - ).getVolumeTypeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeTypeApi("az-1.region-a.geo-1").get(); assertTrue(api.deleteExtraSpec("5", "test1")); } @@ -246,7 +246,7 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(404).build() - ).getVolumeTypeExtensionForZone("az-1.region-a.geo-1").get(); + ).getVolumeTypeApi("az-1.region-a.geo-1").get(); assertFalse(api.deleteExtraSpec("5", "test1")); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApiLiveTest.java index 4dda6bbc3f..84b47cc863 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApiLiveTest.java @@ -43,7 +43,7 @@ import com.google.common.collect.Iterables; public class VolumeTypeApiLiveTest extends BaseNovaApiLiveTest { private Optional volumeTypeOption; - private String zone; + private String region; private VolumeType testVolumeType; @@ -51,8 +51,8 @@ public class VolumeTypeApiLiveTest extends BaseNovaApiLiveTest { @Override public void setup() { super.setup(); - zone = Iterables.getLast(api.getConfiguredZones(), "nova"); - volumeTypeOption = api.getVolumeTypeExtensionForZone(zone); + region = Iterables.getLast(api.getConfiguredRegions(), "nova"); + volumeTypeOption = api.getVolumeTypeApi(region); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ExtensionApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ExtensionApiExpectTest.java index 8c58fa398a..6b8d279487 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ExtensionApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ExtensionApiExpectTest.java @@ -50,9 +50,9 @@ public class ExtensionApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenExtensionsExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, listExtensions, listExtensionsResponse); - assertEquals(apiWhenExtensionsExist.getConfiguredZones(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); + assertEquals(apiWhenExtensionsExist.getConfiguredRegions(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); - assertEquals(apiWhenExtensionsExist.getExtensionApiForZone("az-1.region-a.geo-1").list().toString(), + assertEquals(apiWhenExtensionsExist.getExtensionApi("az-1.region-a.geo-1").list().toString(), new ParseExtensionListTest().expected().toString()); } @@ -69,7 +69,7 @@ public class ExtensionApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, listExtensions, listExtensionsResponse); - assertTrue(apiWhenNoServersExist.getExtensionApiForZone("az-1.region-a.geo-1").list().isEmpty()); + assertTrue(apiWhenNoServersExist.getExtensionApi("az-1.region-a.geo-1").list().isEmpty()); } // TODO: gson deserializer for Multimap @@ -87,7 +87,7 @@ public class ExtensionApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenExtensionsExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, getExtension, getExtensionResponse); - assertEquals(apiWhenExtensionsExist.getExtensionApiForZone("az-1.region-a.geo-1").get("RS-PIE") + assertEquals(apiWhenExtensionsExist.getExtensionApi("az-1.region-a.geo-1").get("RS-PIE") .toString(), new ParseExtensionTest().expected().toString()); } @@ -105,6 +105,6 @@ public class ExtensionApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenNoExtensionsExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, getExtension, getExtensionResponse); - assertNull(apiWhenNoExtensionsExist.getExtensionApiForZone("az-1.region-a.geo-1").get("RS-PIE")); + assertNull(apiWhenNoExtensionsExist.getExtensionApi("az-1.region-a.geo-1").get("RS-PIE")); } } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ExtensionApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ExtensionApiLiveTest.java index 153603ad4c..2db531f2db 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ExtensionApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ExtensionApiLiveTest.java @@ -35,13 +35,13 @@ public class ExtensionApiLiveTest extends BaseNovaApiLiveTest { /** * Tests the listing of Extensions. - * + * * @throws Exception */ @Test(description = "GET /v${apiVersion}/{tenantId}/extensions") public void testListExtensions() throws Exception { - for (String zoneId : zones) { - ExtensionApi extensionApi = api.getExtensionApiForZone(zoneId); + for (String regionId : regions) { + ExtensionApi extensionApi = api.getExtensionApi(regionId); Set response = extensionApi.list(); assertNotNull(response); assertFalse(response.isEmpty()); @@ -58,13 +58,13 @@ public class ExtensionApiLiveTest extends BaseNovaApiLiveTest { /** * Tests retrieval of Extensions using their alias. - * + * * @throws Exception */ @Test(description = "GET /v${apiVersion}/{tenantId}/extensions/{alias}", dependsOnMethods = { "testListExtensions" }) public void testGetExtensionByAlias() throws Exception { - for (String zoneId : zones) { - ExtensionApi extensionApi = api.getExtensionApiForZone(zoneId); + for (String regionId : regions) { + ExtensionApi extensionApi = api.getExtensionApi(regionId); Set response = extensionApi.list(); for (Extension extension : response) { Extension details = extensionApi.get(extension.getId()); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/FlavorApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/FlavorApiExpectTest.java index c52e9b57de..d6cb506a81 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/FlavorApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/FlavorApiExpectTest.java @@ -56,9 +56,9 @@ public class FlavorApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenFlavorsExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, listFlavors, listFlavorsResponse); - assertEquals(apiWhenFlavorsExist.getConfiguredZones(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); + assertEquals(apiWhenFlavorsExist.getConfiguredRegions(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); - assertEquals(apiWhenFlavorsExist.getFlavorApiForZone("az-1.region-a.geo-1").list().concat().toString(), + assertEquals(apiWhenFlavorsExist.getFlavorApi("az-1.region-a.geo-1").list().concat().toString(), new ParseFlavorListTest().expected().toString()); } @@ -75,7 +75,7 @@ public class FlavorApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, listFlavors, listFlavorsResponse); - assertTrue(apiWhenNoServersExist.getFlavorApiForZone("az-1.region-a.geo-1").list().concat().isEmpty()); + assertTrue(apiWhenNoServersExist.getFlavorApi("az-1.region-a.geo-1").list().concat().isEmpty()); } // TODO: gson deserializer for Multimap @@ -94,7 +94,7 @@ public class FlavorApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, getFlavor, getFlavorResponse); assertEquals( - apiWhenFlavorsExist.getFlavorApiForZone("az-1.region-a.geo-1").get("52415800-8b69-11e0-9b19-734f1195ff37") + apiWhenFlavorsExist.getFlavorApi("az-1.region-a.geo-1").get("52415800-8b69-11e0-9b19-734f1195ff37") .toString(), new ParseFlavorTest().expected().toString()); } @@ -111,7 +111,7 @@ public class FlavorApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenNoFlavorsExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, getFlavor, getFlavorResponse); - assertNull(apiWhenNoFlavorsExist.getFlavorApiForZone("az-1.region-a.geo-1").get("123")); + assertNull(apiWhenNoFlavorsExist.getFlavorApi("az-1.region-a.geo-1").get("123")); } public void testCreateFlavor200() throws Exception { @@ -130,7 +130,7 @@ public class FlavorApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, listFlavors, listFlavorsResponse); assertEquals( - api.getFlavorApiForZone("az-1.region-a.geo-1").create(Flavor.builder() + api.getFlavorApi("az-1.region-a.geo-1").create(Flavor.builder() .id("1cb47a44-9b84-4da4-bf81-c1976e8414ab") .name("128 MB Server").ram(128).vcpus(1) .disk(10).build()) @@ -151,6 +151,6 @@ public class FlavorApiExpectTest extends BaseNovaApiExpectTest { NovaApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, updateMetadata, updateMetadataResponse); - api.getFlavorApiForZone("az-1.region-a.geo-1").delete(flavorId); + api.getFlavorApi("az-1.region-a.geo-1").delete(flavorId); } } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/FlavorApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/FlavorApiLiveTest.java index bd10bea8ee..a76fd800fd 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/FlavorApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/FlavorApiLiveTest.java @@ -36,13 +36,13 @@ public class FlavorApiLiveTest extends BaseNovaApiLiveTest { /** * Tests the listing of Flavors. - * + * * @throws Exception */ @Test(description = "GET /v${apiVersion}/{tenantId}/flavors") public void testListFlavors() throws Exception { - for (String zoneId : zones) { - FlavorApi flavorApi = api.getFlavorApiForZone(zoneId); + for (String regionId : regions) { + FlavorApi flavorApi = api.getFlavorApi(regionId); Set response = flavorApi.list().concat().toSet(); assertNotNull(response); assertFalse(response.isEmpty()); @@ -56,13 +56,13 @@ public class FlavorApiLiveTest extends BaseNovaApiLiveTest { /** * Tests the listing of Flavors in detail. - * + * * @throws Exception */ @Test(description = "GET /v${apiVersion}/{tenantId}/flavors/detail") public void testListFlavorsInDetail() throws Exception { - for (String zoneId : zones) { - FlavorApi flavorApi = api.getFlavorApiForZone(zoneId); + for (String regionId : regions) { + FlavorApi flavorApi = api.getFlavorApi(regionId); Set response = flavorApi.listInDetail().concat().toSet(); assertNotNull(response); assertFalse(response.isEmpty()); @@ -79,13 +79,13 @@ public class FlavorApiLiveTest extends BaseNovaApiLiveTest { /** * Tests getting Flavors by id. - * + * * @throws Exception */ @Test(description = "GET /v${apiVersion}/{tenantId}/flavors/{id}", dependsOnMethods = { "testListFlavorsInDetail" }) public void testGetFlavorById() throws Exception { - for (String zoneId : zones) { - FlavorApi flavorApi = api.getFlavorApiForZone(zoneId); + for (String regionId : regions) { + FlavorApi flavorApi = api.getFlavorApi(regionId); Set response = flavorApi.listInDetail().concat().toSet(); for (Flavor flavor : response) { Flavor details = flavorApi.get(flavor.getId()); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ImageApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ImageApiExpectTest.java index d3a5231852..d70b111a77 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ImageApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ImageApiExpectTest.java @@ -54,9 +54,9 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenImagesExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, list, listResponse); - assertEquals(apiWhenImagesExist.getConfiguredZones(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); + assertEquals(apiWhenImagesExist.getConfiguredRegions(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); - assertEquals(apiWhenImagesExist.getImageApiForZone("az-1.region-a.geo-1").list().concat().toString(), + assertEquals(apiWhenImagesExist.getImageApi("az-1.region-a.geo-1").list().concat().toString(), new ParseImageListTest().expected().toString()); } @@ -73,7 +73,7 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, list, listResponse); - assertTrue(apiWhenNoServersExist.getImageApiForZone("az-1.region-a.geo-1").list().concat().isEmpty()); + assertTrue(apiWhenNoServersExist.getImageApi("az-1.region-a.geo-1").list().concat().isEmpty()); } public void testGetImageWhenResponseIs2xx() throws Exception { @@ -92,7 +92,7 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, getImage, getImageResponse); assertEquals( - apiWhenImagesExist.getImageApiForZone("az-1.region-a.geo-1").get("52415800-8b69-11e0-9b19-734f5736d2a2") + apiWhenImagesExist.getImageApi("az-1.region-a.geo-1").get("52415800-8b69-11e0-9b19-734f5736d2a2") .toString(), new ParseImageTest().expected().toString()); } @@ -109,7 +109,7 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenNoImagesExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, getImage, getImageResponse); - assertNull(apiWhenNoImagesExist.getImageApiForZone("az-1.region-a.geo-1").get("52415800-8b69-11e0-9b19-734f5736d2a2")); + assertNull(apiWhenNoImagesExist.getImageApi("az-1.region-a.geo-1").get("52415800-8b69-11e0-9b19-734f5736d2a2")); } public void testListMetadataWhenResponseIs2xx() throws Exception { @@ -127,7 +127,7 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, getMetadata, getMetadataResponse); - assertEquals(apiWhenServerExists.getImageApiForZone("az-1.region-a.geo-1").getMetadata(imageId).toString(), + assertEquals(apiWhenServerExists.getImageApi("az-1.region-a.geo-1").getMetadata(imageId).toString(), new ParseMetadataListTest().expected().toString()); } @@ -146,7 +146,7 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, getMetadata, getMetadataResponse); try { - apiWhenServerExists.getImageApiForZone("az-1.region-a.geo-1").getMetadata(imageId); + apiWhenServerExists.getImageApi("az-1.region-a.geo-1").getMetadata(imageId); fail("Expected an exception."); } catch (Exception e) { // expected @@ -175,7 +175,7 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenImageExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, setMetadata, setMetadataResponse); - assertEquals(apiWhenImageExists.getImageApiForZone("az-1.region-a.geo-1").setMetadata(imageId, metadata).toString(), + assertEquals(apiWhenImageExists.getImageApi("az-1.region-a.geo-1").setMetadata(imageId, metadata).toString(), new ParseMetadataListTest().expected().toString()); } @@ -201,7 +201,7 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, setMetadata, setMetadataResponse); try { - apiWhenServerExists.getImageApiForZone("az-1.region-a.geo-1").setMetadata(imageId, metadata); + apiWhenServerExists.getImageApi("az-1.region-a.geo-1").setMetadata(imageId, metadata); fail("Expected an exception."); } catch (Exception e) { // expected @@ -230,7 +230,7 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, setMetadata, setMetadataResponse); - assertEquals(apiWhenServerExists.getImageApiForZone("az-1.region-a.geo-1").updateMetadata(imageId, metadata).toString(), + assertEquals(apiWhenServerExists.getImageApi("az-1.region-a.geo-1").updateMetadata(imageId, metadata).toString(), new ParseMetadataUpdateTest().expected().toString()); } @@ -256,7 +256,7 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, setMetadata, setMetadataResponse); try { - apiWhenServerExists.getImageApiForZone("az-1.region-a.geo-1").setMetadata(imageId, metadata); + apiWhenServerExists.getImageApi("az-1.region-a.geo-1").setMetadata(imageId, metadata); fail("Expected an exception."); } catch (Exception e) { // expected @@ -280,7 +280,7 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, getMetadata, getMetadataResponse); - assertEquals(apiWhenServerExists.getImageApiForZone("az-1.region-a.geo-1").getMetadata(imageId, "Image Version").toString(), + assertEquals(apiWhenServerExists.getImageApi("az-1.region-a.geo-1").getMetadata(imageId, "Image Version").toString(), "2.5"); } @@ -301,7 +301,7 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenImageExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, getMetadata, getMetadataResponse); - assertNull(apiWhenImageExists.getImageApiForZone("az-1.region-a.geo-1").getMetadata(imageId, key)); + assertNull(apiWhenImageExists.getImageApi("az-1.region-a.geo-1").getMetadata(imageId, key)); } public void testSetMetadataItemWhenResponseIs2xx() throws Exception { @@ -322,7 +322,7 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, updateMetadata, updateMetadataResponse); - assertEquals(apiWhenServerExists.getImageApiForZone("az-1.region-a.geo-1").updateMetadata(imageId, key, "2.5").toString(), + assertEquals(apiWhenServerExists.getImageApi("az-1.region-a.geo-1").updateMetadata(imageId, key, "2.5").toString(), "2.5"); } @@ -342,7 +342,7 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenImageExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, deleteMetadata, deleteMetadataResponse); - apiWhenImageExists.getImageApiForZone("az-1.region-a.geo-1").deleteMetadata(imageId, key); + apiWhenImageExists.getImageApi("az-1.region-a.geo-1").deleteMetadata(imageId, key); } public void testDeleteMetadataItemWhenResponseIs404() throws Exception { @@ -361,6 +361,6 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenImageExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, deleteMetadata, deleteMetadataResponse); - apiWhenImageExists.getImageApiForZone("az-1.region-a.geo-1").deleteMetadata(imageId, key); + apiWhenImageExists.getImageApi("az-1.region-a.geo-1").deleteMetadata(imageId, key); } } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ImageApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ImageApiLiveTest.java index 076201761a..288ba052d9 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ImageApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ImageApiLiveTest.java @@ -36,8 +36,8 @@ public class ImageApiLiveTest extends BaseNovaApiLiveTest { @Test(description = "GET /v${apiVersion}/{tenantId}/images") public void testListImages() throws Exception { - for (String zoneId : zones) { - ImageApi imageApi = api.getImageApiForZone(zoneId); + for (String regionId : regions) { + ImageApi imageApi = api.getImageApi(regionId); Set response = imageApi.list().concat().toSet(); assertNotNull(response); assertFalse(response.isEmpty()); @@ -51,8 +51,8 @@ public class ImageApiLiveTest extends BaseNovaApiLiveTest { @Test(description = "GET /v${apiVersion}/{tenantId}/images/detail") public void testListImagesInDetail() throws Exception { - for (String zoneId : api.getConfiguredZones()) { - ImageApi imageApi = api.getImageApiForZone(zoneId); + for (String regionId : api.getConfiguredRegions()) { + ImageApi imageApi = api.getImageApi(regionId); Set response = imageApi.listInDetail().concat().toSet(); assertNotNull(response); assertFalse(response.isEmpty()); @@ -75,8 +75,8 @@ public class ImageApiLiveTest extends BaseNovaApiLiveTest { @Test(description = "GET /v${apiVersion}/{tenantId}/images/{id}", dependsOnMethods = { "testListImagesInDetail" }) public void testGetImageById() throws Exception { - for (String zoneId : api.getConfiguredZones()) { - ImageApi imageApi = api.getImageApiForZone(zoneId); + for (String regionId : api.getConfiguredRegions()) { + ImageApi imageApi = api.getImageApi(regionId); Set response = imageApi.listInDetail().concat().toSet(); for (Image image : response) { Image details = imageApi.get(image.getId()); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ServerApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ServerApiExpectTest.java index cfee8a6bc6..e5fecfc841 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ServerApiExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ServerApiExpectTest.java @@ -58,9 +58,9 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, listServers, listServersResponse); - assertEquals(apiWhenServersExist.getConfiguredZones(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); + assertEquals(apiWhenServersExist.getConfiguredRegions(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); - assertEquals(apiWhenServersExist.getServerApiForZone("az-1.region-a.geo-1").list().concat().toString(), + assertEquals(apiWhenServersExist.getServerApi("az-1.region-a.geo-1").list().concat().toString(), new ParseServerListTest().expected().toString()); } @@ -76,7 +76,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, listServers, listServersResponse); - assertTrue(apiWhenNoServersExist.getServerApiForZone("az-1.region-a.geo-1").list().concat().isEmpty()); + assertTrue(apiWhenNoServersExist.getServerApi("az-1.region-a.geo-1").list().concat().isEmpty()); } public void testListInDetailServersWhenResponseIs2xx() throws Exception { @@ -93,9 +93,9 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, listServers, listInDetailServersResponse); - assertEquals(apiWhenServersExist.getConfiguredZones(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); + assertEquals(apiWhenServersExist.getConfiguredRegions(), ImmutableSet.of("az-1.region-a.geo-1", "az-2.region-a.geo-1", "az-3.region-a.geo-1")); - assertEquals(apiWhenServersExist.getServerApiForZone("az-1.region-a.geo-1").listInDetail().concat().toString(), + assertEquals(apiWhenServersExist.getServerApi("az-1.region-a.geo-1").listInDetail().concat().toString(), new ParseServerDetailsStatesTest().expected().toString()); } @@ -112,7 +112,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, listServers, listInDetailServersResponse); - assertTrue(apiWhenNoServersExist.getServerApiForZone("az-1.region-a.geo-1").listInDetail().concat().isEmpty()); + assertTrue(apiWhenNoServersExist.getServerApi("az-1.region-a.geo-1").listInDetail().concat().isEmpty()); } public void testCreateServerWhenResponseIs202() throws Exception { @@ -131,7 +131,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWithNewServer = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, createServer, createServerResponse); - assertEquals(apiWithNewServer.getServerApiForZone("az-1.region-a.geo-1").create("test-e92", "1241", "100").toString(), + assertEquals(apiWithNewServer.getServerApi("az-1.region-a.geo-1").create("test-e92", "1241", "100").toString(), new ParseCreatedServerTest().expected().toString()); } @@ -153,7 +153,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { CreateServerOptions options = new CreateServerOptions().availabilityZone("nova"); - assertEquals(apiWithNewServer.getServerApiForZone("az-1.region-a.geo-1").create("test-e92", "1241", "100", options).toString(), + assertEquals(apiWithNewServer.getServerApi("az-1.region-a.geo-1").create("test-e92", "1241", "100", options).toString(), new ParseCreatedServerTest().expected().toString()); } @@ -173,7 +173,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWithNewServer = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, createServer, createServerResponse); - assertEquals(apiWithNewServer.getServerApiForZone("az-1.region-a.geo-1").create("test-e92", "1241", + assertEquals(apiWithNewServer.getServerApi("az-1.region-a.geo-1").create("test-e92", "1241", "100", new CreateServerOptions().securityGroupNames("group1", "group2")).toString(), new ParseCreatedServerTest().expected().toString()); } @@ -194,7 +194,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWithNewServer = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, createServer, createServerResponse); - assertEquals(apiWithNewServer.getServerApiForZone("az-1.region-a.geo-1").create("test-e92", "1241", + assertEquals(apiWithNewServer.getServerApi("az-1.region-a.geo-1").create("test-e92", "1241", "100", new CreateServerOptions().networks("b3856ac0-f481-11e2-b778-0800200c9a66", "bf0f0f90-f481-11e2-b778-0800200c9a66")).toString(), new ParseCreatedServerTest().expected().toString()); } @@ -216,7 +216,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, createServer, createServerResponse); - assertEquals(apiWithNewServer.getServerApiForZone("az-1.region-a.geo-1").create("test-e92", "1241", + assertEquals(apiWithNewServer.getServerApi("az-1.region-a.geo-1").create("test-e92", "1241", "100", new CreateServerOptions().diskConfig(Server.DISK_CONFIG_AUTO)).toString(), new ParseCreatedServerTest().expectedWithDiskConfig(Server.DISK_CONFIG_AUTO).toString()); } @@ -238,7 +238,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, createServer, createServerResponse); - assertEquals(apiWithNewServer.getServerApiForZone("az-1.region-a.geo-1").create("test-e92", "1241", + assertEquals(apiWithNewServer.getServerApi("az-1.region-a.geo-1").create("test-e92", "1241", "100", new CreateServerOptions().diskConfig(Server.DISK_CONFIG_MANUAL)).toString(), new ParseCreatedServerTest().expectedWithDiskConfig(Server.DISK_CONFIG_MANUAL).toString()); } @@ -261,7 +261,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { RebuildServerOptions options = new RebuildServerOptions().withImage("1234").name("newName").adminPass("password").ipv4Address("1.1.1.1").ipv6Address("fe80::100"); - apiRebuildServer.getServerApiForZone("az-1.region-a.geo-1").rebuild(serverId, options); + apiRebuildServer.getServerApi("az-1.region-a.geo-1").rebuild(serverId, options); } public void testCreateImageWhenResponseIs2xx() throws Exception { @@ -286,7 +286,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, createImage, createImageResponse); - assertEquals(apiWhenServerExists.getServerApiForZone("az-1.region-a.geo-1").createImageFromServer(imageName, serverId), + assertEquals(apiWhenServerExists.getServerApi("az-1.region-a.geo-1").createImageFromServer(imageName, serverId), imageId); } @@ -309,7 +309,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, createImage, createImageResponse); try { - apiWhenServerDoesNotExist.getServerApiForZone("az-1.region-a.geo-1").createImageFromServer(imageName, serverId); + apiWhenServerDoesNotExist.getServerApi("az-1.region-a.geo-1").createImageFromServer(imageName, serverId); fail("Expected an exception."); } catch (Exception e) { // expected @@ -332,7 +332,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, stopServer, stopServerResponse); - apiWhenServerExists.getServerApiForZone("az-1.region-a.geo-1").stop(serverId); + apiWhenServerExists.getServerApi("az-1.region-a.geo-1").stop(serverId); } public void testStopServerWhenResponseIs404() throws Exception { @@ -352,7 +352,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, stopServer, stopServerResponse); try { - apiWhenServerExists.getServerApiForZone("az-1.region-a.geo-1").stop(serverId); + apiWhenServerExists.getServerApi("az-1.region-a.geo-1").stop(serverId); fail("Expected an exception."); } catch (Exception e) { // expected @@ -376,7 +376,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, startServer, startServerResponse); - apiWhenServerExists.getServerApiForZone("az-1.region-a.geo-1").start(serverId); + apiWhenServerExists.getServerApi("az-1.region-a.geo-1").start(serverId); } public void testStartServerWhenResponseIs404() throws Exception { @@ -396,7 +396,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, startServer, startServerResponse); try { - apiWhenServerExists.getServerApiForZone("az-1.region-a.geo-1").start(serverId); + apiWhenServerExists.getServerApi("az-1.region-a.geo-1").start(serverId); fail("Expected an exception."); } catch (Exception e) { // expected @@ -418,7 +418,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, getMetadata, getMetadataResponse); - assertEquals(apiWhenServerExists.getServerApiForZone("az-1.region-a.geo-1").getMetadata(serverId).toString(), + assertEquals(apiWhenServerExists.getServerApi("az-1.region-a.geo-1").getMetadata(serverId).toString(), new ParseMetadataListTest().expected().toString()); } @@ -437,7 +437,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, getMetadata, getMetadataResponse); try { - apiWhenServerExists.getServerApiForZone("az-1.region-a.geo-1").getMetadata(serverId); + apiWhenServerExists.getServerApi("az-1.region-a.geo-1").getMetadata(serverId); fail("Expected an exception."); } catch (Exception e) { // expected @@ -466,7 +466,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, setMetadata, setMetadataResponse); - assertEquals(apiWhenServerExists.getServerApiForZone("az-1.region-a.geo-1").setMetadata(serverId, metadata).toString(), + assertEquals(apiWhenServerExists.getServerApi("az-1.region-a.geo-1").setMetadata(serverId, metadata).toString(), new ParseMetadataListTest().expected().toString()); } @@ -492,7 +492,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, setMetadata, setMetadataResponse); try { - apiWhenServerExists.getServerApiForZone("az-1.region-a.geo-1").setMetadata(serverId, metadata); + apiWhenServerExists.getServerApi("az-1.region-a.geo-1").setMetadata(serverId, metadata); fail("Expected an exception."); } catch (Exception e) { // expected @@ -521,7 +521,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, setMetadata, setMetadataResponse); - assertEquals(apiWhenServerExists.getServerApiForZone("az-1.region-a.geo-1").updateMetadata(serverId, metadata).toString(), + assertEquals(apiWhenServerExists.getServerApi("az-1.region-a.geo-1").updateMetadata(serverId, metadata).toString(), new ParseMetadataUpdateTest().expected().toString()); } @@ -548,7 +548,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, setMetadata, setMetadataResponse); try { - apiWhenServerExists.getServerApiForZone("az-1.region-a.geo-1").setMetadata(serverId, metadata); + apiWhenServerExists.getServerApi("az-1.region-a.geo-1").setMetadata(serverId, metadata); fail("Expected an exception."); } catch (Exception e) { // expected @@ -573,7 +573,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, getMetadata, getMetadataResponse); - assertEquals(apiWhenServerExists.getServerApiForZone("az-1.region-a.geo-1").getMetadata(serverId, key).toString(), + assertEquals(apiWhenServerExists.getServerApi("az-1.region-a.geo-1").getMetadata(serverId, key).toString(), "Web Head 1"); } @@ -599,7 +599,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, setMetadata, setMetadataResponse); try { - apiWhenServerExists.getServerApiForZone("az-1.region-a.geo-1").setMetadata(serverId, metadata); + apiWhenServerExists.getServerApi("az-1.region-a.geo-1").setMetadata(serverId, metadata); fail("Expected an exception."); } catch (Exception e) { // expected @@ -628,7 +628,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, setMetadata, setMetadataResponse); - assertEquals(apiWhenServerExists.getServerApiForZone("az-1.region-a.geo-1").updateMetadata(serverId, metadata).toString(), + assertEquals(apiWhenServerExists.getServerApi("az-1.region-a.geo-1").updateMetadata(serverId, metadata).toString(), new ParseMetadataUpdateTest().expected().toString()); } @@ -655,7 +655,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { responseWithKeystoneAccess, setMetadata, setMetadataResponse); try { - apiWhenServerExists.getServerApiForZone("az-1.region-a.geo-1").setMetadata(serverId, metadata); + apiWhenServerExists.getServerApi("az-1.region-a.geo-1").setMetadata(serverId, metadata); fail("Expected an exception."); } catch (Exception e) { // expected @@ -678,7 +678,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, updateMetadata, updateMetadataResponse); - apiWhenServerExists.getServerApiForZone("az-1.region-a.geo-1").deleteMetadata(serverId, key); + apiWhenServerExists.getServerApi("az-1.region-a.geo-1").deleteMetadata(serverId, key); } public void testDeleteMetadataItemWhenResponseIs404() throws Exception { @@ -697,7 +697,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, deleteMetadata, deleteMetadataResponse); - apiWhenServerExists.getServerApiForZone("az-1.region-a.geo-1").deleteMetadata(serverId, key); + apiWhenServerExists.getServerApi("az-1.region-a.geo-1").deleteMetadata(serverId, key); } public void testGetDiagnosticsWhenResponseIs200() throws Exception { @@ -714,7 +714,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { NovaApi apiWithNewServer = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, getDiagnostics, serverDiagnosticsResponse); - assertEquals(apiWithNewServer.getServerApiForZone("az-1.region-a.geo-1").getDiagnostics(serverId), + assertEquals(apiWithNewServer.getServerApi("az-1.region-a.geo-1").getDiagnostics(serverId), new ParseServerDiagnostics().expected()); } @@ -729,7 +729,7 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest { for (int statusCode : ImmutableSet.of(403, 404, 500)) { assertTrue(!requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, getDiagnostics, - HttpResponse.builder().statusCode(statusCode).build()).getServerApiForZone("az-1.region-a.geo-1").getDiagnostics(serverId).isPresent()); + HttpResponse.builder().statusCode(statusCode).build()).getServerApi("az-1.region-a.geo-1").getDiagnostics(serverId).isPresent()); } } } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ServerApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ServerApiLiveTest.java index 691999b16d..beb2b323e3 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ServerApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ServerApiLiveTest.java @@ -48,8 +48,8 @@ public class ServerApiLiveTest extends BaseNovaApiLiveTest { @Test(description = "GET /v${apiVersion}/{tenantId}/servers") public void testListServers() throws Exception { - for (String zoneId : zones) { - ServerApi serverApi = api.getServerApiForZone(zoneId); + for (String regionId : regions) { + ServerApi serverApi = api.getServerApi(regionId); for (Resource server : serverApi.list().concat()) { checkResource(server); } @@ -58,8 +58,8 @@ public class ServerApiLiveTest extends BaseNovaApiLiveTest { @Test(description = "GET /v${apiVersion}/{tenantId}/servers/detail") public void testListServersInDetail() throws Exception { - for (String zoneId : zones) { - ServerApi serverApi = api.getServerApiForZone(zoneId); + for (String regionId : regions) { + ServerApi serverApi = api.getServerApi(regionId); for (Server server : serverApi.listInDetail().concat()) { checkServer(server); } @@ -68,8 +68,8 @@ public class ServerApiLiveTest extends BaseNovaApiLiveTest { @Test(description = "GET /v${apiVersion}/{tenantId}/servers/{id}", dependsOnMethods = { "testListServersInDetail" }) public void testGetServerById() throws Exception { - for (String zoneId : zones) { - ServerApi serverApi = api.getServerApiForZone(zoneId); + for (String regionId : regions) { + ServerApi serverApi = api.getServerApi(regionId); for (Resource server : serverApi.list().concat()) { Server details = serverApi.get(server.getId()); assertEquals(details.getId(), server.getId()); @@ -85,12 +85,12 @@ public class ServerApiLiveTest extends BaseNovaApiLiveTest { String serverId = null; String availabilityZone; - for (String zoneId : zones) { - ServerApi serverApi = api.getServerApiForZone(zoneId); - Optional availabilityZoneApi = api.getAvailabilityZoneApi(zoneId); + for (String regionId : regions) { + ServerApi serverApi = api.getServerApi(regionId); + Optional availabilityZoneApi = api.getAvailabilityZoneApi(regionId); availabilityZone = availabilityZoneApi.isPresent() ? Iterables.getLast(availabilityZoneApi.get().list()).getName() : "nova"; try { - serverId = createServer(zoneId, availabilityZone).getId(); + serverId = createServer(regionId, availabilityZone).getId(); Server server = serverApi.get(serverId); assertEquals(server.getStatus(), ACTIVE); } finally { @@ -110,14 +110,14 @@ public class ServerApiLiveTest extends BaseNovaApiLiveTest { @Test(enabled = false) public void testCreateWithNetworkOptions() { String serverId = null; - for (String zoneId : zones) { - ServerApi serverApi = api.getServerApiForZone(zoneId); + for (String regionId : regions) { + ServerApi serverApi = api.getServerApi(regionId); try { CreateServerOptions options = CreateServerOptions.Builder.novaNetworks( // This network UUID must match an existing network. ImmutableSet.of(Network.builder().networkUuid("bc4cfa2b-2b27-4671-8e8f-73009623def0").fixedIp("192.168.55.56").build()) ); - ServerCreated server = serverApi.create(hostName, imageIdForZone(zoneId), "1", options); + ServerCreated server = serverApi.create(hostName, imageIdForRegion(regionId), "1", options); serverId = server.getId(); awaitActive(serverApi).apply(server.getId()); @@ -135,10 +135,10 @@ public class ServerApiLiveTest extends BaseNovaApiLiveTest { @Test public void testCreateInWrongAvailabilityZone() { String serverId = null; - for (String zoneId : zones) { - ServerApi serverApi = api.getServerApiForZone(zoneId); + for (String regionId : regions) { + ServerApi serverApi = api.getServerApi(regionId); try { - serverId = createServer(zoneId, "err").getId(); + serverId = createServer(regionId, "err").getId(); } catch (HttpResponseException e) { // Here is an implementation detail difference between OpenStack and some providers. // Some providers accept a bad availability zone and create the server in the zoneId. @@ -157,10 +157,10 @@ public class ServerApiLiveTest extends BaseNovaApiLiveTest { String serverId = null; - for (String zoneId : zones) { - ServerApi serverApi = api.getServerApiForZone(zoneId); + for (String regionId : regions) { + ServerApi serverApi = api.getServerApi(regionId); try { - serverId = createServer(zoneId, null).getId(); + serverId = createServer(regionId, null).getId(); Server server = serverApi.get(serverId); @@ -189,15 +189,15 @@ public class ServerApiLiveTest extends BaseNovaApiLiveTest { } } - private Server createServer(String zoneId, String availabilityZoneId) { - ServerApi serverApi = api.getServerApiForZone(zoneId); + private Server createServer(String regionId, String availabilityZoneId) { + ServerApi serverApi = api.getServerApi(regionId); CreateServerOptions options = new CreateServerOptions(); if (availabilityZoneId != null) { options = options.availabilityZone(availabilityZoneId); } - ServerCreated server = serverApi.create(hostName, imageIdForZone(zoneId), flavorRefForZone(zoneId), options); + ServerCreated server = serverApi.create(hostName, imageIdForRegion(regionId), flavorRefForRegion(regionId), options); awaitActive(serverApi).apply(server.getId()); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/functions/CreateSecurityGroupIfNeededTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/functions/CreateSecurityGroupIfNeededTest.java index fc15e92093..3ee404fcd7 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/functions/CreateSecurityGroupIfNeededTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/functions/CreateSecurityGroupIfNeededTest.java @@ -24,8 +24,8 @@ import org.jclouds.http.HttpRequest; import org.jclouds.http.HttpResponse; import org.jclouds.openstack.nova.v2_0.NovaApi; import org.jclouds.openstack.nova.v2_0.compute.functions.CreateSecurityGroupIfNeeded; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.SecurityGroupInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneSecurityGroupNameAndPorts; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionSecurityGroupNameAndPorts; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.SecurityGroupInRegion; import org.jclouds.openstack.nova.v2_0.internal.BaseNovaApiExpectTest; import org.jclouds.openstack.nova.v2_0.parse.ParseComputeServiceTypicalSecurityGroupTest; import org.testng.annotations.Test; @@ -50,7 +50,7 @@ public class CreateSecurityGroupIfNeededTest extends BaseNovaApiExpectTest { public void testCreateNewGroup() throws Exception { Builder builder = ImmutableMap.builder(); - + builder.put(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess); builder.put(extensionsOfNovaRequest, extensionsOfNovaResponse); int groupId = 2769; @@ -62,11 +62,11 @@ public class CreateSecurityGroupIfNeededTest extends BaseNovaApiExpectTest { "application/json; charset=UTF-8")).build(); builder.put(create, createResponse); - + int ruleId = 10331; - + for (int port : ImmutableList.of(22, 8080)) { - + HttpRequest createCidrRule = HttpRequest.builder().method("POST").endpoint( URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-security-group-rules")).headers( ImmutableMultimap. builder().put("Accept", "application/json").put("X-Auth-Token", @@ -75,13 +75,13 @@ public class CreateSecurityGroupIfNeededTest extends BaseNovaApiExpectTest { payloadFromStringWithContentType( String.format("{\"security_group_rule\":{\"parent_group_id\":\"%s\",\"cidr\":\"0.0.0.0/0\",\"ip_protocol\":\"tcp\",\"from_port\":\"%d\",\"to_port\":\"%d\"}}", groupId, port, port), "application/json")).build(); - + HttpResponse createCidrRuleResponse = HttpResponse.builder().statusCode(200) .payload( payloadFromStringWithContentType( String.format("{\"security_group_rule\": {\"from_port\": %d, \"group\": {}, \"ip_protocol\": \"tcp\", \"to_port\": %d, \"parent_group_id\": %d, \"ip_range\": {\"cidr\": \"0.0.0.0/0\"}, \"id\": %d}}", port, port, groupId, ruleId++), "application/json; charset=UTF-8")).build(); - + builder.put(createCidrRule, createCidrRuleResponse); HttpRequest createSelfRule = HttpRequest.builder().method("POST").endpoint( @@ -99,10 +99,10 @@ public class CreateSecurityGroupIfNeededTest extends BaseNovaApiExpectTest { payloadFromStringWithContentType( String.format("{\"security_group_rule\": {\"from_port\": %d, \"group\": {\"tenant_id\": \"37936628937291\", \"name\": \"jclouds_mygroup\"}, \"ip_protocol\": \"tcp\", \"to_port\": %d, \"parent_group_id\": %d, \"ip_range\": {}, \"id\": %d}}", port, port, groupId, ruleId++), "application/json; charset=UTF-8")).build(); - + builder.put(createSelfRule, createSelfRuleResponse); } - + HttpRequest getSecurityGroup = HttpRequest.builder().method("GET").endpoint( URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-security-groups/" + groupId)).headers( ImmutableMultimap. builder().put("Accept", "application/json").put("X-Auth-Token", @@ -110,7 +110,7 @@ public class CreateSecurityGroupIfNeededTest extends BaseNovaApiExpectTest { HttpResponse getSecurityGroupResponse = HttpResponse.builder().statusCode(200).payload( payloadFromResource("/securitygroup_details_computeservice_typical.json")).build(); - + builder.put(getSecurityGroup, getSecurityGroupResponse); NovaApi apiCanCreateSecurityGroup = requestsSendResponses(builder.build()); @@ -119,8 +119,8 @@ public class CreateSecurityGroupIfNeededTest extends BaseNovaApiExpectTest { // we can find it assertEquals(fn.apply( - new ZoneSecurityGroupNameAndPorts("az-1.region-a.geo-1", "jclouds_mygroup", ImmutableSet.of(22, 8080))) - .toString(), new SecurityGroupInZone(new ParseComputeServiceTypicalSecurityGroupTest().expected(), + new RegionSecurityGroupNameAndPorts("az-1.region-a.geo-1", "jclouds_mygroup", ImmutableSet.of(22, 8080))) + .toString(), new SecurityGroupInRegion(new ParseComputeServiceTypicalSecurityGroupTest().expected(), "az-1.region-a.geo-1").toString()); } @@ -128,7 +128,7 @@ public class CreateSecurityGroupIfNeededTest extends BaseNovaApiExpectTest { public void testReturnExistingGroupOnAlreadyExists() throws Exception { Builder builder = ImmutableMap.builder(); - + builder.put(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess); builder.put(extensionsOfNovaRequest, extensionsOfNovaResponse); @@ -139,7 +139,7 @@ public class CreateSecurityGroupIfNeededTest extends BaseNovaApiExpectTest { "application/json; charset=UTF-8")).build(); builder.put(create, createResponse); - + HttpRequest list = HttpRequest.builder().method("GET").endpoint( URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-security-groups")).headers( ImmutableMultimap. builder().put("Accept", "application/json").put("X-Auth-Token", @@ -156,8 +156,8 @@ public class CreateSecurityGroupIfNeededTest extends BaseNovaApiExpectTest { // we can find it assertEquals(fn.apply( - new ZoneSecurityGroupNameAndPorts("az-1.region-a.geo-1", "jclouds_mygroup", ImmutableSet.of(22, 8080))) - .toString(), new SecurityGroupInZone(new ParseComputeServiceTypicalSecurityGroupTest().expected(), + new RegionSecurityGroupNameAndPorts("az-1.region-a.geo-1", "jclouds_mygroup", ImmutableSet.of(22, 8080))) + .toString(), new SecurityGroupInRegion(new ParseComputeServiceTypicalSecurityGroupTest().expected(), "az-1.region-a.geo-1").toString()); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/functions/FindSecurityGroupWithNameAndReturnTrueExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/functions/FindSecurityGroupWithNameAndReturnTrueExpectTest.java index d9c467ef90..d49fb8c1e5 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/functions/FindSecurityGroupWithNameAndReturnTrueExpectTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/functions/FindSecurityGroupWithNameAndReturnTrueExpectTest.java @@ -26,8 +26,8 @@ import java.util.concurrent.atomic.AtomicReference; import org.jclouds.http.HttpRequest; import org.jclouds.http.HttpResponse; import org.jclouds.openstack.nova.v2_0.NovaApi; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.SecurityGroupInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.SecurityGroupInRegion; import org.jclouds.openstack.nova.v2_0.internal.BaseNovaApiExpectTest; import org.jclouds.openstack.nova.v2_0.parse.ParseSecurityGroupListTest; import org.jclouds.openstack.nova.v2_0.predicates.FindSecurityGroupWithNameAndReturnTrue; @@ -56,14 +56,14 @@ public class FindSecurityGroupWithNameAndReturnTrueExpectTest extends BaseNovaAp FindSecurityGroupWithNameAndReturnTrue predicate = new FindSecurityGroupWithNameAndReturnTrue( apiWhenSecurityGroupsExist); - AtomicReference securityGroupInZoneRef = Atomics.newReference(ZoneAndName - .fromZoneAndName("az-1.region-a.geo-1", "name1")); + AtomicReference securityGroupInRegionRef = Atomics.newReference(RegionAndName + .fromRegionAndName("az-1.region-a.geo-1", "name1")); // we can find it - assertTrue(predicate.apply(securityGroupInZoneRef)); + assertTrue(predicate.apply(securityGroupInRegionRef)); // the reference is now up to date, and includes the actual group found. - assertEquals(securityGroupInZoneRef.get().toString(), new SecurityGroupInZone(Iterables + assertEquals(securityGroupInRegionRef.get().toString(), new SecurityGroupInRegion(Iterables .getOnlyElement(new ParseSecurityGroupListTest().expected()), "az-1.region-a.geo-1").toString()); } @@ -84,15 +84,15 @@ public class FindSecurityGroupWithNameAndReturnTrueExpectTest extends BaseNovaAp FindSecurityGroupWithNameAndReturnTrue predicate = new FindSecurityGroupWithNameAndReturnTrue( apiWhenSecurityGroupsExist); - ZoneAndName zoneAndGroup = ZoneAndName.fromZoneAndName("az-1.region-a.geo-1", "name2"); + RegionAndName regionAndGroup = RegionAndName.fromRegionAndName("az-1.region-a.geo-1", "name2"); - AtomicReference securityGroupInZoneRef = Atomics.newReference(zoneAndGroup); + AtomicReference securityGroupInRegionRef = Atomics.newReference(regionAndGroup); // we cannot find it - assertFalse(predicate.apply(securityGroupInZoneRef)); + assertFalse(predicate.apply(securityGroupInRegionRef)); // the reference is the same - assertEquals(securityGroupInZoneRef.get(), zoneAndGroup); + assertEquals(securityGroupInRegionRef.get(), regionAndGroup); } } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/functions/InternalURLLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/functions/InternalURLLiveTest.java index e313c34dc7..7886d7e810 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/functions/InternalURLLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/functions/InternalURLLiveTest.java @@ -31,18 +31,18 @@ import com.google.inject.Module; /** * Simple live test to check the correct loading of the internal endpoint * services. - * - * + * + * */ @Test(groups = "live", testName = "InternalURLLiveTest") public class InternalURLLiveTest extends BaseNovaApiLiveTest { @Test(description = "InternalUrl service endpoints loader") public void testGetInternalUrlServiceEndpoint() throws Exception { - String zone = api.getConfiguredZones().iterator().next(); + String region = api.getConfiguredRegions().iterator().next(); // List current servers to ensure that can reach nova with internalUrl ip try { - api.getServerApiForZone(zone).list().concat().toList(); + api.getServerApi(region).list().concat().toList(); } catch (Exception e) { Assert.fail("Could not retrieve servers list using the internalUrl", e); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/internal/BaseNovaApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/internal/BaseNovaApiLiveTest.java index acc830ebec..c6adf58a41 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/internal/BaseNovaApiLiveTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/internal/BaseNovaApiLiveTest.java @@ -19,10 +19,6 @@ package org.jclouds.openstack.nova.v2_0.internal; import java.util.Properties; import java.util.Set; -import com.google.common.collect.ComparisonChain; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Iterables; -import com.google.common.collect.Ordering; import org.jclouds.apis.BaseApiLiveTest; import org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties; import org.jclouds.openstack.nova.v2_0.NovaApi; @@ -40,6 +36,10 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import com.google.common.base.Throwables; +import com.google.common.collect.ComparisonChain; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; +import com.google.common.collect.Ordering; /** * Tests behavior of {@code NovaApi} @@ -52,23 +52,23 @@ public class BaseNovaApiLiveTest extends BaseApiLiveTest { provider = "openstack-nova"; } - protected Set zones; + protected Set regions; @BeforeClass(groups = { "integration", "live" }) @Override public void setup() { super.setup(); - String testZone = System.getProperty("test." + provider + ".zone"); + String testRegion = System.getProperty("test." + provider + ".region"); - if (testZone != null) { - zones = ImmutableSet.of(testZone); + if (testRegion != null) { + regions = ImmutableSet.of(testRegion); } else { - zones = api.getConfiguredZones(); + regions = api.getConfiguredRegions(); } - for (String zone : zones) { - ServerApi serverApi = api.getServerApiForZone(zone); + for (String region : regions) { + ServerApi serverApi = api.getServerApi(region); for (Resource server : serverApi.list().concat()) { if (server.getName().equals(hostName)) serverApi.delete(server.getId()); @@ -84,13 +84,13 @@ public class BaseNovaApiLiveTest extends BaseApiLiveTest { return props; } - protected Server createServerInZone(String zoneId) { - return createServerInZone(zoneId, new CreateServerOptions()); + protected Server createServerInRegion(String regionId) { + return createServerInRegion(regionId, new CreateServerOptions()); } - protected Server createServerInZone(String zoneId, CreateServerOptions options) { - ServerApi serverApi = api.getServerApiForZone(zoneId); - ServerCreated server = serverApi.create(hostName, imageIdForZone(zoneId), flavorRefForZone(zoneId), options); + protected Server createServerInRegion(String regionId, CreateServerOptions options) { + ServerApi serverApi = api.getServerApi(regionId); + ServerCreated server = serverApi.create(hostName, imageIdForRegion(regionId), flavorRefForRegion(regionId), options); blockUntilServerInState(server.getId(), serverApi, Status.ACTIVE); return serverApi.get(server.getId()); } @@ -113,15 +113,15 @@ public class BaseNovaApiLiveTest extends BaseApiLiveTest { } } - protected String imageIdForZone(String zoneId) { - ImageApi imageApi = api.getImageApiForZone(zoneId); + protected String imageIdForRegion(String regionId) { + ImageApi imageApi = api.getImageApi(regionId); // Get the first image from the list as it tends to be "lighter" and faster to start return Iterables.get(imageApi.list().concat(), 0).getId(); } - protected String flavorRefForZone(String zoneId) { - FlavorApi flavorApi = api.getFlavorApiForZone(zoneId); + protected String flavorRefForRegion(String regionId) { + FlavorApi flavorApi = api.getFlavorApi(regionId); return DEFAULT_FLAVOR_ORDERING.min(flavorApi.listInDetail().concat()).getId(); } diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/predicates/ServerPredicatesMockTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/predicates/ServerPredicatesMockTest.java index a636b152e5..47eed144cc 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/predicates/ServerPredicatesMockTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/predicates/ServerPredicatesMockTest.java @@ -45,7 +45,7 @@ public class ServerPredicatesMockTest extends BaseOpenStackMockTest { try { NovaApi novaApi = api(server.getUrl("/").toString(), "openstack-nova"); - ServerApi serverApi = novaApi.getServerApiForZone("RegionOne"); + ServerApi serverApi = novaApi.getServerApi("RegionOne"); boolean result = awaitActive(serverApi).apply("71752"); @@ -70,7 +70,7 @@ public class ServerPredicatesMockTest extends BaseOpenStackMockTest { try { NovaApi novaApi = api(server.getUrl("/").toString(), "openstack-nova"); - ServerApi serverApi = novaApi.getServerApiForZone("RegionOne"); + ServerApi serverApi = novaApi.getServerApi("RegionOne"); boolean result = awaitShutoff(serverApi).apply("71752"); @@ -92,7 +92,7 @@ public class ServerPredicatesMockTest extends BaseOpenStackMockTest { try { NovaApi novaApi = api(server.getUrl("/").toString(), "openstack-nova"); - ServerApi serverApi = novaApi.getServerApiForZone("RegionOne"); + ServerApi serverApi = novaApi.getServerApi("RegionOne"); boolean result = awaitStatus(serverApi, ACTIVE, 3, 1).apply("71752"); diff --git a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/TroveApi.java b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/TroveApi.java index 3e13ed32e4..332527d920 100644 --- a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/TroveApi.java +++ b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/TroveApi.java @@ -18,11 +18,13 @@ package org.jclouds.openstack.trove.v1; import java.io.Closeable; import java.util.Set; + import javax.ws.rs.Path; import javax.ws.rs.PathParam; + import org.jclouds.javax.annotation.Nullable; -import org.jclouds.location.Zone; -import org.jclouds.location.functions.ZoneToEndpoint; +import org.jclouds.location.Region; +import org.jclouds.location.functions.RegionToEndpoint; import org.jclouds.openstack.keystone.v2_0.domain.Tenant; import org.jclouds.openstack.trove.v1.features.DatabaseApi; import org.jclouds.openstack.trove.v1.features.FlavorApi; @@ -30,44 +32,42 @@ import org.jclouds.openstack.trove.v1.features.InstanceApi; import org.jclouds.openstack.trove.v1.features.UserApi; import org.jclouds.rest.annotations.Delegate; import org.jclouds.rest.annotations.EndpointParam; + import com.google.common.base.Optional; import com.google.inject.Provides; /** - * Provides access to Trove. - * - * @see API Doc + * Provides access to the OpenStack Trove (Database) v2 API. + * */ -public interface TroveApi extends Closeable{ +public interface TroveApi extends Closeable { /** - * Provides a set of all zones available. - * - * @return the Zone codes configured + * Provides a set of all regions available. + * + * @return the Region codes configured */ @Provides - @Zone - Set getConfiguredZones(); + @Region + Set getConfiguredRegions(); /** * Provides access to Flavor features. */ @Delegate - FlavorApi getFlavorApiForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + FlavorApi getFlavorApi(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to Instance features. */ @Delegate - InstanceApi getInstanceApiForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + InstanceApi getInstanceApi(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); /** * Provides access to User features. */ @Delegate @Path("/instances/{instanceId}") - UserApi getUserApiForZoneAndInstance(@EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone, + UserApi getUserApi(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, @PathParam("instanceId") String instanceId); /** @@ -75,12 +75,66 @@ public interface TroveApi extends Closeable{ */ @Delegate @Path("/instances/{instanceId}") - DatabaseApi getDatabaseApiForZoneAndInstance(@EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone, + DatabaseApi getDatabaseApi(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, + @PathParam("instanceId") String instanceId); + + /** + * Provides a set of all zones available. + * + * @return the Zone codes configured + * @deprecated Please use {@link #getConfiguredRegions()} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Provides + @Region + Set getConfiguredZones(); + + /** + * Provides access to Flavor features. + * @deprecated Please use {@link #getFlavorApi(String region)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate + FlavorApi getFlavorApiForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Instance features. + * @deprecated Please use {@link #getInstanceApi(String region)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate + InstanceApi getInstanceApiForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to User features. + * @deprecated Please use {@link #getUserApi(String region, String instanceId)} as this method will be + * removed in jclouds 3.0. + */ + @Deprecated + @Delegate + @Path("/instances/{instanceId}") + UserApi getUserApiForZoneAndInstance(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone, + @PathParam("instanceId") String instanceId); + + /** + * Provides access to Database features. + * @deprecated Please use {@link #getDatabaseApi(String region, String instanceId)} as this method will + * be removed in jclouds 3.0. + */ + @Deprecated + @Delegate + @Path("/instances/{instanceId}") + DatabaseApi getDatabaseApiForZoneAndInstance(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone, @PathParam("instanceId") String instanceId); /** * Provides the Tenant. */ - @Provides + @Provides Optional getCurrentTenantId(); } diff --git a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/TroveApiMetadata.java b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/TroveApiMetadata.java index b9ff80839c..c40d9412a1 100644 --- a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/TroveApiMetadata.java +++ b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/TroveApiMetadata.java @@ -25,7 +25,7 @@ import java.util.Properties; import org.jclouds.openstack.keystone.v2_0.config.AuthenticationApiModule; import org.jclouds.openstack.keystone.v2_0.config.CredentialTypes; import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule; -import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ZoneModule; +import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule; import org.jclouds.openstack.trove.v1.config.TroveHttpApiModule; import org.jclouds.openstack.trove.v1.config.TroveParserModule; import org.jclouds.openstack.v2_0.ServiceType; @@ -38,7 +38,7 @@ import com.google.inject.Module; * Implementation of {@link org.jclouds.apis.ApiMetadata} for the OpenStack Trove v1 API. */ public class TroveApiMetadata extends BaseHttpApiMetadata { - + @Override public Builder toBuilder() { return new Builder().fromApiMetadata(this); @@ -61,7 +61,7 @@ public class TroveApiMetadata extends BaseHttpApiMetadata { public static class Builder extends BaseHttpApiMetadata.Builder { - protected Builder() { + protected Builder() { id("openstack-trove") .name("OpenStack Trove API") .identityName("${tenantName}:${userName} or ${userName}, if your keystone supports a default tenant") @@ -74,7 +74,7 @@ public class TroveApiMetadata extends BaseHttpApiMetadata { .defaultModules(ImmutableSet.>builder() .add(AuthenticationApiModule.class) .add(KeystoneAuthenticationModule.class) - .add(ZoneModule.class) + .add(RegionModule.class) .add(TroveParserModule.class) .add(TroveHttpApiModule.class) .build()); diff --git a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/DatabaseApi.java b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/DatabaseApi.java index f185091efa..cec9cac365 100644 --- a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/DatabaseApi.java +++ b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/DatabaseApi.java @@ -41,19 +41,15 @@ import com.google.common.collect.FluentIterable; /** * This API is for creating, listing, and deleting a Database - * - * @see api doc - * @see api - * src + * */ @SkipEncoding({'/', '='}) @RequestFilters(AuthenticateRequest.class) public interface DatabaseApi { - + /** * Same as create(String, null, null) - * @see DatabaseApi#create(String, String, String) + * @see DatabaseApi#create(String, String, String) */ @Named("database:create") @POST @@ -62,10 +58,10 @@ public interface DatabaseApi { @Fallback(FalseOnNotFoundOr404.class) @MapBinder(BindCreateDatabaseToJson.class) boolean create(@PayloadParam("database") String database); - + /** * This operation creates a new database within the specified instance. - * + * * @param database The name of the database to be created * @param character_set Optional. Set of symbols and encodings. The default character set is utf8. * @param collate Optional. Set of rules for comparing characters in a character set. The default value for collate is utf8_general_ci. @@ -78,7 +74,7 @@ public interface DatabaseApi { @Fallback(FalseOnNotFoundOr404.class) @MapBinder(BindCreateDatabaseToJson.class) boolean create(@PayloadParam("database") String database, @PayloadParam("character_set") String character_set, @PayloadParam("collate") String collate); - + /** * This operation deletes the specified database for the specified database instance. * @@ -91,7 +87,7 @@ public interface DatabaseApi { @Consumes(MediaType.APPLICATION_JSON) @Fallback(FalseOnNotFoundOr404.class) boolean delete(@PathParam("name") String databaseName); - + /** * This operation lists the databases for the specified database instance. * @@ -99,9 +95,9 @@ public interface DatabaseApi { */ @Named("database:list") @GET - @Path("/databases") + @Path("/databases") @ResponseParser(ParseDatabaseListForUser.class) @Consumes(MediaType.APPLICATION_JSON) - @Fallback(EmptyFluentIterableOnNotFoundOr404.class) - FluentIterable list(); + @Fallback(EmptyFluentIterableOnNotFoundOr404.class) + FluentIterable list(); } diff --git a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/FlavorApi.java b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/FlavorApi.java index 611fb28f73..b71a5700a8 100644 --- a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/FlavorApi.java +++ b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/FlavorApi.java @@ -36,13 +36,8 @@ import com.google.common.collect.FluentIterable; /** * This API strictly for listing and retrieving Flavor. Flavors cannot be created or deleted. - * @see org.jclouds.openstack.trove.v1.domain.Flavor - * Flavor - * - * @see api doc - * @see api - * src + * + * @see Flavor */ @SkipEncoding({'/', '='}) @RequestFilters(AuthenticateRequest.class) @@ -59,7 +54,7 @@ public interface FlavorApi { @Consumes(MediaType.APPLICATION_JSON) @Fallback(EmptyFluentIterableOnNotFoundOr404.class) FluentIterable list(); - + /** * Returns a Flavor by id. * @@ -73,7 +68,7 @@ public interface FlavorApi { @Consumes(MediaType.APPLICATION_JSON) @Fallback(NullOnNotFoundOr404.class) Flavor get(@PathParam("id") int flavorId); - + /** * Returns a list of Flavors by Account ID (Tenant Id). * diff --git a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/InstanceApi.java b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/InstanceApi.java index 6880ee7f82..84d8f96689 100644 --- a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/InstanceApi.java +++ b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/InstanceApi.java @@ -24,6 +24,7 @@ import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.core.MediaType; + import org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404; import org.jclouds.Fallbacks.FalseOnNotFoundOr404; import org.jclouds.Fallbacks.NullOnNotFoundOr404; @@ -32,6 +33,7 @@ import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest; import org.jclouds.openstack.trove.v1.binders.BindCreateInstanceToJson; import org.jclouds.openstack.trove.v1.domain.Instance; import org.jclouds.openstack.trove.v1.functions.ParsePasswordFromRootedInstance; +import org.jclouds.rest.ResourceNotFoundException; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.MapBinder; import org.jclouds.rest.annotations.PayloadParam; @@ -39,22 +41,18 @@ import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.ResponseParser; import org.jclouds.rest.annotations.SelectJson; import org.jclouds.rest.annotations.SkipEncoding; + import com.google.common.collect.FluentIterable; /** * This API is for creating, listing, and deleting an Instance, and allows enabling a root user. - * @see org.jclouds.openstack.trove.v1.domain.Instance - * Instance - * - * @see api doc - * @see api - * src + + * @see Instance */ @SkipEncoding({'/', '='}) @RequestFilters(AuthenticateRequest.class) public interface InstanceApi { - + /** * Same as {@link #create(String, int, String)} but accept an integer Flavor ID. * @@ -62,7 +60,7 @@ public interface InstanceApi { * @param volumeSize The size in GB of the instance volume. * @param name The name of the instance. * @return The instance created. - * + * * @see InstanceApi#create(String, int, String) */ @Named("instance:create") @@ -88,7 +86,7 @@ public interface InstanceApi { @Consumes(MediaType.APPLICATION_JSON) @MapBinder(BindCreateInstanceToJson.class) Instance create(@PayloadParam("flavorRef") String flavor, @PayloadParam("size") int volumeSize, @PayloadParam("name") String name); - + /** * Deletes an Instance by id. * @@ -101,7 +99,7 @@ public interface InstanceApi { @Consumes(MediaType.APPLICATION_JSON) @Fallback(FalseOnNotFoundOr404.class) boolean delete(@PathParam("id") String instanceId); - + /** * Enables root for an instance. * @@ -115,7 +113,7 @@ public interface InstanceApi { @ResponseParser(ParsePasswordFromRootedInstance.class) @Fallback(NullOnNotFoundOr404.class) String enableRoot(@PathParam("id") String instanceId); - + /** * Checks to see if root is enabled for an instance. * @@ -129,7 +127,7 @@ public interface InstanceApi { @Consumes(MediaType.APPLICATION_JSON) @SelectJson("rootEnabled") boolean isRooted(@PathParam("id") String instanceId); - + /** * Returns a summary list of Instances. * @@ -142,7 +140,7 @@ public interface InstanceApi { @Consumes(MediaType.APPLICATION_JSON) @Fallback(EmptyFluentIterableOnNotFoundOr404.class) FluentIterable list(); - + /** * Returns an Instance by id. * diff --git a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/UserApi.java b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/UserApi.java index 3827e95ca9..45f4ea24bb 100644 --- a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/UserApi.java +++ b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/UserApi.java @@ -48,18 +48,13 @@ import com.google.common.collect.FluentIterable; /** * This API is for creating, listing, and deleting a User. Also allows listing, granting, and revoking access permissions for users. - * @see org.jclouds.openstack.trove.v1.domain.User - * User - * - * @see api doc - * @see api - * src + * + * @see User */ @SkipEncoding({'/', '='}) @RequestFilters(AuthenticateRequest.class) public interface UserApi { - + /** * Create database users. * A user is granted all privileges on the specified databases. @@ -77,7 +72,7 @@ public interface UserApi { @Fallback(FalseOnNotFoundOr404.class) @MapBinder(BindCreateUserToJson.class) boolean create(@PayloadParam("users") Set users); - + /** * Create a database user by name, password, and database name. Simpler overload for {@link #create(String, Set)}. * @@ -93,7 +88,7 @@ public interface UserApi { @Fallback(FalseOnNotFoundOr404.class) @MapBinder(BindCreateUserToJson.class) boolean create(@PayloadParam("name") String userName, @PayloadParam("password") String password, @PayloadParam("databaseName") String databaseName); - + /** * Create a database user by name, password, and database name. Simpler overload for {@link #create(String, Set)}. * @@ -126,7 +121,7 @@ public interface UserApi { @Fallback(FalseOnNotFoundOr404.class) @MapBinder(BindGrantUserToJson.class) boolean grant(@PathParam("name") String userName, @PayloadParam("databases") List databases); - + /** * This operation grants access for the specified user to a database for the specified instance. Simpler overload for {@link #create(String, Set)}. * The user is granted all privileges. @@ -142,7 +137,7 @@ public interface UserApi { @Fallback(FalseOnNotFoundOr404.class) @MapBinder(BindGrantUserToJson.class) boolean grant(@PathParam("name") String userName, @PayloadParam("databaseName") String databaseName); - + /** * This operation grants access for the specified user to a database for the specified instance. * The user is granted all privileges. @@ -157,7 +152,7 @@ public interface UserApi { @Consumes(MediaType.APPLICATION_JSON) @Fallback(FalseOnNotFoundOr404.class) boolean revoke(@PathParam("name") String userName, @PathParam("databaseName") String databaseName); - + /** * This operation deletes the specified user for the specified database instance. * @@ -170,7 +165,7 @@ public interface UserApi { @Consumes(MediaType.APPLICATION_JSON) @Fallback(FalseOnNotFoundOr404.class) boolean delete(@PathParam("name") String userName); - + /** * This operation lists the users in the specified database instance. * This operation does not return the system users (database administrators that administer the health of the database). Also, this operation returns the "root" user only if "root" user has been enabled. @@ -184,7 +179,7 @@ public interface UserApi { @Consumes(MediaType.APPLICATION_JSON) @Fallback(EmptyFluentIterableOnNotFoundOr404.class) FluentIterable list(); - + /** * This operation shows a list of all databases to which a user has access. * @@ -199,7 +194,7 @@ public interface UserApi { @Consumes(MediaType.APPLICATION_JSON) @Fallback(EmptyFluentIterableOnNotFoundOr404.class) FluentIterable getDatabaseList(@PathParam("name") String userName); - + /** * Returns a User by identifier. * @@ -215,7 +210,7 @@ public interface UserApi { @Fallback(NullOnNotFoundOr404.class) @Nullable User get(@PathParam("name") String name); - + /** * Returns a User by name and allowed host. * diff --git a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/predicates/InstancePredicates.java b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/predicates/InstancePredicates.java index 0508abf3cd..9eaf763261 100644 --- a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/predicates/InstancePredicates.java +++ b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/predicates/InstancePredicates.java @@ -33,24 +33,24 @@ import com.google.common.base.Predicate; *

      * {@code
      * Instance instance = instanceApi.create(100);
    - * 
    + *
      * RetryablePredicate awaitAvailable = RetryablePredicate.create(
      *    InstancePredicates.available(instanceApi), 600, 10, 10, TimeUnit.SECONDS);
    - * 
    + *
      * if (!awaitAvailable.apply(instance.getId())) {
    - *    throw new TimeoutException("Timeout on instance: " + instance); 
    - * }    
    + *    throw new TimeoutException("Timeout on instance: " + instance);
    + * }
      * }
      * 
    - * + * * You can also use the static convenience methods as follows. - * + * *
      * {@code
      * Instance instance = instanceApi.create(100);
    - * 
    + *
      * if (!InstancePredicates.awaitAvailable(instanceApi).apply(instance.getId())) {
    - *    throw new TimeoutException("Timeout on instance: " + instance);     
    + *    throw new TimeoutException("Timeout on instance: " + instance);
      * }
      * }
      * 
    @@ -58,8 +58,8 @@ import com.google.common.base.Predicate; public class InstancePredicates { /** * Wait until an Instance is Available. - * - * @param instanceApi The InstanceApi in the zone where your Instance resides. + * + * @param instanceApi The InstanceApi in the region where your Instance resides. * @return RetryablePredicate That will check the status every 5 seconds for a maxiumum of 10 minutes. */ public static Predicate awaitAvailable(InstanceApi instanceApi) { @@ -69,8 +69,8 @@ public class InstancePredicates { /** * Wait until an Instance no longer exists. - * - * @param instanceApi The InstanceApi in the zone where your Instance resides. + * + * @param instanceApi The InstanceApi in the region where your Instance resides. * @return RetryablePredicate That will check whether the Instance exists. * every 5 seconds for a maxiumum of 10 minutes. */ @@ -78,11 +78,11 @@ public class InstancePredicates { DeletedPredicate deletedPredicate = new DeletedPredicate(instanceApi); return retry(deletedPredicate, 600, 5, 5, SECONDS); } - + /** * Wait until instance is in the status specified. - * - * @param instanceApi The InstanceApi in the zone where your Instance resides. + * + * @param instanceApi The InstanceApi in the region where your Instance resides. * @param status Wait until instance in in this status. * @param maxWaitInSec Maximum time to wait. * @param periodInSec Interval between retries. @@ -93,7 +93,7 @@ public class InstancePredicates { StatusUpdatedPredicate statusPredicate = new StatusUpdatedPredicate(instanceApi, status); return retry(statusPredicate, maxWaitInSec, periodInSec, periodInSec, SECONDS); } - + private static class StatusUpdatedPredicate implements Predicate { private InstanceApi instanceApi; private Status status; @@ -109,14 +109,14 @@ public class InstancePredicates { @Override public boolean apply(Instance instance) { checkNotNull(instance, "instance must be defined"); - + if (status.equals(instance.getStatus())) { return true; } else { Instance instanceUpdated = instanceApi.get(instance.getId()); checkNotNull(instanceUpdated, "Instance %s not found.", instance.getId()); - + return status.equals(instanceUpdated.getStatus()); } } diff --git a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/utils/TroveUtils.java b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/utils/TroveUtils.java index c64b84cb87..c8de0969ad 100644 --- a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/utils/TroveUtils.java +++ b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/utils/TroveUtils.java @@ -31,7 +31,7 @@ import org.jclouds.logging.Logger; import com.google.common.util.concurrent.Uninterruptibles; /** - * + * * Helper methods for dealing with instances that get created with errors. */ public class TroveUtils { @@ -45,11 +45,11 @@ public class TroveUtils { /** * Create an ACTIVE operational instance. - * + * * @see InstanceApi#create(String, int, String) - * - * @param zone - * The instance zone or region. + * + * @param region + * The instance region. * @param name * Instance name. * @param flavorId @@ -58,8 +58,8 @@ public class TroveUtils { * Size of the instance. * @return Instance object in active state or NULL. */ - public Instance getWorkingInstance(String zone, String name, String flavorId, int size) { - InstanceApi instanceApi = api.getInstanceApiForZone(zone); + public Instance getWorkingInstance(String region, String name, String flavorId, int size) { + InstanceApi instanceApi = api.getInstanceApi(region); for (int retries = 0; retries < 10; retries++) { Instance instance = null; try { @@ -78,19 +78,19 @@ public class TroveUtils { } instanceApi.delete(instance.getId()); InstancePredicates.awaitDeleted(instanceApi).apply(instance); - + } return null; } /** * This will return a small working instance. - * - * @param zone The zone where the instance should be created. + * + * @param region The region where the instance should be created. * @return A working database instance. */ - public Instance getWorkingInstance(String zone) { - return getWorkingInstance(zone, UUID.randomUUID().toString(), "1", 1); + public Instance getWorkingInstance(String region) { + return getWorkingInstance(region, UUID.randomUUID().toString(), "1", 1); } private Instance awaitAvailable(Instance instance, InstanceApi iapi) { diff --git a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/domain/FlavorTest.java b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/domain/FlavorTest.java index 0b9d1b18eb..240f53c321 100644 --- a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/domain/FlavorTest.java +++ b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/domain/FlavorTest.java @@ -33,20 +33,20 @@ public class FlavorTest { assertEquals(flavor1.getName(), "small"); assertFalse(flavor1.equals(flavor2)); } - + /** - * Creates a dummy Flavor when you need a Flavor with just the flavorId. - * + * Creates a dummy Flavor when you need a Flavor with just the flavorId. + * * 1. name = small * 2. ram = 512 * 3. links = self, bookmark */ - public static Flavor forId(int flavorId) { + public static Flavor forId(int flavorId) { return Flavor.builder() .id(flavorId) .name("small") .ram(512) - .links( + .links( ImmutableList.of( Link.create(Relation.SELF, Uris.uriBuilder("http://test1").build() ), Link.create(Relation.BOOKMARK, Uris.uriBuilder("http://test2").build() ) diff --git a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/domain/InstanceTest.java b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/domain/InstanceTest.java index d0cf6f24f6..65d3263cdf 100644 --- a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/domain/InstanceTest.java +++ b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/domain/InstanceTest.java @@ -33,18 +33,18 @@ public class InstanceTest { assertEquals(instance1.getName(), "json"); assertFalse(instance1.equals(instance2)); } - + /** * Creates a dummy Instance when you need an Instance with just the instanceId. */ - public static Instance forId(String instanceId) { + public static Instance forId(String instanceId) { return Instance.builder() .id(instanceId) .name("json") .status(Instance.Status.ACTIVE) .size(2) .flavor( FlavorTest.forId(1) ) - .links( + .links( ImmutableList.of( Link.create(Relation.SELF, Uris.uriBuilder("http://test1").build() ), Link.create(Relation.BOOKMARK, Uris.uriBuilder("http://test2").build() ) diff --git a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/domain/UserTest.java b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/domain/UserTest.java index 9edd6f8201..3ed488dd6e 100644 --- a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/domain/UserTest.java +++ b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/domain/UserTest.java @@ -30,15 +30,15 @@ public class UserTest { assertEquals(user2.getName(), "2"); assertFalse(user1.equals(user2)); } - + /** * Creates a dummy User when you need an User with just the userName. */ - public static User forName(String userName) { + public static User forName(String userName) { return User.builder() .name(userName) .password("password") - .databases( + .databases( ImmutableSet.of( "db1", "db2" diff --git a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/DatabaseApiExpectTest.java b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/DatabaseApiExpectTest.java index b23e1c0b17..e165afc055 100644 --- a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/DatabaseApiExpectTest.java +++ b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/DatabaseApiExpectTest.java @@ -46,7 +46,7 @@ public class DatabaseApiExpectTest extends BaseTroveApiExpectTest { .payload(payloadFromResourceWithContentType("/database_create_simple_request.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(202).build() // response - ).getDatabaseApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getDatabaseApi("RegionOne", "instanceId-1234-5678"); boolean result = api.create("testingdb"); assertTrue(result); @@ -62,7 +62,7 @@ public class DatabaseApiExpectTest extends BaseTroveApiExpectTest { .payload(payloadFromResourceWithContentType("/database_create_simple_request.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(404).build() // response - ).getDatabaseApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getDatabaseApi("RegionOne", "instanceId-1234-5678"); boolean result = api.create("testingdb"); assertFalse(result); @@ -78,7 +78,7 @@ public class DatabaseApiExpectTest extends BaseTroveApiExpectTest { .payload(payloadFromResourceWithContentType("/database_create_request.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(202).build() // response - ).getDatabaseApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getDatabaseApi("RegionOne", "instanceId-1234-5678"); boolean result = api.create("testingdb", "utf8", "utf8_general_ci"); assertTrue(result); @@ -94,7 +94,7 @@ public class DatabaseApiExpectTest extends BaseTroveApiExpectTest { .payload(payloadFromResourceWithContentType("/database_create_request.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(404).build() // response - ).getDatabaseApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getDatabaseApi("RegionOne", "instanceId-1234-5678"); boolean result = api.create("testingdb", "utf8", "utf8_general_ci"); assertFalse(result); @@ -109,7 +109,7 @@ public class DatabaseApiExpectTest extends BaseTroveApiExpectTest { .method("DELETE") .build(), HttpResponse.builder().statusCode(202).build() // response - ).getDatabaseApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getDatabaseApi("RegionOne", "instanceId-1234-5678"); boolean result = api.delete("db1"); assertTrue(result); @@ -124,7 +124,7 @@ public class DatabaseApiExpectTest extends BaseTroveApiExpectTest { .method("DELETE") .build(), HttpResponse.builder().statusCode(404).build() // response - ).getDatabaseApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getDatabaseApi("RegionOne", "instanceId-1234-5678"); boolean result = api.delete("db1"); assertFalse(result); @@ -137,7 +137,7 @@ public class DatabaseApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/database_list.json")).build() - ).getDatabaseApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getDatabaseApi("RegionOne", "instanceId-1234-5678"); List databases = api.list().toList(); assertEquals(databases.size(), 5); @@ -151,7 +151,7 @@ public class DatabaseApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).payload(payloadFromResource("/database_list.json")).build() - ).getDatabaseApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getDatabaseApi("RegionOne", "instanceId-1234-5678"); Set databases = api.list().toSet(); assertTrue(databases.isEmpty()); diff --git a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/DatabaseApiLiveTest.java b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/DatabaseApiLiveTest.java index b18e86a5b9..57ef1a5cc4 100644 --- a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/DatabaseApiLiveTest.java +++ b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/DatabaseApiLiveTest.java @@ -35,7 +35,7 @@ import com.google.common.collect.Maps; @Test(groups = "live", testName = "DatabaseApiLiveTest") public class DatabaseApiLiveTest extends BaseTroveApiLiveTest { - // zone to instance + // region to instance private static Map> instancesToDelete = Maps.newHashMap(); // not deleting databases. they will be deleted when instances are deleted @@ -44,17 +44,17 @@ public class DatabaseApiLiveTest extends BaseTroveApiLiveTest { public void setup() { super.setup(); TroveUtils utils = new TroveUtils(api); - for (String zone : api.getConfiguredZones()) { + for (String region : api.getConfiguredRegions()) { // create instances List instanceList = Lists.newArrayList(); - Instance first = utils.getWorkingInstance(zone, "first_database_testing_" + zone, "1", 1); - Instance second = utils.getWorkingInstance(zone, "second_database_testing_" + zone, "1", 1); + Instance first = utils.getWorkingInstance(region, "first_database_testing_" + region, "1", 1); + Instance second = utils.getWorkingInstance(region, "second_database_testing_" + region, "1", 1); instanceList.add(first); instanceList.add(second); - instancesToDelete.put(zone, instanceList); + instancesToDelete.put(region, instanceList); - DatabaseApi databaseApiFirst = api.getDatabaseApiForZoneAndInstance(zone, first.getId()); - DatabaseApi databaseApiSecond = api.getDatabaseApiForZoneAndInstance(zone, second.getId()); + DatabaseApi databaseApiFirst = api.getDatabaseApi(region, first.getId()); + DatabaseApi databaseApiSecond = api.getDatabaseApi(region, second.getId()); databaseApiFirst.create("livetest_db1"); databaseApiFirst.create("livetest_db2"); databaseApiSecond.create("livetest_db3"); @@ -64,9 +64,9 @@ public class DatabaseApiLiveTest extends BaseTroveApiLiveTest { @Override @AfterClass(groups = { "integration", "live" }) public void tearDown(){ - for (String zone : api.getConfiguredZones()) { - InstanceApi instanceApi = api.getInstanceApiForZone(zone); - for (Instance instance : instancesToDelete.get(zone)) { + for (String region : api.getConfiguredRegions()) { + InstanceApi instanceApi = api.getInstanceApi(region); + for (Instance instance : instancesToDelete.get(region)) { if (!instanceApi.delete(instance.getId())) throw new RuntimeException("Could not delete a database instance after tests!"); } @@ -76,28 +76,28 @@ public class DatabaseApiLiveTest extends BaseTroveApiLiveTest { @Test public void testListDatabases() { - for (String zone : api.getConfiguredZones()) { - InstanceApi instanceApi = api.getInstanceApiForZone(zone); + for (String region : api.getConfiguredRegions()) { + InstanceApi instanceApi = api.getInstanceApi(region); assertTrue(instanceApi.list().size() >= 2); - for (Instance instance : instancesToDelete.get(zone)) { - DatabaseApi databaseApi = api.getDatabaseApiForZoneAndInstance(zone, instance.getId()); + for (Instance instance : instancesToDelete.get(region)) { + DatabaseApi databaseApi = api.getDatabaseApi(region, instance.getId()); if (!instance.getName().contains("database_testing")) continue; assertTrue(databaseApi.list().size() >= 1); for (String database : databaseApi.list()) { - assertNotNull(database); + assertNotNull(database); } - } - } + } + } } @Test public void testDeleteDatabases() { - for (String zone : api.getConfiguredZones()) { - InstanceApi instanceApi = api.getInstanceApiForZone(zone); + for (String region : api.getConfiguredRegions()) { + InstanceApi instanceApi = api.getInstanceApi(region); assertTrue(instanceApi.list().size() >= 2); - for (Instance instance : instancesToDelete.get(zone)) { - DatabaseApi databaseApi = api.getDatabaseApiForZoneAndInstance(zone, instance.getId()); + for (Instance instance : instancesToDelete.get(region)) { + DatabaseApi databaseApi = api.getDatabaseApi(region, instance.getId()); if (!instance.getName().contains("database_testing")) continue; assertTrue(databaseApi.list().size() >= 1); @@ -107,7 +107,7 @@ public class DatabaseApiLiveTest extends BaseTroveApiLiveTest { assertTrue(databaseApi.delete(database)); assertTrue(databaseApi.create(database)); } - } - } + } + } } } diff --git a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/FlavorApiExpectTest.java b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/FlavorApiExpectTest.java index 0acc2f31e4..dae8dd7ee0 100644 --- a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/FlavorApiExpectTest.java +++ b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/FlavorApiExpectTest.java @@ -42,7 +42,7 @@ public class FlavorApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/flavor_list.json")).build() - ).getFlavorApiForZone("RegionOne"); + ).getFlavorApi("RegionOne"); Set flavors = api.list().toSet(); assertEquals(flavors.size(), 6); @@ -56,11 +56,11 @@ public class FlavorApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getFlavorApiForZone("RegionOne"); + ).getFlavorApi("RegionOne"); Set flavors = api.list().toSet(); assertTrue(flavors.isEmpty()); - } + } public void testGetFlavor() { URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/flavors/1"); @@ -69,7 +69,7 @@ public class FlavorApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/flavor_get.json")).build() - ).getFlavorApiForZone("RegionOne"); + ).getFlavorApi("RegionOne"); Flavor flavor = api.get(1); assertEquals(flavor.getName(), "512MB Instance"); @@ -77,17 +77,17 @@ public class FlavorApiExpectTest extends BaseTroveApiExpectTest { assertEquals(flavor.getRam(), 512); assertEquals(flavor.getLinks().size(), 2); } - + public void testGetFlavorByAccountId() { URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/flavors/40806637803162"); - TroveApi redDwarfApi = requestsSendResponses( + TroveApi troveApi = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResource("/flavor_list.json")).build() ); - FlavorApi api = redDwarfApi.getFlavorApiForZone("RegionOne"); + HttpResponse.builder().statusCode(200).payload(payloadFromResource("/flavor_list.json")).build() ); + FlavorApi api = troveApi.getFlavorApi("RegionOne"); - Set flavors = api.list( redDwarfApi.getCurrentTenantId().get().getId() ).toSet(); + Set flavors = api.list(troveApi.getCurrentTenantId().get().getId() ).toSet(); Flavor flavor = flavors.iterator().next(); assertEquals(flavor.getName(), "512MB Instance"); assertEquals(flavor.getId(), 1); @@ -102,8 +102,8 @@ public class FlavorApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getFlavorApiForZone("RegionOne"); + ).getFlavorApi("RegionOne"); assertNull(api.get(12312)); - } + } } diff --git a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/FlavorApiLiveTest.java b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/FlavorApiLiveTest.java index 57c0f8b1e4..2f2ec40aae 100644 --- a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/FlavorApiLiveTest.java +++ b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/FlavorApiLiveTest.java @@ -42,28 +42,28 @@ public class FlavorApiLiveTest extends BaseTroveApiLiveTest { @Test public void testListFlavorsByAccount() { - for (String zone : api.getConfiguredZones()) { - FlavorApi flavorApi = api.getFlavorApiForZone(zone); + for (String region : api.getConfiguredRegions()) { + FlavorApi flavorApi = api.getFlavorApi(region); - FluentIterable response = flavorApi.list( api.getCurrentTenantId().get().getId() ); // tenant id, but referred to as account id. + FluentIterable response = flavorApi.list( api.getCurrentTenantId().get().getId() ); // tenant id, but referred to as account id. for (Flavor flavor : response) { checkFlavor(flavor); - } - } + } + } } @Test public void testListFlavorsByAccountWhenAccountIdNotFound() { - for (String zone : api.getConfiguredZones()) { - FlavorApi flavorApi = api.getFlavorApiForZone(zone); + for (String region : api.getConfiguredRegions()) { + FlavorApi flavorApi = api.getFlavorApi(region); assertTrue(flavorApi.list("9999").isEmpty()); } } @Test public void testGetFlavor() { - for (String zone : api.getConfiguredZones()) { - FlavorApi flavorApi = api.getFlavorApiForZone(zone); + for (String region : api.getConfiguredRegions()) { + FlavorApi flavorApi = api.getFlavorApi(region); for (Flavor flavor : flavorApi.list()) { Flavor flavorFromGet = flavorApi.get(flavor.getId()); assertEquals(flavorFromGet.getId(), flavor.getId()); @@ -76,9 +76,9 @@ public class FlavorApiLiveTest extends BaseTroveApiLiveTest { @Test public void testGetFlavorWhenNotFound() { - for (String zone : api.getConfiguredZones()) { - FlavorApi flavorApi = api.getFlavorApiForZone(zone); + for (String region : api.getConfiguredRegions()) { + FlavorApi flavorApi = api.getFlavorApi(region); assertNull(flavorApi.get(9999)); } - } + } } diff --git a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/InstanceApiExpectTest.java b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/InstanceApiExpectTest.java index 8f562e9e27..e7c2f04b69 100644 --- a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/InstanceApiExpectTest.java +++ b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/InstanceApiExpectTest.java @@ -44,7 +44,7 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest { .payload(payloadFromResourceWithContentType("/instance_create_request.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/instance_create.json")).build() // response - ).getInstanceApiForZone("RegionOne"); + ).getInstanceApi("RegionOne"); Instance instance = api.create("1", 2, "json_rack_instance"); assertEquals(instance.getSize(), 2); @@ -62,7 +62,7 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest { .payload(payloadFromResourceWithContentType("/instance_create_request.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(404).payload(payloadFromResource("/instance_create.json")).build() // response - ).getInstanceApiForZone("RegionOne"); + ).getInstanceApi("RegionOne"); api.create("1", 2, "json_rack_instance"); } @@ -74,7 +74,7 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(202).build() // response - ).getInstanceApiForZone("RegionOne"); + ).getInstanceApi("RegionOne"); assertTrue( api.delete("098653ba-218b-47ce-936a-e0b749101f81") ); } @@ -86,7 +86,7 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(404).build() // response - ).getInstanceApiForZone("RegionOne"); + ).getInstanceApi("RegionOne"); assertTrue( !api.delete("098653ba-218b-47ce-936a-e0b749101f81") ); } @@ -99,7 +99,7 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/instance_list.json")).build() - ).getInstanceApiForZone("RegionOne"); + ).getInstanceApi("RegionOne"); Set instances = api.list().toSet(); assertEquals(instances.size(), 2); @@ -113,7 +113,7 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getInstanceApiForZone("RegionOne"); + ).getInstanceApi("RegionOne"); Set instances = api.list().toSet(); assertTrue(instances.isEmpty()); @@ -126,7 +126,7 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/instance_get.json")).build() - ).getInstanceApiForZone("RegionOne"); + ).getInstanceApi("RegionOne"); Instance instance = api.get("44b277eb-39be-4921-be31-3d61b43651d7"); assertEquals(instance.getName(), "json_rack_instance"); @@ -142,7 +142,7 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).build() - ).getInstanceApiForZone("RegionOne"); + ).getInstanceApi("RegionOne"); assertNull(api.get("12312")); } @@ -154,7 +154,7 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().method("POST").endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/instance_root.json")).build() - ).getInstanceApiForZone("RegionOne"); + ).getInstanceApi("RegionOne"); String password = api.enableRoot("44b277eb-39be-4921-be31-3d61b43651d7"); assertEquals(password, "12345"); @@ -167,7 +167,7 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().method("POST").endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).payload(payloadFromResource("/instance_root.json")).build() - ).getInstanceApiForZone("RegionOne"); + ).getInstanceApi("RegionOne"); String password = api.enableRoot("44b277eb-39be-4921-be31-3d61b43651d7"); assertEquals(password, null); @@ -180,7 +180,7 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/instance_is_rooted.json")).build() - ).getInstanceApiForZone("RegionOne"); + ).getInstanceApi("RegionOne"); boolean rooted = api.isRooted("44b277eb-39be-4921-be31-3d61b43651d7"); assertEquals(rooted, true); @@ -193,7 +193,7 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/instance_is_rooted_false.json")).build() - ).getInstanceApiForZone("RegionOne"); + ).getInstanceApi("RegionOne"); Boolean rooted = api.isRooted("44b277eb-39be-4921-be31-3d61b43651d7"); assertEquals(rooted.booleanValue(), false); @@ -207,7 +207,7 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).payload(payloadFromResource("/instance_is_rooted.json")).build() - ).getInstanceApiForZone("RegionOne"); + ).getInstanceApi("RegionOne"); Boolean rooted = api.isRooted("44b277eb-39be-4921-be31-3d61b43651d7"); assertNull(rooted); diff --git a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/InstanceApiLiveTest.java b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/InstanceApiLiveTest.java index 00780766c4..e31393ddb5 100644 --- a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/InstanceApiLiveTest.java +++ b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/InstanceApiLiveTest.java @@ -42,29 +42,29 @@ import com.google.common.collect.Maps; public class InstanceApiLiveTest extends BaseTroveApiLiveTest { private static Map> created = Maps.newHashMap(); - + @Override @BeforeClass(groups = { "integration", "live" }) public void setup() { super.setup(); TroveUtils utils = new TroveUtils(api); - for (String zone : api.getConfiguredZones()) { - List zoneList = Lists.newArrayList(); - InstanceApi instanceApi = api.getInstanceApiForZone(zone); - zoneList.add(utils.getWorkingInstance(zone, "first_instance_testing_" + zone, "1", 1)); - Instance second = utils.getWorkingInstance(zone, "second_instance_testing_" + zone, "1", 1); + for (String region : api.getConfiguredRegions()) { + List regionList = Lists.newArrayList(); + InstanceApi instanceApi = api.getInstanceApi(region); + regionList.add(utils.getWorkingInstance(region, "first_instance_testing_" + region, "1", 1)); + Instance second = utils.getWorkingInstance(region, "second_instance_testing_" + region, "1", 1); instanceApi.enableRoot(second.getId()); - zoneList.add(second); - created.put(zone, zoneList); + regionList.add(second); + created.put(region, regionList); } } - + @Override @AfterClass(groups = { "integration", "live" }) public void tearDown(){ - for (String zone : api.getConfiguredZones()) { - InstanceApi instanceApi = api.getInstanceApiForZone(zone); - for (Instance instance : created.get(zone)){ + for (String region : api.getConfiguredRegions()) { + InstanceApi instanceApi = api.getInstanceApi(region); + for (Instance instance : created.get(region)){ if (!instanceApi.delete(instance.getId())) throw new RuntimeException("Could not delete a database instance after tests!"); } @@ -79,20 +79,20 @@ public class InstanceApiLiveTest extends BaseTroveApiLiveTest { @Test public void testListInstances() { - for (String zone : api.getConfiguredZones()) { - InstanceApi instanceApi = api.getInstanceApiForZone(zone); - FluentIterable response = instanceApi.list(); + for (String region : api.getConfiguredRegions()) { + InstanceApi instanceApi = api.getInstanceApi(region); + FluentIterable response = instanceApi.list(); assertFalse(response.isEmpty()); for (Instance instance : response) { checkInstance(instance); - } - } - } + } + } + } @Test public void testGetInstance() { - for (String zone : api.getConfiguredZones()) { - InstanceApi instanceApi = api.getInstanceApiForZone(zone); + for (String region : api.getConfiguredRegions()) { + InstanceApi instanceApi = api.getInstanceApi(region); for (Instance instance : instanceApi.list()) { Instance instanceFromGet = instanceApi.get(instance.getId()); assertNotNull(instanceFromGet.getHostname()); @@ -109,24 +109,24 @@ public class InstanceApiLiveTest extends BaseTroveApiLiveTest { @Test public void testGetInstanceWhenNotFound() { - for (String zone : api.getConfiguredZones()) { - InstanceApi instanceApi = api.getInstanceApiForZone(zone); + for (String region : api.getConfiguredRegions()) { + InstanceApi instanceApi = api.getInstanceApi(region); assertNull(instanceApi.get("9999")); } - } - + } + @Test public void testGetRootStatus() { - for (String zone : api.getConfiguredZones()) { - InstanceApi instanceApi = api.getInstanceApiForZone(zone); + for (String region : api.getConfiguredRegions()) { + InstanceApi instanceApi = api.getInstanceApi(region); Iterator iterator = instanceApi.list().iterator(); Instance first; Instance second; do { - first = iterator.next(); + first = iterator.next(); } while(!first.getName().contains("instance_testing")); do { - second = iterator.next(); + second = iterator.next(); } while(!second.getName().contains("instance_testing")); assertTrue(instanceApi.isRooted(first.getId()) || instanceApi.isRooted(second.getId())); } diff --git a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/UserApiExpectTest.java b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/UserApiExpectTest.java index b31c70bb88..8db4348a63 100644 --- a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/UserApiExpectTest.java +++ b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/UserApiExpectTest.java @@ -53,7 +53,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { .payload(payloadFromResourceWithContentType("/user_create_simple_request.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(202).build() // response - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); boolean result = api.create("dbuser1", "password", "databaseA"); assertTrue(result); @@ -69,7 +69,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { .payload(payloadFromResourceWithContentType("/user_create_simple_request.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(404).build() // response - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); boolean result = api.create("dbuser1", "password", "databaseA"); assertFalse(result); @@ -85,7 +85,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { .payload(payloadFromResourceWithContentType("/user_create_with_host_simple_request.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(202).build() // response - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); boolean result = api.create("dbuser1", "password", "192.168.64.64", "databaseA"); assertTrue(result); @@ -101,7 +101,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { .payload(payloadFromResourceWithContentType("/user_create_with_host_simple_request.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(404).build() // response - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); boolean result = api.create("dbuser1", "password", "192.168.64.64", "databaseA"); assertFalse(result); @@ -117,7 +117,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { .payload(payloadFromResourceWithContentType("/user_create_request.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(202).build() // response - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); Set databases1 = Sets.newHashSet(); databases1.add( "databaseA" ); @@ -149,7 +149,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { .payload(payloadFromResourceWithContentType("/user_create_request.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(404).build() // response - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); Set databases1 = Sets.newHashSet(); databases1.add( "databaseA" ); @@ -181,7 +181,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { .payload(payloadFromResourceWithContentType("/user_grant_simple_request.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(202).build() // response - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); boolean result = api.grant("dbuser1", "databaseZ"); assertTrue(result); @@ -197,7 +197,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { .payload(payloadFromResourceWithContentType("/user_grant_simple_request.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(404).build() // response - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); boolean result = api.grant("dbuser1", "databaseZ"); assertFalse(result); @@ -213,7 +213,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { .payload(payloadFromResourceWithContentType("/user_grant_request.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(202).build() // response - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); List databases = Lists.newArrayList(); databases.add( "databaseC" ); @@ -233,7 +233,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { .payload(payloadFromResourceWithContentType("/user_grant_request.json", MediaType.APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(404).build() // response - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); List databases = Lists.newArrayList(); databases.add( "databaseC" ); @@ -252,7 +252,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { .method("DELETE") .build(), HttpResponse.builder().statusCode(202).build() // response - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); Set databases = Sets.newHashSet(); databases.add( "database" ); @@ -270,7 +270,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { .method("DELETE") .build(), HttpResponse.builder().statusCode(404).build() // response - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); Set databases = Sets.newHashSet(); databases.add( "database" ); @@ -288,7 +288,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { .method("DELETE") .build(), HttpResponse.builder().statusCode(202).build() // response - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); Set databases = Sets.newHashSet(); databases.add( "database" ); @@ -306,7 +306,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { .method("DELETE") .build(), HttpResponse.builder().statusCode(404).build() // response - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); Set databases = Sets.newHashSet(); databases.add( "database" ); @@ -322,7 +322,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/trove_user_list.json")).build() - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); Set users = api.list().toSet(); assertEquals(users.size(), 4); @@ -337,7 +337,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).payload(payloadFromResource("/trove_user_list.json")).build() - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); Set users = api.list().toSet(); assertTrue(users.isEmpty()); @@ -350,7 +350,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/user_list_access.json")).build() - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); List databases = api.getDatabaseList("dbuser1").toList(); assertEquals(databases.size(), 2); @@ -364,7 +364,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).payload(payloadFromResource("/user_list_access.json")).build() - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); Set databases = api.getDatabaseList("dbuser1").toSet(); assertTrue(databases.isEmpty()); @@ -377,7 +377,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/user_get.json")).build() - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); User user = api.get("exampleuser"); assertEquals(user.getName(), "exampleuser"); @@ -393,7 +393,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).payload(payloadFromResource("/user_get.json")).build() - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); User user = api.get("exampleuser"); assertNull(user); @@ -406,7 +406,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/user_get_withhost.json")).build() - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); User user = api.get("example.user", "192.168.64.64"); assertEquals(user.getName(), "example.user"); @@ -423,7 +423,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest { responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(404).payload(payloadFromResource("/user_get_withhost.json")).build() - ).getUserApiForZoneAndInstance("RegionOne", "instanceId-1234-5678"); + ).getUserApi("RegionOne", "instanceId-1234-5678"); User user = api.get("example.user", "192.168.64.64"); assertNull(user); diff --git a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/UserApiLiveTest.java b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/UserApiLiveTest.java index 4731ff74c6..cf485b98c2 100644 --- a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/UserApiLiveTest.java +++ b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/UserApiLiveTest.java @@ -44,7 +44,7 @@ import com.google.common.collect.Maps; @Test(groups = "live", testName = "UserApiLiveTest") public class UserApiLiveTest extends BaseTroveApiLiveTest { - // zone to instance + // region to instance private static Map> instancesToDelete = Maps.newHashMap(); // not deleting users. they will be deleted when instances are deleted @@ -53,36 +53,36 @@ public class UserApiLiveTest extends BaseTroveApiLiveTest { public void setup() { super.setup(); TroveUtils utils = new TroveUtils(api); - for (String zone : api.getConfiguredZones()) { + for (String region : api.getConfiguredRegions()) { // create instances List instanceList = Lists.newArrayList(); - Instance first = utils.getWorkingInstance(zone, "first_user_trove_live_testing_" + zone, "1", 1); - Instance second = utils.getWorkingInstance(zone, "second_user_trove_live_testing_" + zone, "1", 1); + Instance first = utils.getWorkingInstance(region, "first_user_trove_live_testing_" + region, "1", 1); + Instance second = utils.getWorkingInstance(region, "second_user_trove_live_testing_" + region, "1", 1); instanceList.add(first); instanceList.add(second); - instancesToDelete.put(zone, instanceList); + instancesToDelete.put(region, instanceList); // create users User user1 = User.builder() .name("user1") .password(UUID.randomUUID().toString()) .databases(ImmutableSet.of( - "u1db1", + "u1db1", "u1db2")).build(); User user2 = User.builder() .name("user2") .password(UUID.randomUUID().toString()) .databases(ImmutableSet.of( - "u2db1", + "u2db1", "u2db2")).build(); User user3 = User.builder() .name("user3") .password(UUID.randomUUID().toString()) .host("173.203.44.122") .databases(ImmutableSet.of( - "u3db1", + "u3db1", "u3db2")).build(); - UserApi userApiFirst = api.getUserApiForZoneAndInstance(zone, first.getId()); - UserApi userApiSecond = api.getUserApiForZoneAndInstance(zone, second.getId()); + UserApi userApiFirst = api.getUserApi(region, first.getId()); + UserApi userApiSecond = api.getUserApi(region, second.getId()); userApiFirst.create(ImmutableSet.of(user1, user2)); userApiSecond.create(ImmutableSet.of(user3)); } @@ -91,9 +91,9 @@ public class UserApiLiveTest extends BaseTroveApiLiveTest { @Override @AfterClass(groups = { "integration", "live" }) public void tearDown(){ - for (String zone : api.getConfiguredZones()) { - InstanceApi instanceApi = api.getInstanceApiForZone(zone); - for (Instance instance : instancesToDelete.get(zone)) { + for (String region : api.getConfiguredRegions()) { + InstanceApi instanceApi = api.getInstanceApi(region); + for (Instance instance : instancesToDelete.get(region)) { if (!instanceApi.delete(instance.getId())) throw new RuntimeException("Could not delete a database instance after tests!"); } @@ -109,28 +109,28 @@ public class UserApiLiveTest extends BaseTroveApiLiveTest { @Test public void testListUsers() { - for (String zone : api.getConfiguredZones()) { - InstanceApi instanceApi = api.getInstanceApiForZone(zone); + for (String region : api.getConfiguredRegions()) { + InstanceApi instanceApi = api.getInstanceApi(region); assertTrue(instanceApi.list().size() >= 2); - for (Instance instance : instancesToDelete.get(zone)) { - UserApi userApi = api.getUserApiForZoneAndInstance(zone, instance.getId()); + for (Instance instance : instancesToDelete.get(region)) { + UserApi userApi = api.getUserApi(region, instance.getId()); if (!instance.getName().contains("user_trove_live_testing")) continue; assertTrue(userApi.list().size() >= 1); for (User user : userApi.list()) { - checkUser(user); + checkUser(user); } - } - } - } + } + } + } @Test public void testGetUser() { - for (String zone : api.getConfiguredZones()) { - InstanceApi instanceApi = api.getInstanceApiForZone(zone); + for (String region : api.getConfiguredRegions()) { + InstanceApi instanceApi = api.getInstanceApi(region); assertTrue(instanceApi.list().size() >= 2); - for (Instance instance : instancesToDelete.get(zone)) { - UserApi userApi = api.getUserApiForZoneAndInstance(zone, instance.getId()); + for (Instance instance : instancesToDelete.get(region)) { + UserApi userApi = api.getUserApi(region, instance.getId()); if (!instance.getName().contains("user_trove_live_testing")) continue; assertTrue(userApi.list().size() >= 1); @@ -142,41 +142,41 @@ public class UserApiLiveTest extends BaseTroveApiLiveTest { assertEquals(userFromGet.getDatabases(), user.getDatabases()); assertEquals(userFromGet, user); } - } - } + } + } } @Test public void testGetDatabaseListForUser() { - for (String zone : api.getConfiguredZones()) { - InstanceApi instanceApi = api.getInstanceApiForZone(zone); + for (String region : api.getConfiguredRegions()) { + InstanceApi instanceApi = api.getInstanceApi(region); assertTrue(instanceApi.list().size() >= 2 ); - for (Instance instance : instancesToDelete.get(zone)) { - UserApi userApi = api.getUserApiForZoneAndInstance(zone, instance.getId()); + for (Instance instance : instancesToDelete.get(region)) { + UserApi userApi = api.getUserApi(region, instance.getId()); if (!instance.getName().contains("user_trove_live_testing")) continue; assertTrue(userApi.list().size() >= 1); for (User user : userApi.list()) { assertFalse(userApi.getDatabaseList(user.getIdentifier()).isEmpty()); } - } - } + } + } } @Test public void testGrantAndRevokeAcccessForUser() { - for (String zone : api.getConfiguredZones()) { - InstanceApi instanceApi = api.getInstanceApiForZone(zone); + for (String region : api.getConfiguredRegions()) { + InstanceApi instanceApi = api.getInstanceApi(region); assertTrue(instanceApi.list().size() >= 2); - for (Instance instance : instancesToDelete.get(zone)) { - UserApi userApi = api.getUserApiForZoneAndInstance(zone, instance.getId()); + for (Instance instance : instancesToDelete.get(region)) { + UserApi userApi = api.getUserApi(region, instance.getId()); if (!instance.getName().contains("user_trove_live_testing")) continue; assertTrue(userApi.list().size() >= 1); for (User user : userApi.list()) { userApi.grant(user.getIdentifier(), "dbA"); userApi.grant(user.getIdentifier(), ImmutableList.of( - "dbB", + "dbB", "dbC")); Set databases = userApi.getDatabaseList(user.getIdentifier()).toSet(); @@ -193,15 +193,15 @@ public class UserApiLiveTest extends BaseTroveApiLiveTest { assertFalse(databases.contains("dbB")); assertFalse(databases.contains("dbC")); } - } - } + } + } } @Test public void testGetUserWhenNotFound() { - for (String zone : api.getConfiguredZones()) { - String instanceId = instancesToDelete.get(zone).iterator().next().getId(); - UserApi userApi = api.getUserApiForZoneAndInstance(zone, instanceId); + for (String region : api.getConfiguredRegions()) { + String instanceId = instancesToDelete.get(region).iterator().next().getId(); + UserApi userApi = api.getUserApi(region, instanceId); assertNull(userApi.get("9999")); } } diff --git a/apis/rackspace-clouddns/src/main/java/org/jclouds/rackspace/clouddns/v1/CloudDNSApi.java b/apis/rackspace-clouddns/src/main/java/org/jclouds/rackspace/clouddns/v1/CloudDNSApi.java index be38d53a7c..2b3bc55fab 100644 --- a/apis/rackspace-clouddns/src/main/java/org/jclouds/rackspace/clouddns/v1/CloudDNSApi.java +++ b/apis/rackspace-clouddns/src/main/java/org/jclouds/rackspace/clouddns/v1/CloudDNSApi.java @@ -54,11 +54,11 @@ public interface CloudDNSApi extends Closeable { /** * Returns the current status of a job. *

    - * Operations that create, update, or delete resources may take some time to process. Therefore they return - * a Job containing information, which allows the status and response information of the job to be + * Operations that create, update, or delete resources may take some time to process. Therefore they return + * a Job containing information, which allows the status and response information of the job to be * retrieved at a later point in time. *

    - * You likely won't need to use this method directly. Use {@link JobPredicates#awaitComplete(CloudDNSApi, Job)}. + * You likely won't need to use this method directly. Use {@link JobPredicates#awaitComplete(CloudDNSApi, Job)}. * * @return null, if not found. */ @@ -91,11 +91,29 @@ public interface CloudDNSApi extends Closeable { */ @Delegate @Path("/domains/{domainId}") - RecordApi getRecordApiForDomain(@PathParam("domainId") int domainId); + RecordApi getRecordApi(@PathParam("domainId") int domainId); /** * Provides access to Reverse DNS features. */ @Delegate + ReverseDNSApi getReverseDNSApi(@PayloadParam("serviceName") @PathParam("serviceName") String serviceName); + + /** + * Provides access to Record features. + * @deprecated Please use {@link #getRecordApi(int)} as this method will be removed in jclouds 3.0. + */ + @Deprecated + @Delegate + @Path("/domains/{domainId}") + RecordApi getRecordApiForDomain(@PathParam("domainId") int domainId); + + /** + * Provides access to Reverse DNS features. + * @deprecated Please use {@link #getReverseDNSApi(String)} as this method will be removed in jclouds 3.0. + */ + @Deprecated + @Delegate ReverseDNSApi getReverseDNSApiForService(@PayloadParam("serviceName") @PathParam("serviceName") String serviceName); + } diff --git a/apis/rackspace-clouddns/src/main/java/org/jclouds/rackspace/clouddns/v1/functions/RecordsToPagedIterable.java b/apis/rackspace-clouddns/src/main/java/org/jclouds/rackspace/clouddns/v1/functions/RecordsToPagedIterable.java index dcdd06937a..fbe7edf9b4 100644 --- a/apis/rackspace-clouddns/src/main/java/org/jclouds/rackspace/clouddns/v1/functions/RecordsToPagedIterable.java +++ b/apis/rackspace-clouddns/src/main/java/org/jclouds/rackspace/clouddns/v1/functions/RecordsToPagedIterable.java @@ -45,7 +45,7 @@ public class RecordsToPagedIterable extends Arg0ToPagedIterable.FromCaller> markerToNextForArg0(Optional arg0) { int domainId = Integer.class.cast(arg0.get()); - return new ListRecordsAtMarker(api.getRecordApiForDomain(domainId)); + return new ListRecordsAtMarker(api.getRecordApi(domainId)); } private static class ListRecordsAtMarker implements Function> { diff --git a/apis/rackspace-clouddns/src/test/java/org/jclouds/rackspace/clouddns/v1/features/RecordApiExpectTest.java b/apis/rackspace-clouddns/src/test/java/org/jclouds/rackspace/clouddns/v1/features/RecordApiExpectTest.java index 46c7d30ba9..067e01d7f4 100644 --- a/apis/rackspace-clouddns/src/test/java/org/jclouds/rackspace/clouddns/v1/features/RecordApiExpectTest.java +++ b/apis/rackspace-clouddns/src/test/java/org/jclouds/rackspace/clouddns/v1/features/RecordApiExpectTest.java @@ -58,7 +58,7 @@ public class RecordApiExpectTest extends BaseCloudDNSApiExpectTest .endpoint(endpoint) .build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/record-create-response.json")).build()) - .getRecordApiForDomain(3650908); + .getRecordApi(3650908); Record createMXRecord = Record.builder() .type("MX") @@ -118,7 +118,7 @@ public class RecordApiExpectTest extends BaseCloudDNSApiExpectTest responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/record-list.json")).build()) - .getRecordApiForDomain(3650908); + .getRecordApi(3650908); ImmutableList records = api.list().concat().toList(); assertEquals(records.size(), 4); // 2 created above + 2 nameserver (NS) records @@ -138,7 +138,7 @@ public class RecordApiExpectTest extends BaseCloudDNSApiExpectTest HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/record-list-page1.json")).build(), authenticatedGET().endpoint(endpointPage2).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/record-list-page2.json")).build()) - .getRecordApiForDomain(3650908); + .getRecordApi(3650908); ImmutableList records = api.list().concat().toList(); assertEquals(records.size(), 8); @@ -155,7 +155,7 @@ public class RecordApiExpectTest extends BaseCloudDNSApiExpectTest responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/record-list-with-filter.json")).build()) - .getRecordApiForDomain(3650908); + .getRecordApi(3650908); ImmutableList records = api.listByType("A").concat().toList(); Date now = new Date(); @@ -177,7 +177,7 @@ public class RecordApiExpectTest extends BaseCloudDNSApiExpectTest responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/record-list-with-filter.json")).build()) - .getRecordApiForDomain(3650908); + .getRecordApi(3650908); ImmutableList records = api.listByTypeAndData("A", "10.0.1.0").concat().toList(); Date now = new Date(); @@ -199,7 +199,7 @@ public class RecordApiExpectTest extends BaseCloudDNSApiExpectTest responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/record-list-with-filter.json")).build()) - .getRecordApiForDomain(3650908); + .getRecordApi(3650908); ImmutableList records = api.listByNameAndType(JCLOUDS_EXAMPLE, "A").concat().toList(); Date now = new Date(); @@ -221,7 +221,7 @@ public class RecordApiExpectTest extends BaseCloudDNSApiExpectTest responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/record-list-with-filter.json")).build()) - .getRecordApiForDomain(3650908); + .getRecordApi(3650908); RecordDetail record = api.getByNameAndTypeAndData(JCLOUDS_EXAMPLE, "A", "10.0.1.0"); Date now = new Date(); @@ -242,7 +242,7 @@ public class RecordApiExpectTest extends BaseCloudDNSApiExpectTest responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/record-get.json")).build()) - .getRecordApiForDomain(3650908); + .getRecordApi(3650908); RecordDetail record = api.get("A-9846146"); Date now = new Date(); @@ -267,7 +267,7 @@ public class RecordApiExpectTest extends BaseCloudDNSApiExpectTest .endpoint(endpoint) .build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/record-update-response.json")).build()) - .getRecordApiForDomain(3650908); + .getRecordApi(3650908); Record record = Record.builder() .name("_sip._udp." + JCLOUDS_EXAMPLE) @@ -293,7 +293,7 @@ public class RecordApiExpectTest extends BaseCloudDNSApiExpectTest .endpoint(endpoint) .build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/records-update-response.json")).build()) - .getRecordApiForDomain(3650908); + .getRecordApi(3650908); Record updateARecord = Record.builder() .comment("Multi-record Update") @@ -319,7 +319,7 @@ public class RecordApiExpectTest extends BaseCloudDNSApiExpectTest responseWithAccess, authenticatedGET().method("DELETE").replaceHeader("Accept", MediaType.WILDCARD).endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/record-delete.json")).build()) - .getRecordApiForDomain(3650908); + .getRecordApi(3650908); Job job = api.delete("A-9846146"); @@ -333,7 +333,7 @@ public class RecordApiExpectTest extends BaseCloudDNSApiExpectTest responseWithAccess, authenticatedGET().method("DELETE").replaceHeader("Accept", MediaType.WILDCARD).endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/records-delete.json")).build()) - .getRecordApiForDomain(3650908); + .getRecordApi(3650908); List recordIds = ImmutableList. of("A-9846146", "MX-9846146"); Job job = api.delete(recordIds); diff --git a/apis/rackspace-clouddns/src/test/java/org/jclouds/rackspace/clouddns/v1/features/RecordApiLiveTest.java b/apis/rackspace-clouddns/src/test/java/org/jclouds/rackspace/clouddns/v1/features/RecordApiLiveTest.java index 8a0b95b9ba..dbeb1d46e5 100644 --- a/apis/rackspace-clouddns/src/test/java/org/jclouds/rackspace/clouddns/v1/features/RecordApiLiveTest.java +++ b/apis/rackspace-clouddns/src/test/java/org/jclouds/rackspace/clouddns/v1/features/RecordApiLiveTest.java @@ -96,7 +96,7 @@ public class RecordApiLiveTest extends BaseCloudDNSApiLiveTest { .build(); List createRecords = ImmutableList.of(createMXRecord, createARecord, createSRVRecord); - Set records = awaitComplete(api, api.getRecordApiForDomain(domainId).create(createRecords)); + Set records = awaitComplete(api, api.getRecordApi(domainId).create(createRecords)); Thread.sleep(1000); Date now = new Date(); @@ -145,23 +145,23 @@ public class RecordApiLiveTest extends BaseCloudDNSApiLiveTest { @Test(dependsOnMethods = "testCreateRecords") public void testListRecords() throws Exception { - Set records = api.getRecordApiForDomain(domainId).list().concat().toSet(); + Set records = api.getRecordApi(domainId).list().concat().toSet(); assertEquals(records.size(), 5); // 3 created above + 2 nameserver (NS) records } @Test(dependsOnMethods = "testListRecords") public void testListRecordsByCriteriaMethods() throws Exception { - List records = api.getRecordApiForDomain(domainId).listByType("SRV").concat().toList(); + List records = api.getRecordApi(domainId).listByType("SRV").concat().toList(); assertEquals(records.size(), 1); srvRecordId = records.get(0).getId(); - records = api.getRecordApiForDomain(domainId).listByTypeAndData("A", "10.0.0.1").concat().toList(); + records = api.getRecordApi(domainId).listByTypeAndData("A", "10.0.0.1").concat().toList(); assertEquals(records.size(), 1); aRecordId = records.get(0).getId(); - records = api.getRecordApiForDomain(domainId).listByNameAndType(JCLOUDS_EXAMPLE, "MX").concat().toList(); + records = api.getRecordApi(domainId).listByNameAndType(JCLOUDS_EXAMPLE, "MX").concat().toList(); assertEquals(records.size(), 1); mxRecordId = records.get(0).getId(); @@ -169,7 +169,7 @@ public class RecordApiLiveTest extends BaseCloudDNSApiLiveTest { @Test(dependsOnMethods = "testListRecordsByCriteriaMethods") public void testGetRecordByNameAndTypeAndData() throws Exception { - RecordDetail record = api.getRecordApiForDomain(domainId).getByNameAndTypeAndData(JCLOUDS_EXAMPLE, "A", "10.0.0.1"); + RecordDetail record = api.getRecordApi(domainId).getByNameAndTypeAndData(JCLOUDS_EXAMPLE, "A", "10.0.0.1"); Date now = new Date(); assertNotNull(record.getId()); @@ -183,7 +183,7 @@ public class RecordApiLiveTest extends BaseCloudDNSApiLiveTest { @Test(dependsOnMethods = "testGetRecordByNameAndTypeAndData") public void testGetRecord() throws Exception { - RecordDetail record = api.getRecordApiForDomain(domainId).get(aRecordId); + RecordDetail record = api.getRecordApi(domainId).get(aRecordId); Date now = new Date(); assertNotNull(record.getId()); @@ -205,9 +205,9 @@ public class RecordApiLiveTest extends BaseCloudDNSApiLiveTest { .comment("Updated Protocol to UDP") .build(); - awaitComplete(api, api.getRecordApiForDomain(domainId).update(srvRecordId, record)); + awaitComplete(api, api.getRecordApi(domainId).update(srvRecordId, record)); - RecordDetail srvRecord = api.getRecordApiForDomain(domainId).get(srvRecordId); + RecordDetail srvRecord = api.getRecordApi(domainId).get(srvRecordId); Date now = new Date(); assertNotNull(srvRecord.getId()); @@ -223,13 +223,13 @@ public class RecordApiLiveTest extends BaseCloudDNSApiLiveTest { @Test(dependsOnMethods = "testUpdateRecord") public void testUpdateRecords() throws Exception { - Set recordDetails = api.getRecordApiForDomain(domainId).list().concat().toSet(); + Set recordDetails = api.getRecordApi(domainId).list().concat().toSet(); Map idsToRecords = RecordFunctions.toRecordMap(recordDetails); Map updateRecords = Maps.transformValues(idsToRecords, updateTTLAndComment(35813, "New TTL")); - awaitComplete(api, api.getRecordApiForDomain(domainId).update(updateRecords)); + awaitComplete(api, api.getRecordApi(domainId).update(updateRecords)); - RecordDetail record = api.getRecordApiForDomain(domainId).get(aRecordId); + RecordDetail record = api.getRecordApi(domainId).get(aRecordId); Date now = new Date(); assertNotNull(record.getId()); @@ -241,7 +241,7 @@ public class RecordApiLiveTest extends BaseCloudDNSApiLiveTest { assertTrue(record.getCreated().before(now)); assertTrue(record.getUpdated().before(now)); - recordDetails = api.getRecordApiForDomain(domainId).list().concat().toSet(); + recordDetails = api.getRecordApi(domainId).list().concat().toSet(); for (RecordDetail recordDetail : recordDetails) { assertEquals(recordDetail.getTTL(), 35813); @@ -259,19 +259,19 @@ public class RecordApiLiveTest extends BaseCloudDNSApiLiveTest { @Test(dependsOnMethods = "testUpdateRecords") public void testDeleteRecord() throws Exception { - awaitComplete(api, api.getRecordApiForDomain(domainId).delete(aRecordId)); + awaitComplete(api, api.getRecordApi(domainId).delete(aRecordId)); - assertNull(api.getRecordApiForDomain(domainId).get(aRecordId)); + assertNull(api.getRecordApi(domainId).get(aRecordId)); } @Test(dependsOnMethods = "testDeleteRecord") public void testDeleteRecords() throws Exception { List recordIds = ImmutableList. of(srvRecordId, mxRecordId); - awaitComplete(api, api.getRecordApiForDomain(domainId).delete(recordIds)); + awaitComplete(api, api.getRecordApi(domainId).delete(recordIds)); - assertNull(api.getRecordApiForDomain(domainId).get(srvRecordId)); - assertNull(api.getRecordApiForDomain(domainId).get(mxRecordId)); + assertNull(api.getRecordApi(domainId).get(srvRecordId)); + assertNull(api.getRecordApi(domainId).get(mxRecordId)); } @Override diff --git a/apis/rackspace-clouddns/src/test/java/org/jclouds/rackspace/clouddns/v1/features/ReverseDNSApiExpectTest.java b/apis/rackspace-clouddns/src/test/java/org/jclouds/rackspace/clouddns/v1/features/ReverseDNSApiExpectTest.java index ae33a1638b..9014b98bfe 100644 --- a/apis/rackspace-clouddns/src/test/java/org/jclouds/rackspace/clouddns/v1/features/ReverseDNSApiExpectTest.java +++ b/apis/rackspace-clouddns/src/test/java/org/jclouds/rackspace/clouddns/v1/features/ReverseDNSApiExpectTest.java @@ -62,7 +62,7 @@ public class ReverseDNSApiExpectTest extends BaseCloudDNSApiExpectTest records = api.list(SERVER_URI).concat().toList(); assertEquals(records.size(), 2); @@ -143,7 +143,7 @@ public class ReverseDNSApiExpectTest extends BaseCloudDNSApiExpectTest job = api.delete(SERVER_URI, "166.78.146.80"); @@ -207,7 +207,7 @@ public class ReverseDNSApiExpectTest extends BaseCloudDNSApiExpectTest job = api.deleteAll(SERVER_URI); diff --git a/apis/rackspace-clouddns/src/test/java/org/jclouds/rackspace/clouddns/v1/features/ReverseDNSApiLiveTest.java b/apis/rackspace-clouddns/src/test/java/org/jclouds/rackspace/clouddns/v1/features/ReverseDNSApiLiveTest.java index 8d430ea329..ee23db739f 100644 --- a/apis/rackspace-clouddns/src/test/java/org/jclouds/rackspace/clouddns/v1/features/ReverseDNSApiLiveTest.java +++ b/apis/rackspace-clouddns/src/test/java/org/jclouds/rackspace/clouddns/v1/features/ReverseDNSApiLiveTest.java @@ -87,11 +87,11 @@ public class ReverseDNSApiLiveTest extends BaseCloudDNSApiLiveTest { serverId = nodeMetadata.getId(); serverURI = nodeMetadata.getUri(); - ServerApi serverApi = nova.getServerApiForZone(nodeMetadata.getLocation().getParent().getId()); + ServerApi serverApi = nova.getServerApi(nodeMetadata.getLocation().getParent().getId()); Server server = serverApi.get(nodeMetadata.getProviderId()); serverIPv4 = server.getAccessIPv4(); serverIPv6 = server.getAccessIPv6(); - + System.out.println("serverURI = " + serverURI); System.out.println("serverIPv4 = " + serverIPv4); System.out.println("serverIPv6 = " + serverIPv6); @@ -122,7 +122,7 @@ public class ReverseDNSApiLiveTest extends BaseCloudDNSApiLiveTest { List createRecords = ImmutableList.of(createPTRRecordIPv4, createPTRRecordIPv6); Set records = awaitComplete(api, - api.getReverseDNSApiForService(CLOUD_SERVERS_OPEN_STACK).create(serverURI, createRecords)); + api.getReverseDNSApi(CLOUD_SERVERS_OPEN_STACK).create(serverURI, createRecords)); Date now = new Date(); RecordDetail ptrRecordIPv4 = null; @@ -163,7 +163,7 @@ public class ReverseDNSApiLiveTest extends BaseCloudDNSApiLiveTest { @Test(dependsOnMethods = "testCreateReverseDNSRecords") public void testListReverseDNSRecords() throws Exception { - Set records = api.getReverseDNSApiForService(CLOUD_SERVERS_OPEN_STACK).list(serverURI).concat() + Set records = api.getReverseDNSApi(CLOUD_SERVERS_OPEN_STACK).list(serverURI).concat() .toSet(); assertEquals(records.size(), 2); } @@ -175,9 +175,9 @@ public class ReverseDNSApiLiveTest extends BaseCloudDNSApiLiveTest { Map idsToRecords = ImmutableMap. of(ptrRecordIPv4Id, updatePTRRecordIPv4); - awaitComplete(api, api.getReverseDNSApiForService(CLOUD_SERVERS_OPEN_STACK).update(serverURI, idsToRecords)); + awaitComplete(api, api.getReverseDNSApi(CLOUD_SERVERS_OPEN_STACK).update(serverURI, idsToRecords)); - RecordDetail record = api.getReverseDNSApiForService(CLOUD_SERVERS_OPEN_STACK).get(serverURI, ptrRecordIPv4Id); + RecordDetail record = api.getReverseDNSApi(CLOUD_SERVERS_OPEN_STACK).get(serverURI, ptrRecordIPv4Id); Date now = new Date(); assertNotNull(record.getId()); @@ -193,16 +193,16 @@ public class ReverseDNSApiLiveTest extends BaseCloudDNSApiLiveTest { @Test(dependsOnMethods = "testUpdateAndGetReverseDNSRecords") public void testDeleteReverseDNSRecord() throws Exception { - awaitComplete(api, api.getReverseDNSApiForService(CLOUD_SERVERS_OPEN_STACK).delete(serverURI, serverIPv4)); + awaitComplete(api, api.getReverseDNSApi(CLOUD_SERVERS_OPEN_STACK).delete(serverURI, serverIPv4)); - assertNull(api.getReverseDNSApiForService(CLOUD_SERVERS_OPEN_STACK).get(serverURI, ptrRecordIPv4Id)); + assertNull(api.getReverseDNSApi(CLOUD_SERVERS_OPEN_STACK).get(serverURI, ptrRecordIPv4Id)); } @Test(dependsOnMethods = "testUpdateAndGetReverseDNSRecords") public void testDeleteReverseDNSRecords() throws Exception { - awaitComplete(api, api.getReverseDNSApiForService(CLOUD_SERVERS_OPEN_STACK).deleteAll(serverURI)); + awaitComplete(api, api.getReverseDNSApi(CLOUD_SERVERS_OPEN_STACK).deleteAll(serverURI)); - assertNull(api.getReverseDNSApiForService(CLOUD_SERVERS_OPEN_STACK).get(serverURI, ptrRecordIPv6Id)); + assertNull(api.getReverseDNSApi(CLOUD_SERVERS_OPEN_STACK).get(serverURI, ptrRecordIPv6Id)); } @Override diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/CloudLoadBalancersApi.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/CloudLoadBalancersApi.java index 82938f7ddd..090c42ffb7 100644 --- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/CloudLoadBalancersApi.java +++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/CloudLoadBalancersApi.java @@ -18,12 +18,13 @@ package org.jclouds.rackspace.cloudloadbalancers.v1; import java.io.Closeable; import java.util.Set; + import javax.ws.rs.Path; import javax.ws.rs.PathParam; import org.jclouds.javax.annotation.Nullable; -import org.jclouds.location.Zone; -import org.jclouds.location.functions.ZoneToEndpoint; +import org.jclouds.location.Region; +import org.jclouds.location.functions.RegionToEndpoint; import org.jclouds.rackspace.cloudloadbalancers.v1.features.AccessRuleApi; import org.jclouds.rackspace.cloudloadbalancers.v1.features.ConnectionApi; import org.jclouds.rackspace.cloudloadbalancers.v1.features.ContentCachingApi; @@ -46,95 +47,220 @@ import com.google.inject.Provides; */ public interface CloudLoadBalancersApi extends Closeable { /** - * @return the Zone codes configured + * @return the Region codes configured */ @Provides - @Zone - Set getConfiguredZones(); + @Region + Set getConfiguredRegions(); /** * Provides access to Load Balancer features. */ @Delegate - LoadBalancerApi getLoadBalancerApiForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); - + LoadBalancerApi getLoadBalancerApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); + /** * Provides access to Node features. */ @Delegate @Path("/loadbalancers/{lbId}") - NodeApi getNodeApiForZoneAndLoadBalancer( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone, @PathParam("lbId") int lbId); + NodeApi getNodeApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, @PathParam("lbId") int lbId); /** * Provides access to Access Rule features. */ @Delegate @Path("/loadbalancers/{lbId}") - AccessRuleApi getAccessRuleApiForZoneAndLoadBalancer( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone, @PathParam("lbId") int lbId); + AccessRuleApi getAccessRuleApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, @PathParam("lbId") int lbId); /** * Provides access to Virtual IP features. */ @Delegate @Path("/loadbalancers/{lbId}") - VirtualIPApi getVirtualIPApiForZoneAndLoadBalancer( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone, @PathParam("lbId") int lbId); + VirtualIPApi getVirtualIPApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, @PathParam("lbId") int lbId); /** * Provides access to Connection features. */ @Delegate @Path("/loadbalancers/{lbId}") - ConnectionApi getConnectionApiForZoneAndLoadBalancer( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone, @PathParam("lbId") int lbId); + ConnectionApi getConnectionApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, @PathParam("lbId") int lbId); /** * Provides access to Health Monitor features. */ @Delegate @Path("/loadbalancers/{lbId}") - HealthMonitorApi getHealthMonitorApiForZoneAndLoadBalancer( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone, @PathParam("lbId") int lbId); + HealthMonitorApi getHealthMonitorApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, @PathParam("lbId") int lbId); /** * Provides access to Session Persistence features. */ @Delegate @Path("/loadbalancers/{lbId}") - SessionPersistenceApi getSessionPersistenceApiForZoneAndLoadBalancer( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone, @PathParam("lbId") int lbId); + SessionPersistenceApi getSessionPersistenceApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, @PathParam("lbId") int lbId); /** * Provides access to Content Caching features. */ @Delegate @Path("/loadbalancers/{lbId}") - ContentCachingApi getContentCachingApiForZoneAndLoadBalancer( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone, @PathParam("lbId") int lbId); + ContentCachingApi getContentCachingApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, @PathParam("lbId") int lbId); /** * Provides access to SSL Termination features. */ @Delegate @Path("/loadbalancers/{lbId}") - SSLTerminationApi getSSLTerminationApiForZoneAndLoadBalancer( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone, @PathParam("lbId") int lbId); + SSLTerminationApi getSSLTerminationApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, @PathParam("lbId") int lbId); /** * Provides access to Error Page features. */ @Delegate @Path("/loadbalancers/{lbId}") - ErrorPageApi getErrorPageApiForZoneAndLoadBalancer( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone, @PathParam("lbId") int lbId); + ErrorPageApi getErrorPageApi( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String region, @PathParam("lbId") int lbId); /** * Provides access to Report features. */ @Delegate + ReportApi getReportApi(@EndpointParam(parser = RegionToEndpoint.class) @Nullable String region); + + /** + * @return the Zone codes configured + * @deprecated Please use {@link #getConfiguredRegions()} as this method will be removed in jclouds 3.0. + */ + @Deprecated + @Provides + @Region + Set getConfiguredZones(); + + /** + * Provides access to Load Balancer features. + * @deprecated Please use {@link #getLoadBalancerApi(String region)} as this method will be removed in jclouds 3.0. + */ + @Deprecated + @Delegate + LoadBalancerApi getLoadBalancerApiForZone( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); + + /** + * Provides access to Node features. + * @deprecated Please use {@link #getNodeApiForLoadBalancer(String region. int lbId)} as this method will be removed + * in jclouds 3.0. + */ + @Deprecated + @Delegate + @Path("/loadbalancers/{lbId}") + NodeApi getNodeApiForZoneAndLoadBalancer( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone, @PathParam("lbId") int lbId); + + /** + * Provides access to Access Rule features. + * @deprecated Please use {@link #getAccessRuleApi(String region, int lbId)} as this method will be + * removed in jclouds 3.0. + */ + @Deprecated + @Delegate + @Path("/loadbalancers/{lbId}") + AccessRuleApi getAccessRuleApiForZoneAndLoadBalancer( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone, @PathParam("lbId") int lbId); + + /** + * Provides access to Virtual IP features. + * @deprecated Please use {@link #getVirtualIPApi(String region, int lbId)} as this method will be + * removed in jclouds 3.0. + */ + @Deprecated + @Delegate + @Path("/loadbalancers/{lbId}") + VirtualIPApi getVirtualIPApiForZoneAndLoadBalancer( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone, @PathParam("lbId") int lbId); + + /** + * Provides access to Connection features. + * @deprecated Please use {@link #getConnectionApi(String region, int lbId)} as this method will be + * removed in jclouds 3.0. + */ + @Deprecated + @Delegate + @Path("/loadbalancers/{lbId}") + ConnectionApi getConnectionApiForZoneAndLoadBalancer( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone, @PathParam("lbId") int lbId); + + /** + * Provides access to Health Monitor features. + * @deprecated Please use {@link #getHealthMonitorApi(String region, int lbId)} as this method will be + * removed in jclouds 3.0. + */ + @Deprecated + @Delegate + @Path("/loadbalancers/{lbId}") + HealthMonitorApi getHealthMonitorApiForZoneAndLoadBalancer( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone, @PathParam("lbId") int lbId); + + /** + * Provides access to Session Persistence features. + * @deprecated Please use {@link #getSessionPersistenceApi(String region, int lbId)} as this method + * will be removed in jclouds 3.0. + */ + @Deprecated + @Delegate + @Path("/loadbalancers/{lbId}") + SessionPersistenceApi getSessionPersistenceApiForZoneAndLoadBalancer( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone, @PathParam("lbId") int lbId); + + /** + * Provides access to Content Caching features. + * @deprecated Please use {@link #getContentCachingApi(String region, int lbId)} as this method + * will be removed in jclouds 3.0. + */ + @Deprecated + @Delegate + @Path("/loadbalancers/{lbId}") + ContentCachingApi getContentCachingApiForZoneAndLoadBalancer( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone, @PathParam("lbId") int lbId); + + /** + * Provides access to SSL Termination features. + * @deprecated Please use {@link #getSSLTerminationApi(String region, int lbId)} as this method + * will be removed in jclouds 3.0. + */ + @Deprecated + @Delegate + @Path("/loadbalancers/{lbId}") + SSLTerminationApi getSSLTerminationApiForZoneAndLoadBalancer( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone, @PathParam("lbId") int lbId); + + /** + * Provides access to Error Page features. + * @deprecated Please use {@link #getErrorPageApi(String region, int lbId)} as this method + * will be removed in jclouds 3.0. + */ + @Deprecated + @Delegate + @Path("/loadbalancers/{lbId}") + ErrorPageApi getErrorPageApiForZoneAndLoadBalancer( + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone, @PathParam("lbId") int lbId); + + /** + * Provides access to Report features. + * @deprecated Please use {@link #getReportApi(String region)} as this method will be removed in jclouds 3.0. + */ + @Deprecated + @Delegate ReportApi getReportApiForZone( - @EndpointParam(parser = ZoneToEndpoint.class) @Nullable String zone); + @EndpointParam(parser = RegionToEndpoint.class) @Nullable String zone); } diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/CloudLoadBalancersApiMetadata.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/CloudLoadBalancersApiMetadata.java index 57d24803f6..16cc2e787f 100644 --- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/CloudLoadBalancersApiMetadata.java +++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/CloudLoadBalancersApiMetadata.java @@ -23,7 +23,7 @@ import java.net.URI; import java.util.Properties; import org.jclouds.loadbalancer.LoadBalancerServiceContext; -import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ZoneModule; +import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule; import org.jclouds.rackspace.cloudidentity.v2_0.ServiceType; import org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationApiModule; import org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationModule; @@ -35,7 +35,7 @@ import org.jclouds.rest.internal.BaseHttpApiMetadata; import com.google.common.collect.ImmutableSet; import com.google.inject.Module; /** - * Implementation of {@link ApiMetadata} for CloudLoadBalancers 1.0 API + * Implementation of {@link org.jclouds.apis.ApiMetadata} for the Rackspace Cloud Load Balancers v1.0 API. */ public class CloudLoadBalancersApiMetadata extends BaseHttpApiMetadata { @@ -74,7 +74,7 @@ public class CloudLoadBalancersApiMetadata extends BaseHttpApiMetadata>builder() .add(CloudIdentityAuthenticationApiModule.class) .add(CloudIdentityAuthenticationModule.class) - .add(ZoneModule.class) + .add(RegionModule.class) .add(CloudLoadBalancersHttpApiModule.class) .add(CloudLoadBalancersLoadBalancerContextModule.class).build()); } diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancerUsages.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancerUsages.java index 5cbc3386ec..900633fe2b 100644 --- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancerUsages.java +++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancerUsages.java @@ -69,9 +69,9 @@ public class ParseLoadBalancerUsages extends ParseJson { @Override protected Function> markerToNextForArg0(Optional arg0) { - String zone = arg0.get().toString(); - final ReportApi reportApi = api.getReportApiForZone(zone); - + String region = arg0.get().toString(); + final ReportApi reportApi = api.getReportApi(region); + return new Function>() { @Override diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancers.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancers.java index bf10d7db3e..92c108784c 100644 --- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancers.java +++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancers.java @@ -60,13 +60,13 @@ public class ParseLoadBalancers implements Function apply(HttpResponse arg0) { LoadBalancers lbs = json.apply(arg0); - + if (lbs.size() == 0) return IterableWithMarkers.EMPTY; - - Iterable transform = Iterables.transform(lbs, convertLB); + + Iterable transform = Iterables.transform(lbs, convertLB); IterableWithMarker iterableWithMarker = IterableWithMarkers.from(transform); - + return iterableWithMarker; } @@ -77,9 +77,9 @@ public class ParseLoadBalancers implements Function> markerToNextForArg0(Optional arg0) { - String zone = arg0.get().toString(); - final LoadBalancerApi loadBalancerApi = api.getLoadBalancerApiForZone(zone); - + String region = arg0.get().toString(); + final LoadBalancerApi loadBalancerApi = api.getLoadBalancerApi(region); + return new Function>() { @Override diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNodes.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNodes.java index 16a561a1c6..68a586bd74 100644 --- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNodes.java +++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNodes.java @@ -76,17 +76,17 @@ public class ParseNodes extends ParseJson { String path = request.getEndpoint().getPath(); int lastSlash = path.lastIndexOf('/'); int secondLastSlash = path.lastIndexOf('/', lastSlash - 1); - + lbId = Integer.valueOf(path.substring(secondLastSlash + 1, lastSlash)); - + return super.setContext(request); } @Override protected Function> markerToNextForArg0(Optional arg0) { - String zone = arg0.get().toString(); - final NodeApi nodeApi = api.getNodeApiForZoneAndLoadBalancer(zone, lbId); - + String region = arg0.get().toString(); + final NodeApi nodeApi = api.getNodeApi(region, lbId); + return new Function>() { @Override diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/loadbalancer/strategy/CloudLoadBalancersDestroyLoadBalancerStrategy.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/loadbalancer/strategy/CloudLoadBalancersDestroyLoadBalancerStrategy.java index d09d57bfb0..f795c6d053 100644 --- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/loadbalancer/strategy/CloudLoadBalancersDestroyLoadBalancerStrategy.java +++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/loadbalancer/strategy/CloudLoadBalancersDestroyLoadBalancerStrategy.java @@ -51,7 +51,7 @@ public class CloudLoadBalancersDestroyLoadBalancerStrategy implements DestroyLoa String[] parts = checkNotNull(id, "id").split("/"); String region = parts[0]; int lbId = Integer.parseInt(parts[1]); - client.getLoadBalancerApiForZone(region).delete(lbId); + client.getLoadBalancerApi(region).delete(lbId); return getLoadBalancer.getLoadBalancer(id); } } diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/loadbalancer/strategy/CloudLoadBalancersGetLoadBalancerMetadataStrategy.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/loadbalancer/strategy/CloudLoadBalancersGetLoadBalancerMetadataStrategy.java index 5fd96e64c7..18fc18af15 100644 --- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/loadbalancer/strategy/CloudLoadBalancersGetLoadBalancerMetadataStrategy.java +++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/loadbalancer/strategy/CloudLoadBalancersGetLoadBalancerMetadataStrategy.java @@ -46,7 +46,7 @@ public class CloudLoadBalancersGetLoadBalancerMetadataStrategy implements GetLoa String[] parts = checkNotNull(id, "id").split("/"); String region = parts[0]; int lbId = Integer.parseInt(parts[1]); - return converter.apply(client.getLoadBalancerApiForZone(region).get(lbId)); + return converter.apply(client.getLoadBalancerApi(region).get(lbId)); } } diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/loadbalancer/strategy/CloudLoadBalancersListLoadBalancersStrategy.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/loadbalancer/strategy/CloudLoadBalancersListLoadBalancersStrategy.java index bc1ca36bbd..8cc090ef3e 100644 --- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/loadbalancer/strategy/CloudLoadBalancersListLoadBalancersStrategy.java +++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/loadbalancer/strategy/CloudLoadBalancersListLoadBalancersStrategy.java @@ -25,7 +25,7 @@ import javax.inject.Singleton; import org.jclouds.loadbalancer.domain.LoadBalancerMetadata; import org.jclouds.loadbalancer.strategy.ListLoadBalancersStrategy; -import org.jclouds.location.Zone; +import org.jclouds.location.Region; import org.jclouds.rackspace.cloudloadbalancers.v1.CloudLoadBalancersApi; import org.jclouds.rackspace.cloudloadbalancers.v1.domain.LoadBalancer; @@ -39,21 +39,21 @@ public class CloudLoadBalancersListLoadBalancersStrategy implements ListLoadBala private final CloudLoadBalancersApi aclient; private final Function converter; - private final Supplier> zones; + private final Supplier> regions; @Inject protected CloudLoadBalancersListLoadBalancersStrategy(CloudLoadBalancersApi aclient, - Function converter, @Zone Supplier> zones) { + Function converter, @Region Supplier> regions) { this.aclient = checkNotNull(aclient, "aclient"); - this.zones = checkNotNull(zones, "zones"); + this.regions = checkNotNull(regions, "regions"); this.converter = checkNotNull(converter, "converter"); } @Override public Iterable listLoadBalancers() { Builder loadBalancers = ImmutableSet. builder(); - for (String zone : zones.get()) { // TODO: parallel - loadBalancers.addAll(aclient.getLoadBalancerApiForZone(zone).list().concat().transform(converter)); + for (String region : regions.get()) { // TODO: parallel + loadBalancers.addAll(aclient.getLoadBalancerApi(region).list().concat().transform(converter)); } return loadBalancers.build(); } diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/loadbalancer/strategy/CloudLoadBalancersLoadBalanceNodesStrategy.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/loadbalancer/strategy/CloudLoadBalancersLoadBalanceNodesStrategy.java index 107484aea8..dd5e7da699 100644 --- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/loadbalancer/strategy/CloudLoadBalancersLoadBalanceNodesStrategy.java +++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/loadbalancer/strategy/CloudLoadBalancersLoadBalanceNodesStrategy.java @@ -60,7 +60,7 @@ public class CloudLoadBalancersLoadBalanceNodesStrategy implements LoadBalanceNo String region = checkNotNull(location, "location").getId(); // TODO need to query and update the LB per current design. - LoadBalancer lb = client.getLoadBalancerApiForZone(region).create( + LoadBalancer lb = client.getLoadBalancerApi(region).create( CreateLoadBalancer.builder().name(name).protocol(protocol.toUpperCase()).port(loadBalancerPort) .virtualIPType(Type.PUBLIC).nodes( Iterables.transform(nodes, new Function() { diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/predicates/LoadBalancerPredicates.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/predicates/LoadBalancerPredicates.java index 26fc01c554..319c9ba663 100644 --- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/predicates/LoadBalancerPredicates.java +++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/predicates/LoadBalancerPredicates.java @@ -33,24 +33,24 @@ import com.google.common.base.Predicate; *
      * {@code
      * LoadBalancer loadBalancer = loadBalancerApi.create(loadBalancerRequest);
    - * 
    + *
      * RetryablePredicate awaitAvailable = RetryablePredicate.create(
      *    LoadBalancerPredicates.available(loadBalancerApi), 600, 10, 10, TimeUnit.SECONDS);
    - * 
    + *
      * if (!awaitAvailable.apply(loadBalancer)) {
    - *    throw new TimeoutException("Timeout on loadBalancer: " + loadBalancer); 
    - * }    
    + *    throw new TimeoutException("Timeout on loadBalancer: " + loadBalancer);
    + * }
      * }
      * 
    - * + * * You can also use the static convenience methods as so. *
    *
      * {@code
      * LoadBalancer loadBalancer = loadBalancerApi.create(loadBalancerRequest);
    - * 
    + *
      * if (!LoadBalancerPredicates.awaitAvailable(loadBalancerApi).apply(loadBalancer)) {
    - *    throw new TimeoutException("Timeout on loadBalancer: " + loadBalancer);     
    + *    throw new TimeoutException("Timeout on loadBalancer: " + loadBalancer);
      * }
      * }
      * 
    @@ -58,33 +58,33 @@ import com.google.common.base.Predicate; public class LoadBalancerPredicates { /** * Wait until a LoadBalancer is Available. - * - * @param loadBalancerApi The LoadBalancerApi in the zone where your LoadBalancer resides. + * + * @param loadBalancerApi The LoadBalancerApi in the region where your LoadBalancer resides. * @return RetryablePredicate That will check the status every 3 seconds for a maxiumum of 5 minutes. */ public static Predicate awaitAvailable(LoadBalancerApi loadBalancerApi) { StatusUpdatedPredicate statusPredicate = new StatusUpdatedPredicate(loadBalancerApi, LoadBalancer.Status.ACTIVE); return retry(statusPredicate, 300, 3, 3, SECONDS); } - + /** * Wait until a LoadBalancer no longer exists. - * - * @param loadBalancerApi The LoadBalancerApi in the zone where your LoadBalancer resides. - * @return RetryablePredicate That will check the whether the LoadBalancer exists + * + * @param loadBalancerApi The LoadBalancerApi in the region where your LoadBalancer resides. + * @return RetryablePredicate That will check the whether the LoadBalancer exists * every 3 seconds for a maxiumum of 5 minutes. */ public static Predicate awaitDeleted(LoadBalancerApi loadBalancerApi) { DeletedPredicate deletedPredicate = new DeletedPredicate(loadBalancerApi); return retry(deletedPredicate, 300, 3, 3, SECONDS); } - + public static Predicate awaitStatus( LoadBalancerApi loadBalancerApi, LoadBalancer.Status status, long maxWaitInSec, long periodInSec) { StatusUpdatedPredicate statusPredicate = new StatusUpdatedPredicate(loadBalancerApi, status); return retry(statusPredicate, maxWaitInSec, periodInSec, periodInSec, SECONDS); } - + private static class StatusUpdatedPredicate implements Predicate { private LoadBalancerApi loadBalancerApi; private LoadBalancer.Status status; @@ -100,10 +100,10 @@ public class LoadBalancerPredicates { @Override public boolean apply(LoadBalancer loadBalancer) { checkNotNull(loadBalancer, "loadBalancer must be defined"); - + LoadBalancer loadBalancerUpdated = loadBalancerApi.get(loadBalancer.getId()); checkNotNull(loadBalancerUpdated, "LoadBalancer %s not found.", loadBalancer.getId()); - + return status.equals(loadBalancerUpdated.getStatus()); } } @@ -121,7 +121,7 @@ public class LoadBalancerPredicates { @Override public boolean apply(LoadBalancer loadBalancer) { checkNotNull(loadBalancer, "loadBalancer must be defined"); - LoadBalancer loadBalancerUpdate = loadBalancerApi.get(loadBalancer.getId()); + LoadBalancer loadBalancerUpdate = loadBalancerApi.get(loadBalancer.getId()); if (loadBalancerUpdate == null) { return true; diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/AccessRuleApiExpectTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/AccessRuleApiExpectTest.java index bce95d0aa7..03452767fb 100644 --- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/AccessRuleApiExpectTest.java +++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/AccessRuleApiExpectTest.java @@ -41,10 +41,10 @@ public class AccessRuleApiExpectTest extends BaseCloudLoadBalancerApiExpectTest< URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/accesslist"); AccessRuleApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/accesslist-list.json")).build() - ).getAccessRuleApiForZoneAndLoadBalancer("DFW", 2000); + ).getAccessRuleApi("DFW", 2000); Iterable accessList = api.list(); assertEquals(accessList, getAccessRules()); @@ -54,15 +54,15 @@ public class AccessRuleApiExpectTest extends BaseCloudLoadBalancerApiExpectTest< URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/accesslist"); AccessRuleApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().method(POST).endpoint(endpoint).payload(payloadFromResource("/accesslist-create.json")).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).build() - ).getAccessRuleApiForZoneAndLoadBalancer("DFW", 2000); - + ).getAccessRuleApi("DFW", 2000); + AccessRule accessRule1 = AccessRule.deny("206.160.163.21"); AccessRule accessRule2 = AccessRule.deny("206.160.165.11"); AccessRule accessRule3 = AccessRule.deny("206.160.163.22"); - + List accessList = ImmutableList. of(accessRule1, accessRule2, accessRule3); api.create(accessList); } @@ -71,10 +71,10 @@ public class AccessRuleApiExpectTest extends BaseCloudLoadBalancerApiExpectTest< URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/accesslist/23"); AccessRuleApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().method(DELETE).endpoint(endpoint).replaceHeader(ACCEPT, WILDCARD).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).build() - ).getAccessRuleApiForZoneAndLoadBalancer("DFW", 2000); + ).getAccessRuleApi("DFW", 2000); assertTrue(api.delete(23)); } @@ -83,10 +83,10 @@ public class AccessRuleApiExpectTest extends BaseCloudLoadBalancerApiExpectTest< URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/accesslist?id=23&id=24"); AccessRuleApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().method(DELETE).endpoint(endpoint).replaceHeader(ACCEPT, WILDCARD).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).build() - ).getAccessRuleApiForZoneAndLoadBalancer("DFW", 2000); + ).getAccessRuleApi("DFW", 2000); List accessRuleIds = ImmutableList. of(23, 24); assertTrue(api.delete(accessRuleIds)); @@ -96,10 +96,10 @@ public class AccessRuleApiExpectTest extends BaseCloudLoadBalancerApiExpectTest< URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/accesslist"); AccessRuleApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().method(DELETE).endpoint(endpoint).replaceHeader(ACCEPT, WILDCARD).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).build() - ).getAccessRuleApiForZoneAndLoadBalancer("DFW", 2000); + ).getAccessRuleApi("DFW", 2000); assertTrue(api.deleteAll()); } diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/AccessRuleApiLiveTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/AccessRuleApiLiveTest.java index 68c79ddf30..76b9ed5c29 100644 --- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/AccessRuleApiLiveTest.java +++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/AccessRuleApiLiveTest.java @@ -42,7 +42,7 @@ import com.google.common.collect.Maps; @Test(groups = "live", singleThreaded = true, testName = "AccessListApiLiveTest") public class AccessRuleApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { private LoadBalancer lb; - private String zone; + private String region; private AccessRule accessRule1; private AccessRule accessRule2; private AccessRule accessRule3; @@ -58,12 +58,12 @@ public class AccessRuleApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { accessRule2 = AccessRule.deny("206.160.165.11"); accessRule3 = AccessRule.deny("206.160.163.22"); accessRule4 = AccessRule.deny("206.160.168.22"); - + accessRules = Maps.newHashMap(); accessRules.put(accessRule1.getAddress(), accessRule1); accessRules.put(accessRule2.getAddress(), accessRule2); accessRules.put(accessRule3.getAddress(), accessRule3); - accessRules.put(accessRule4.getAddress(), accessRule4); + accessRules.put(accessRule4.getAddress(), accessRule4); } public void testCreateLoadBalancer() { @@ -71,60 +71,60 @@ public class AccessRuleApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { CreateLoadBalancer createLB = CreateLoadBalancer.builder() .name(prefix + "-jclouds").protocol("HTTP").port(80).virtualIPType(Type.PUBLIC).node(addNode).build(); - zone = "ORD";//Iterables.getFirst(api.getConfiguredZones(), null); - lb = api.getLoadBalancerApiForZone(zone).create(createLB); - - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); + region = "ORD";//Iterables.getFirst(api.getConfiguredRegions(), null); + lb = api.getLoadBalancerApi(region).create(createLB); + + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); } @Test(dependsOnMethods = "testCreateLoadBalancer") public void testCreateAccessList() throws Exception { - api.getAccessRuleApiForZoneAndLoadBalancer(zone, lb.getId()).create(accessRules.values()); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - + api.getAccessRuleApi(region, lb.getId()).create(accessRules.values()); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + assertExpectedAccessRules(accessRules); } - + @Test(dependsOnMethods = "testCreateAccessList") public void testRemoveSingleAccessRule() throws Exception { - Iterable actualAccessList = api.getAccessRuleApiForZoneAndLoadBalancer(zone, lb.getId()).list(); + Iterable actualAccessList = api.getAccessRuleApi(region, lb.getId()).list(); AccessRuleWithId removedAccessRule = Iterables.getFirst(actualAccessList, null); accessRules.remove(removedAccessRule.getAddress()); - - assertTrue(api.getAccessRuleApiForZoneAndLoadBalancer(zone, lb.getId()).delete(removedAccessRule.getId())); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - + + assertTrue(api.getAccessRuleApi(region, lb.getId()).delete(removedAccessRule.getId())); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + assertExpectedAccessRules(accessRules); } - + @Test(dependsOnMethods = "testRemoveSingleAccessRule") public void testRemoveManyAccessRules() throws Exception { - Iterable actualAccessList = api.getAccessRuleApiForZoneAndLoadBalancer(zone, lb.getId()).list(); + Iterable actualAccessList = api.getAccessRuleApi(region, lb.getId()).list(); AccessRuleWithId removedAccessRule1 = Iterables.getFirst(actualAccessList, null); AccessRuleWithId removedAccessRule2 = Iterables.getLast(actualAccessList); List removedAccessRuleIds = ImmutableList. of(removedAccessRule1.getId(), removedAccessRule2.getId()); accessRules.remove(removedAccessRule1.getAddress()); accessRules.remove(removedAccessRule2.getAddress()); - - assertTrue(api.getAccessRuleApiForZoneAndLoadBalancer(zone, lb.getId()).delete(removedAccessRuleIds)); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - + + assertTrue(api.getAccessRuleApi(region, lb.getId()).delete(removedAccessRuleIds)); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + assertExpectedAccessRules(accessRules); } - + @Test(dependsOnMethods = "testRemoveManyAccessRules") public void testRemoveAllAccessRules() throws Exception { - assertTrue(api.getAccessRuleApiForZoneAndLoadBalancer(zone, lb.getId()).deleteAll()); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - + assertTrue(api.getAccessRuleApi(region, lb.getId()).deleteAll()); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + assertExpectedAccessRules(Maps.newHashMap()); } - + private void assertExpectedAccessRules(Map expectedAccessList) { - Iterable actualAccessList = api.getAccessRuleApiForZoneAndLoadBalancer(zone, lb.getId()).list(); - + Iterable actualAccessList = api.getAccessRuleApi(region, lb.getId()).list(); + for (AccessRule actualAccessRule : actualAccessList) { - assertEquals(expectedAccessList.containsKey(actualAccessRule.getAddress()), true, + assertEquals(expectedAccessList.containsKey(actualAccessRule.getAddress()), true, "The AccessRule " + actualAccessRule + " was not found in " + expectedAccessList); } } @@ -132,9 +132,9 @@ public class AccessRuleApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { @Override @AfterGroups(groups = "live") protected void tearDown() { - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - api.getLoadBalancerApiForZone(zone).delete(lb.getId()); - assertTrue(awaitDeleted(api.getLoadBalancerApiForZone(zone)).apply(lb)); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + api.getLoadBalancerApi(region).delete(lb.getId()); + assertTrue(awaitDeleted(api.getLoadBalancerApi(region)).apply(lb)); super.tearDown(); } } diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ConnectionApiExpectTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ConnectionApiExpectTest.java index c83da33420..c0e437a936 100644 --- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ConnectionApiExpectTest.java +++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ConnectionApiExpectTest.java @@ -38,10 +38,10 @@ public class ConnectionApiExpectTest extends BaseCloudLoadBalancerApiExpectTest< URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/connectionthrottle"); ConnectionApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/connectionthrottle-get.json")).build() - ).getConnectionApiForZoneAndLoadBalancer("DFW", 2000); + ).getConnectionApi("DFW", 2000); ConnectionThrottle connectionThrottle = api.getConnectionThrottle(); assertEquals(connectionThrottle, getConnectionThrottle()); @@ -51,10 +51,10 @@ public class ConnectionApiExpectTest extends BaseCloudLoadBalancerApiExpectTest< URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/connectionthrottle"); ConnectionApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/connectionthrottle-get-deleted.json")).build() - ).getConnectionApiForZoneAndLoadBalancer("DFW", 2000); + ).getConnectionApi("DFW", 2000); ConnectionThrottle connectionThrottle = api.getConnectionThrottle(); assertNull(connectionThrottle); @@ -64,70 +64,70 @@ public class ConnectionApiExpectTest extends BaseCloudLoadBalancerApiExpectTest< URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/connectionthrottle"); ConnectionApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().method(PUT).endpoint(endpoint).payload(payloadFromResource("/connectionthrottle-create.json")).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).build() - ).getConnectionApiForZoneAndLoadBalancer("DFW", 2000); - + ).getConnectionApi("DFW", 2000); + api.createOrUpdateConnectionThrottle(getConnectionThrottle()); } - + public void testValidConnectionThrottle() { assertTrue(getConnectionThrottle().isValid()); } @Test(expectedExceptions = IllegalArgumentException.class) public void testInvalidConnectionThrottle() { - ConnectionThrottle.builder().build(); + ConnectionThrottle.builder().build(); } public void testRemoveConnectionThrottle() { URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/connectionthrottle"); ConnectionApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().method(DELETE).endpoint(endpoint).replaceHeader(ACCEPT, WILDCARD).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).build() - ).getConnectionApiForZoneAndLoadBalancer("DFW", 2000); + ).getConnectionApi("DFW", 2000); assertTrue(api.deleteConnectionThrottle()); } - + public void testIsConnectionLogging() { URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/connectionlogging"); ConnectionApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/connectionlogging-enable.json")).build() - ).getConnectionApiForZoneAndLoadBalancer("DFW", 2000); - + ).getConnectionApi("DFW", 2000); + assertTrue(api.isConnectionLogging()); } - + public void testEnableConnectionLogging() { URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/connectionlogging"); ConnectionApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().method(PUT).endpoint(endpoint).payload(payloadFromResource("/connectionlogging-enable.json")).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).build() - ).getConnectionApiForZoneAndLoadBalancer("DFW", 2000); - + ).getConnectionApi("DFW", 2000); + api.enableConnectionLogging(); } - + public void testDisableConnectionLogging() { URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/connectionlogging"); ConnectionApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().method(PUT).endpoint(endpoint).payload(payloadFromResource("/connectionlogging-disable.json")).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).build() - ).getConnectionApiForZoneAndLoadBalancer("DFW", 2000); - + ).getConnectionApi("DFW", 2000); + api.disableConnectionLogging(); - } + } public static ConnectionThrottle getConnectionThrottle() { ConnectionThrottle connectionThrottle = ConnectionThrottle.builder() diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ConnectionApiLiveTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ConnectionApiLiveTest.java index ebda90505d..1832b3b2b9 100644 --- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ConnectionApiLiveTest.java +++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ConnectionApiLiveTest.java @@ -37,70 +37,70 @@ import com.google.common.collect.Iterables; @Test(groups = "live", singleThreaded = true, testName = "ConnectionApiLiveTest") public class ConnectionApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { private LoadBalancer lb; - private String zone; + private String region; public void testCreateLoadBalancer() { AddNode addNode = AddNode.builder().address("192.168.1.1").port(8080).build(); CreateLoadBalancer createLB = CreateLoadBalancer.builder() .name(prefix + "-jclouds").protocol("HTTP").port(80).virtualIPType(Type.PUBLIC).node(addNode).build(); - zone = Iterables.getFirst(api.getConfiguredZones(), null); - lb = api.getLoadBalancerApiForZone(zone).create(createLB); - - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); + region = Iterables.getFirst(api.getConfiguredRegions(), null); + lb = api.getLoadBalancerApi(region).create(createLB); + + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); } @Test(dependsOnMethods = "testCreateLoadBalancer") public void testCreateAndGetConnectionThrottling() throws Exception { - api.getConnectionApiForZoneAndLoadBalancer(zone, lb.getId()).createOrUpdateConnectionThrottle( + api.getConnectionApi(region, lb.getId()).createOrUpdateConnectionThrottle( ConnectionApiExpectTest.getConnectionThrottle()); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - - ConnectionThrottle connectionThrottle = - api.getConnectionApiForZoneAndLoadBalancer(zone, lb.getId()).getConnectionThrottle(); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + + ConnectionThrottle connectionThrottle = + api.getConnectionApi(region, lb.getId()).getConnectionThrottle(); assertEquals(connectionThrottle, ConnectionApiExpectTest.getConnectionThrottle()); } - + @Test(dependsOnMethods = "testCreateAndGetConnectionThrottling") public void testRemoveAndGetConnectionThrottle() throws Exception { - assertTrue(api.getConnectionApiForZoneAndLoadBalancer(zone, lb.getId()).deleteConnectionThrottle()); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - - ConnectionThrottle connectionThrottle = - api.getConnectionApiForZoneAndLoadBalancer(zone, lb.getId()).getConnectionThrottle(); - + assertTrue(api.getConnectionApi(region, lb.getId()).deleteConnectionThrottle()); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + + ConnectionThrottle connectionThrottle = + api.getConnectionApi(region, lb.getId()).getConnectionThrottle(); + assertNull(connectionThrottle); } - + @Test(dependsOnMethods = "testRemoveAndGetConnectionThrottle") public void testEnableAndIsConnectionLogging() throws Exception { - api.getConnectionApiForZoneAndLoadBalancer(zone, lb.getId()).enableConnectionLogging(); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - - boolean isConnectionLogging = - api.getConnectionApiForZoneAndLoadBalancer(zone, lb.getId()).isConnectionLogging(); - + api.getConnectionApi(region, lb.getId()).enableConnectionLogging(); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + + boolean isConnectionLogging = + api.getConnectionApi(region, lb.getId()).isConnectionLogging(); + assertTrue(isConnectionLogging); } - + @Test(dependsOnMethods = "testEnableAndIsConnectionLogging") public void testDisableAndIsConnectionLogging() throws Exception { - api.getConnectionApiForZoneAndLoadBalancer(zone, lb.getId()).disableConnectionLogging(); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - - boolean isConnectionLogging = - api.getConnectionApiForZoneAndLoadBalancer(zone, lb.getId()).isConnectionLogging(); - + api.getConnectionApi(region, lb.getId()).disableConnectionLogging(); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + + boolean isConnectionLogging = + api.getConnectionApi(region, lb.getId()).isConnectionLogging(); + assertFalse(isConnectionLogging); } @Override @AfterGroups(groups = "live") protected void tearDown() { - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - api.getLoadBalancerApiForZone(zone).delete(lb.getId()); - assertTrue(awaitDeleted(api.getLoadBalancerApiForZone(zone)).apply(lb)); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + api.getLoadBalancerApi(region).delete(lb.getId()); + assertTrue(awaitDeleted(api.getLoadBalancerApi(region)).apply(lb)); super.tearDown(); } } diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ContentCachingApiExpectTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ContentCachingApiExpectTest.java index 71771ffd34..a7b22b0580 100644 --- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ContentCachingApiExpectTest.java +++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ContentCachingApiExpectTest.java @@ -32,35 +32,35 @@ public class ContentCachingApiExpectTest extends BaseCloudLoadBalancerApiExpectT URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/contentcaching"); ContentCachingApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/contentcaching-enable.json")).build() - ).getContentCachingApiForZoneAndLoadBalancer("DFW", 2000); - + ).getContentCachingApi("DFW", 2000); + assertTrue(api.isContentCaching()); } - + public void testEnableContentCaching() { URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/contentcaching"); ContentCachingApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().method(PUT).endpoint(endpoint).payload(payloadFromResource("/contentcaching-enable.json")).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).build() - ).getContentCachingApiForZoneAndLoadBalancer("DFW", 2000); - + ).getContentCachingApi("DFW", 2000); + api.enable(); } - + public void testDisableContentCaching() { URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/contentcaching"); ContentCachingApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().method(PUT).endpoint(endpoint).payload(payloadFromResource("/contentcaching-disable.json")).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).build() - ).getContentCachingApiForZoneAndLoadBalancer("DFW", 2000); - + ).getContentCachingApi("DFW", 2000); + api.disable(); - } + } } diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ContentCachingApiLiveTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ContentCachingApiLiveTest.java index fe8479ff48..97eecf21d3 100644 --- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ContentCachingApiLiveTest.java +++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ContentCachingApiLiveTest.java @@ -34,47 +34,47 @@ import com.google.common.collect.Iterables; @Test(groups = "live", singleThreaded = true, testName = "ContentCachingApiLiveTest") public class ContentCachingApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { private LoadBalancer lb; - private String zone; + private String region; public void testCreateLoadBalancer() { AddNode addNode = AddNode.builder().address("192.168.1.1").port(8080).build(); CreateLoadBalancer createLB = CreateLoadBalancer.builder() .name(prefix + "-jclouds").protocol("HTTP").port(80).virtualIPType(Type.PUBLIC).node(addNode).build(); - zone = Iterables.getFirst(api.getConfiguredZones(), null); - lb = api.getLoadBalancerApiForZone(zone).create(createLB); - - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); + region = Iterables.getFirst(api.getConfiguredRegions(), null); + lb = api.getLoadBalancerApi(region).create(createLB); + + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); } - + @Test(dependsOnMethods = "testCreateLoadBalancer") public void testEnableAndIsContentCaching() throws Exception { - api.getContentCachingApiForZoneAndLoadBalancer(zone, lb.getId()).enable(); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - - boolean isContentCaching = - api.getContentCachingApiForZoneAndLoadBalancer(zone, lb.getId()).isContentCaching(); - + api.getContentCachingApi(region, lb.getId()).enable(); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + + boolean isContentCaching = + api.getContentCachingApi(region, lb.getId()).isContentCaching(); + assertTrue(isContentCaching); } - + @Test(dependsOnMethods = "testEnableAndIsContentCaching") public void testDisableAndIsContentCaching() throws Exception { - api.getContentCachingApiForZoneAndLoadBalancer(zone, lb.getId()).disable(); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - - boolean isContentCaching = - api.getContentCachingApiForZoneAndLoadBalancer(zone, lb.getId()).isContentCaching(); - + api.getContentCachingApi(region, lb.getId()).disable(); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + + boolean isContentCaching = + api.getContentCachingApi(region, lb.getId()).isContentCaching(); + assertFalse(isContentCaching); } @Override @AfterGroups(groups = "live") protected void tearDown() { - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - api.getLoadBalancerApiForZone(zone).delete(lb.getId()); - assertTrue(awaitDeleted(api.getLoadBalancerApiForZone(zone)).apply(lb)); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + api.getLoadBalancerApi(region).delete(lb.getId()); + assertTrue(awaitDeleted(api.getLoadBalancerApi(region)).apply(lb)); super.tearDown(); } } diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ErrorPageApiExpectTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ErrorPageApiExpectTest.java index 40f4972923..4c45857918 100644 --- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ErrorPageApiExpectTest.java +++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ErrorPageApiExpectTest.java @@ -37,25 +37,25 @@ import org.testng.annotations.Test; public class ErrorPageApiExpectTest extends BaseCloudLoadBalancerApiExpectTest { public String contentExpected; public String contentEscaped; - + public ErrorPageApiExpectTest() { super(); - + contentExpected = getContentExpected(); contentEscaped = getContentEscaped(); } - + public void testGetErrorPage() { URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/errorpage"); ErrorPageApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder() .statusCode(OK.getStatusCode()) .payload(payloadFromStringWithContentType("{\"errorpage\":{\"content\":\"" + contentEscaped + "\"}}", APPLICATION_JSON)) .build() - ).getErrorPageApiForZoneAndLoadBalancer("DFW", 2000); + ).getErrorPageApi("DFW", 2000); String content = api.get(); assertEquals(content, contentExpected); @@ -65,7 +65,7 @@ public class ErrorPageApiExpectTest extends BaseCloudLoadBalancerApiExpectTest loadBalancers = api.list().concat().toSet(); assertEquals(loadBalancers, getExpectedLoadBalancers()); @@ -69,7 +69,7 @@ public class LoadBalancerApiExpectTest extends BaseCloudLoadBalancerApiExpectTes responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/loadbalancer-get.json")).build() - ).getLoadBalancerApiForZone("DFW"); + ).getLoadBalancerApi("DFW"); LoadBalancer loadBalancer = api.get(2000); assertEquals(loadBalancer, getExpectedLoadBalancer()); @@ -86,7 +86,7 @@ public class LoadBalancerApiExpectTest extends BaseCloudLoadBalancerApiExpectTes .endpoint(endpoint) .build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/loadbalancer-get.json")).build() - ).getLoadBalancerApiForZone("DFW"); + ).getLoadBalancerApi("DFW"); AddNode addNode1 = AddNode.builder() .address("10.1.1.1") @@ -123,7 +123,7 @@ public class LoadBalancerApiExpectTest extends BaseCloudLoadBalancerApiExpectTes responseWithAccess, authenticatedGET().method(PUT).payload(payloadFromResource("/loadbalancer-update.json")).endpoint(endpoint).build(), HttpResponse.builder().statusCode(ACCEPTED.getStatusCode()).payload("").build() - ).getLoadBalancerApiForZone("DFW"); + ).getLoadBalancerApi("DFW"); UpdateLoadBalancer updateLB = UpdateLoadBalancer.builder() .name("foo") @@ -146,7 +146,7 @@ public class LoadBalancerApiExpectTest extends BaseCloudLoadBalancerApiExpectTes .endpoint(endpoint) .build(), HttpResponse.builder().statusCode(ACCEPTED.getStatusCode()).payload("").build() - ).getLoadBalancerApiForZone("DFW"); + ).getLoadBalancerApi("DFW"); api.delete(2000); } @@ -158,7 +158,7 @@ public class LoadBalancerApiExpectTest extends BaseCloudLoadBalancerApiExpectTes responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/metadata-list.json")).build() - ).getLoadBalancerApiForZone("DFW"); + ).getLoadBalancerApi("DFW"); Metadata metadata = api.getMetadata(2000); assertEquals(metadata, getExpectedMetadataWithIds()); @@ -174,7 +174,7 @@ public class LoadBalancerApiExpectTest extends BaseCloudLoadBalancerApiExpectTes .endpoint(endpoint) .payload(payloadFromResourceWithContentType("/metadata-create.json", APPLICATION_JSON)).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/metadata-list.json")).build() - ).getLoadBalancerApiForZone("DFW"); + ).getLoadBalancerApi("DFW"); Metadata metadata = api.createMetadata(2000, getExpectedMetadata()); assertEquals(metadata, getExpectedMetadataWithIds()); @@ -187,7 +187,7 @@ public class LoadBalancerApiExpectTest extends BaseCloudLoadBalancerApiExpectTes responseWithAccess, authenticatedGET().method(DELETE).endpoint(endpoint).replaceHeader(ACCEPT, WILDCARD).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).build() - ).getLoadBalancerApiForZone("DFW"); + ).getLoadBalancerApi("DFW"); assertTrue(api.deleteMetadatum(2000, 23)); } @@ -199,7 +199,7 @@ public class LoadBalancerApiExpectTest extends BaseCloudLoadBalancerApiExpectTes responseWithAccess, authenticatedGET().method(DELETE).endpoint(endpoint).replaceHeader(ACCEPT, WILDCARD).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).build() - ).getLoadBalancerApiForZone("DFW"); + ).getLoadBalancerApi("DFW"); diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/LoadBalancerApiLiveTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/LoadBalancerApiLiveTest.java index 2e2043240b..b343a13309 100644 --- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/LoadBalancerApiLiveTest.java +++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/LoadBalancerApiLiveTest.java @@ -50,20 +50,20 @@ public class LoadBalancerApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { @AfterGroups(groups = "live") protected void tearDown() { for (LoadBalancer lb : lbs) { - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb)); - api.getLoadBalancerApiForZone(lb.getRegion()).delete(lb.getId()); - assertTrue(awaitDeleted(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb)); + assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb)); + api.getLoadBalancerApi(lb.getRegion()).delete(lb.getId()); + assertTrue(awaitDeleted(api.getLoadBalancerApi(lb.getRegion())).apply(lb)); } super.tearDown(); } public void testCreateLoadBalancer() throws Exception { - for (String zone : api.getConfiguredZones()) { - Logger.getAnonymousLogger().info("starting lb in region " + zone); - - LoadBalancer lb = api.getLoadBalancerApiForZone(zone).create( + for (String region : api.getConfiguredRegions()) { + Logger.getAnonymousLogger().info("starting lb in region " + region); + + LoadBalancer lb = api.getLoadBalancerApi(region).create( CreateLoadBalancer.builder() - .name(prefix + "-" + zone) + .name(prefix + "-" + region) .protocol("HTTP") .port(80) .virtualIPType(Type.PUBLIC) @@ -72,17 +72,17 @@ public class LoadBalancerApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { .port(8080) .build()) .build()); - checkLBInRegion(zone, lb, prefix + "-" + zone); - - assertEquals(lb.getStatus(), LoadBalancer.Status.BUILD); - - lbs.add(lb); - - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb)); + checkLBInRegion(region, lb, prefix + "-" + region); + + assertEquals(lb.getStatus(), LoadBalancer.Status.BUILD); + + lbs.add(lb); + + assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb)); + + LoadBalancer newLb = api.getLoadBalancerApi(region).get(lb.getId()); + checkLBInRegion(region, newLb, prefix + "-" + region); - LoadBalancer newLb = api.getLoadBalancerApiForZone(zone).get(lb.getId()); - checkLBInRegion(zone, newLb, prefix + "-" + zone); - assertEquals(newLb.getStatus(), LoadBalancer.Status.ACTIVE); } } @@ -90,27 +90,27 @@ public class LoadBalancerApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { @Test(dependsOnMethods = "testCreateLoadBalancer") public void testUpdateLoadBalancer() throws Exception { for (LoadBalancer lb : lbs) { - api.getLoadBalancerApiForZone(lb.getRegion()).update(lb.getId(), + api.getLoadBalancerApi(lb.getRegion()).update(lb.getId(), UpdateLoadBalancer.builder().name("foo" + "-" + lb.getRegion()).build()); - - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb)); - LoadBalancer newLb = api.getLoadBalancerApiForZone(lb.getRegion()).get(lb.getId()); + assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb)); + + LoadBalancer newLb = api.getLoadBalancerApi(lb.getRegion()).get(lb.getId()); checkLBInRegion(newLb.getRegion(), newLb, "foo" + "-" + lb.getRegion()); - + assertEquals(newLb.getStatus(), LoadBalancer.Status.ACTIVE); } } @Test(dependsOnMethods = "testUpdateLoadBalancer") public void testListLoadBalancers() throws Exception { - for (String zone : api.getConfiguredZones()) { + for (String region : api.getConfiguredRegions()) { + + Set response = api.getLoadBalancerApi(region).list().concat().toSet(); - Set response = api.getLoadBalancerApiForZone(zone).list().concat().toSet(); - assertNotNull(response); assertTrue(response.size() >= 0); - + for (LoadBalancer lb : response) { if (!lbs.contains(lb)) continue; @@ -126,8 +126,8 @@ public class LoadBalancerApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { // node info not available during list; assert lb.getNodes().size() == 0 : lb; - LoadBalancer getDetails = api.getLoadBalancerApiForZone(zone).get(lb.getId()); - + LoadBalancer getDetails = api.getLoadBalancerApi(region).get(lb.getId()); + try { assertEquals(getDetails.getRegion(), lb.getRegion()); assertEquals(getDetails.getName(), lb.getName()); @@ -146,7 +146,7 @@ public class LoadBalancerApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { } } } - + @Test(dependsOnMethods = "testListLoadBalancers") public void testLoadBalancerMetadata() throws Exception { for (LoadBalancer lb : lbs) { @@ -154,28 +154,28 @@ public class LoadBalancerApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { "key1", "value1", "key2", "value2", "key3", "value3"); - - Metadata metadata = api.getLoadBalancerApiForZone(lb.getRegion()).createMetadata(lb.getId(), metadataMap); - assertEquals(metadata, getExpectedMetadata()); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb)); - metadata = api.getLoadBalancerApiForZone(lb.getRegion()).getMetadata(lb.getId()); + Metadata metadata = api.getLoadBalancerApi(lb.getRegion()).createMetadata(lb.getId(), metadataMap); + assertEquals(metadata, getExpectedMetadata()); + assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb)); + + metadata = api.getLoadBalancerApi(lb.getRegion()).getMetadata(lb.getId()); assertEquals(metadata, getExpectedMetadata()); - assertTrue(api.getLoadBalancerApiForZone(lb.getRegion()).updateMetadatum(lb.getId(), metadata.getId("key1"), "key1-updated")); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb)); - metadata = api.getLoadBalancerApiForZone(lb.getRegion()).getMetadata(lb.getId()); + assertTrue(api.getLoadBalancerApi(lb.getRegion()).updateMetadatum(lb.getId(), metadata.getId("key1"), "key1-updated")); + assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb)); + metadata = api.getLoadBalancerApi(lb.getRegion()).getMetadata(lb.getId()); assertEquals(metadata.get("key1"), "key1-updated"); - assertTrue(api.getLoadBalancerApiForZone(lb.getRegion()).deleteMetadatum(lb.getId(), metadata.getId("key1"))); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb)); - metadata = api.getLoadBalancerApiForZone(lb.getRegion()).getMetadata(lb.getId()); + assertTrue(api.getLoadBalancerApi(lb.getRegion()).deleteMetadatum(lb.getId(), metadata.getId("key1"))); + assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb)); + metadata = api.getLoadBalancerApi(lb.getRegion()).getMetadata(lb.getId()); assertNull(metadata.get("key1")); - assertTrue(api.getLoadBalancerApiForZone(lb.getRegion()).deleteMetadata(lb.getId(), + assertTrue(api.getLoadBalancerApi(lb.getRegion()).deleteMetadata(lb.getId(), ImmutableList. of(metadata.getId("key2"), metadata.getId("key3")))); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb)); - metadata = api.getLoadBalancerApiForZone(lb.getRegion()).getMetadata(lb.getId()); + assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb)); + metadata = api.getLoadBalancerApi(lb.getRegion()).getMetadata(lb.getId()); assertEquals(metadata.size(), 0); } } diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiExpectTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiExpectTest.java index e8881779a7..1aa054e37f 100644 --- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiExpectTest.java +++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiExpectTest.java @@ -50,7 +50,7 @@ public class NodeApiExpectTest extends BaseCloudLoadBalancerApiExpectTest nodes = api.list().concat().toSet(); assertEquals(nodes, getExpectedNodes()); @@ -63,7 +63,7 @@ public class NodeApiExpectTest extends BaseCloudLoadBalancerApiExpectTest nodeIds = ImmutableSortedSet. of(410, 411); @@ -161,7 +161,7 @@ public class NodeApiExpectTest extends BaseCloudLoadBalancerApiExpectTest> nodes = Maps.newHashMap(); public void testCreateLoadBalancers() { - assertTrue(api.getConfiguredZones().size() > 0, "Need to have some zones!"); - Logger.getAnonymousLogger().info("running against zones " + api.getConfiguredZones()); - for (String zone : api.getConfiguredZones()) { - Logger.getAnonymousLogger().info("starting lb in zone " + zone); - LoadBalancer lb = api.getLoadBalancerApiForZone(zone).create( - CreateLoadBalancer.builder().name(prefix + "-" + zone).protocol("HTTP").port(80).virtualIPType( + assertTrue(api.getConfiguredRegions().size() > 0, "Need to have some regions!"); + Logger.getAnonymousLogger().info("running against regions " + api.getConfiguredRegions()); + for (String region : api.getConfiguredRegions()) { + Logger.getAnonymousLogger().info("starting lb in region " + region); + LoadBalancer lb = api.getLoadBalancerApi(region).create( + CreateLoadBalancer.builder().name(prefix + "-" + region).protocol("HTTP").port(80).virtualIPType( Type.PUBLIC).node(AddNode.builder().address("192.168.1.1").port(8080).build()).build()); nodes.put(lb, new HashSet()); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb)); + assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb)); } } @@ -71,17 +71,17 @@ public class NodeApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { Set nodeSet = entry.getValue(); String region = lb.getRegion(); Logger.getAnonymousLogger().info("starting node on loadbalancer " + lb.getId() + " in region " + region); - Set newNodes = api.getNodeApiForZoneAndLoadBalancer(region, lb.getId()).add( + Set newNodes = api.getNodeApi(region, lb.getId()).add( ImmutableSet. of(AddNode.builder().address("192.168.1.2").port(8080).build())); for (Node n : newNodes) { assertEquals(n.getStatus(), Node.Status.ONLINE); nodeSet.add(n); - assertEquals(api.getNodeApiForZoneAndLoadBalancer(region, lb.getId()).get(n.getId()).getStatus(), + assertEquals(api.getNodeApi(region, lb.getId()).get(n.getId()).getStatus(), Node.Status.ONLINE); } - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb)); + assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb)); } } @@ -90,12 +90,12 @@ public class NodeApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { for (Entry> entry : nodes.entrySet()) { for (Node n : entry.getValue()) { String region = entry.getKey().getRegion(); - api.getNodeApiForZoneAndLoadBalancer(region, entry.getKey().getId()).update(n.getId(), + api.getNodeApi(region, entry.getKey().getId()).update(n.getId(), UpdateNode.builder().weight(23).build()); - assertEquals(api.getNodeApiForZoneAndLoadBalancer(region, entry.getKey().getId()).get(n.getId()) + assertEquals(api.getNodeApi(region, entry.getKey().getId()).get(n.getId()) .getStatus(), Node.Status.ONLINE); - Node newNode = api.getNodeApiForZoneAndLoadBalancer(region, entry.getKey().getId()).get(n.getId()); + Node newNode = api.getNodeApi(region, entry.getKey().getId()).get(n.getId()); assertEquals(newNode.getStatus(), Node.Status.ONLINE); assertEquals(newNode.getWeight(), (Integer) 23); } @@ -105,7 +105,7 @@ public class NodeApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { @Test(dependsOnMethods = "testModifyNode") public void testListNodes() throws Exception { for (LoadBalancer lb : nodes.keySet()) { - Set response = api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).list().concat().toSet(); + Set response = api.getNodeApi(lb.getRegion(), lb.getId()).list().concat().toSet(); assert null != response; assertTrue(response.size() >= 0); for (Node n : response) { @@ -117,7 +117,7 @@ public class NodeApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { assert !Arrays.asList(LoadBalancer.WEIGHTED_ALGORITHMS).contains(lb.getAlgorithm()) || n.getWeight() != null : n; - Node getDetails = api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).get(n.getId()); + Node getDetails = api.getNodeApi(lb.getRegion(), lb.getId()).get(n.getId()); try { assertEquals(getDetails.getId(), n.getId()); @@ -134,7 +134,7 @@ public class NodeApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { } } } - + @Test(dependsOnMethods = "testListNodes") public void testNodeMetadata() throws Exception { for (Entry> entry : nodes.entrySet()) { @@ -144,28 +144,28 @@ public class NodeApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { "key1", "value1", "key2", "value2", "key3", "value3"); - - Metadata metadata = api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).createMetadata(node.getId(), metadataMap); - assertEquals(metadata, getExpectedMetadata()); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb)); - metadata = api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).getMetadata(node.getId()); + Metadata metadata = api.getNodeApi(lb.getRegion(), lb.getId()).createMetadata(node.getId(), metadataMap); + assertEquals(metadata, getExpectedMetadata()); + assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb)); + + metadata = api.getNodeApi(lb.getRegion(), lb.getId()).getMetadata(node.getId()); assertEquals(metadata, getExpectedMetadata()); - assertTrue(api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).updateMetadatum(node.getId(), metadata.getId("key1"), "key1-updated")); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb)); - metadata = api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).getMetadata(node.getId()); + assertTrue(api.getNodeApi(lb.getRegion(), lb.getId()).updateMetadatum(node.getId(), metadata.getId("key1"), "key1-updated")); + assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb)); + metadata = api.getNodeApi(lb.getRegion(), lb.getId()).getMetadata(node.getId()); assertEquals(metadata.get("key1"), "key1-updated"); - assertTrue(api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).deleteMetadatum(node.getId(), metadata.getId("key1"))); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb)); - metadata = api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).getMetadata(node.getId()); + assertTrue(api.getNodeApi(lb.getRegion(), lb.getId()).deleteMetadatum(node.getId(), metadata.getId("key1"))); + assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb)); + metadata = api.getNodeApi(lb.getRegion(), lb.getId()).getMetadata(node.getId()); assertNull(metadata.get("key1")); - assertTrue(api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).deleteMetadata(node.getId(), + assertTrue(api.getNodeApi(lb.getRegion(), lb.getId()).deleteMetadata(node.getId(), ImmutableList. of(metadata.getId("key2"), metadata.getId("key3")))); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb)); - metadata = api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).getMetadata(node.getId()); + assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb)); + metadata = api.getNodeApi(lb.getRegion(), lb.getId()).getMetadata(node.getId()); assertEquals(metadata.size(), 0); } } @@ -175,13 +175,13 @@ public class NodeApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { protected void tearDown() { for (Entry> entry : nodes.entrySet()) { LoadBalancer lb = entry.getKey(); - LoadBalancerApi lbClient = api.getLoadBalancerApiForZone(lb.getRegion()); + LoadBalancerApi lbClient = api.getLoadBalancerApi(lb.getRegion()); if (lbClient.get(lb.getId()).getStatus() != Status.DELETED) { - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb)); + assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb)); lbClient.delete(lb.getId()); } - assertTrue(awaitDeleted(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb)); + assertTrue(awaitDeleted(api.getLoadBalancerApi(lb.getRegion())).apply(lb)); } super.tearDown(); } diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ReportApiExpectTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ReportApiExpectTest.java index b77d2abf5b..4de08ba60c 100644 --- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ReportApiExpectTest.java +++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ReportApiExpectTest.java @@ -40,53 +40,53 @@ import com.google.common.collect.Iterables; public class ReportApiExpectTest extends BaseCloudLoadBalancerApiExpectTest { public void testListBillableLoadBalancers() { Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.DATE, -7); + calendar.add(Calendar.DATE, -7); Date aWeekAgo = calendar.getTime(); Date today = new Date(); - + String query = new StringBuilder() .append("?startTime=") .append(new DateParser().apply(aWeekAgo)) .append("&endTime=") .append(new DateParser().apply(today)) .toString(); - + URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/billable" + query); ReportApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/report-billable-list.json")).build() - ).getReportApiForZone("DFW"); - + ).getReportApi("DFW"); + FluentIterable loadBalancers = api.listBillableLoadBalancers(aWeekAgo, today).concat(); - + assertEquals(Iterables.size(loadBalancers), 2); } public void testGetHistoricalUsage() { Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.DATE, -7); + calendar.add(Calendar.DATE, -7); Date aWeekAgo = calendar.getTime(); Date today = new Date(); - + String query = new StringBuilder() .append("?startTime=") .append(new DateParser().apply(aWeekAgo)) .append("&endTime=") .append(new DateParser().apply(today)) .toString(); - + URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/usage" + query); ReportApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/report-historical-get.json")).build() - ).getReportApiForZone("DFW"); + ).getReportApi("DFW"); HistoricalUsage historicalUsage = api.getHistoricalUsage(aWeekAgo, today); - + assertEquals(historicalUsage.getAccountId(), 717071); assertEquals(Iterables.get(historicalUsage.getAccountUsage(), 0).getNumLoadBalancers(), 2); assertEquals(Iterables.size(historicalUsage.getLoadBalancerInfo()), 2); @@ -94,27 +94,27 @@ public class ReportApiExpectTest extends BaseCloudLoadBalancerApiExpectTest loadBalancerUsages = api.listLoadBalancerUsage(2000, aWeekAgo, today).concat(); - + assertEquals(Iterables.size(loadBalancerUsages), 25); } @@ -122,46 +122,46 @@ public class ReportApiExpectTest extends BaseCloudLoadBalancerApiExpectTest loadBalancerUsages = api.listCurrentLoadBalancerUsage(2000).concat(); - + assertEquals(Iterables.size(loadBalancerUsages), 25); } - + public void testGetLoadBalancerStats() { URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/stats"); ReportApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/report-loadbalancerstats-get.json")).build() - ).getReportApiForZone("DFW"); - + ).getReportApi("DFW"); + LoadBalancerStats loadBalancerStats = api.getLoadBalancerStats(2000); - + assertEquals(loadBalancerStats.getConnectTimeOut(), 2); assertEquals(loadBalancerStats.getConnectError(), 0); assertEquals(loadBalancerStats.getConnectFailure(), 0); assertEquals(loadBalancerStats.getDataTimedOut(), 10); assertEquals(loadBalancerStats.getKeepAliveTimedOut(), 0); assertEquals(loadBalancerStats.getMaxConn(), 22); - } + } public void testListProtocols() { URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/protocols"); ReportApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/report-protocols-list.json")).build() - ).getReportApiForZone("DFW"); - + ).getReportApi("DFW"); + Iterable protocols = api.listProtocols(); - + assertEquals(Iterables.size(protocols), 20); } @@ -169,13 +169,13 @@ public class ReportApiExpectTest extends BaseCloudLoadBalancerApiExpectTest algorithms = api.listAlgorithms(); - + assertEquals(Iterables.size(algorithms), 5); } } diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ReportApiLiveTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ReportApiLiveTest.java index 27875f7d7f..8824ecdfa7 100644 --- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ReportApiLiveTest.java +++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ReportApiLiveTest.java @@ -44,40 +44,40 @@ import com.google.common.collect.Iterables; @Test(groups = "live", singleThreaded = true, testName = "ReportApiLiveTest") public class ReportApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { private LoadBalancer lb; - private String zone; + private String region; public void testCreateLoadBalancer() { AddNode addNode = AddNode.builder().address("192.168.1.1").port(8080).build(); CreateLoadBalancer createLB = CreateLoadBalancer.builder() .name(prefix + "-jclouds").protocol("HTTP").port(80).virtualIPType(Type.PUBLIC).node(addNode).build(); - zone = Iterables.getFirst(api.getConfiguredZones(), null); - lb = api.getLoadBalancerApiForZone(zone).create(createLB); - - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); + region = Iterables.getFirst(api.getConfiguredRegions(), null); + lb = api.getLoadBalancerApi(region).create(createLB); + + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); } @Test(dependsOnMethods = "testCreateLoadBalancer") public void testReports() throws Exception { Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.DATE, -1); + calendar.add(Calendar.DATE, -1); Date yesterday = calendar.getTime(); Date today = new Date(); - FluentIterable loadBalancers = api.getReportApiForZone(zone).listBillableLoadBalancers(yesterday, today).concat(); + FluentIterable loadBalancers = api.getReportApi(region).listBillableLoadBalancers(yesterday, today).concat(); assertNotNull(loadBalancers); - - HistoricalUsage historicalUsage = api.getReportApiForZone(zone).getHistoricalUsage(yesterday, today); + + HistoricalUsage historicalUsage = api.getReportApi(region).getHistoricalUsage(yesterday, today); assertNotEquals(historicalUsage.getAccountId(), 0); - FluentIterable loadBalancerUsages = api.getReportApiForZone(zone).listLoadBalancerUsage(lb.getId(), yesterday, today).concat(); + FluentIterable loadBalancerUsages = api.getReportApi(region).listLoadBalancerUsage(lb.getId(), yesterday, today).concat(); assertNotNull(loadBalancerUsages); - loadBalancerUsages = api.getReportApiForZone(zone).listCurrentLoadBalancerUsage(lb.getId()).concat(); + loadBalancerUsages = api.getReportApi(region).listCurrentLoadBalancerUsage(lb.getId()).concat(); assertNotNull(loadBalancerUsages); - + try { - LoadBalancerStats loadBalancerStats = api.getReportApiForZone(zone).getLoadBalancerStats(lb.getId()); + LoadBalancerStats loadBalancerStats = api.getReportApi(region).getLoadBalancerStats(lb.getId()); assertNotNull(loadBalancerStats); } catch (HttpResponseException e) { @@ -86,20 +86,20 @@ public class ReportApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { throw e; } } - - Iterable protocols = api.getReportApiForZone(zone).listProtocols(); + + Iterable protocols = api.getReportApi(region).listProtocols(); assertTrue(!Iterables.isEmpty(protocols)); - Iterable algorithms = api.getReportApiForZone(zone).listAlgorithms(); + Iterable algorithms = api.getReportApi(region).listAlgorithms(); assertTrue(!Iterables.isEmpty(algorithms)); } @Override @AfterGroups(groups = "live") protected void tearDown() { - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - api.getLoadBalancerApiForZone(zone).delete(lb.getId()); - assertTrue(awaitDeleted(api.getLoadBalancerApiForZone(zone)).apply(lb)); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + api.getLoadBalancerApi(region).delete(lb.getId()); + assertTrue(awaitDeleted(api.getLoadBalancerApi(region)).apply(lb)); super.tearDown(); } } diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SSLTerminationApiExpectTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SSLTerminationApiExpectTest.java index fe69b0a04c..5a057285c6 100644 --- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SSLTerminationApiExpectTest.java +++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SSLTerminationApiExpectTest.java @@ -43,10 +43,10 @@ public class SSLTerminationApiExpectTest extends BaseCloudLoadBalancerApiExpectT URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/ssltermination"); SSLTerminationApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/ssltermination-get.json")).build() - ).getSSLTerminationApiForZoneAndLoadBalancer("DFW", 2000); + ).getSSLTerminationApi("DFW", 2000); SSLTermination sslTermination = api.get(); assertEquals(sslTermination, getSSLTermination()); @@ -56,10 +56,10 @@ public class SSLTerminationApiExpectTest extends BaseCloudLoadBalancerApiExpectT URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/ssltermination"); SSLTerminationApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(NOT_FOUND.getStatusCode()).build() - ).getSSLTerminationApiForZoneAndLoadBalancer("DFW", 2000); + ).getSSLTerminationApi("DFW", 2000); SSLTermination sslTermination = api.get(); assertNull(sslTermination); @@ -69,15 +69,15 @@ public class SSLTerminationApiExpectTest extends BaseCloudLoadBalancerApiExpectT URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/ssltermination"); SSLTerminationApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET() .method(PUT) .endpoint(endpoint) .payload(payloadFromResourceWithContentType("/ssltermination-create.json", APPLICATION_JSON)) .build(), HttpResponse.builder().statusCode(OK.getStatusCode()).build() - ).getSSLTerminationApiForZoneAndLoadBalancer("DFW", 2000); - + ).getSSLTerminationApi("DFW", 2000); + api.createOrUpdate(getSSLTermination()); } @@ -85,10 +85,10 @@ public class SSLTerminationApiExpectTest extends BaseCloudLoadBalancerApiExpectT URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/ssltermination"); SSLTerminationApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().method(DELETE).endpoint(endpoint).replaceHeader(ACCEPT, WILDCARD).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).build() - ).getSSLTerminationApiForZoneAndLoadBalancer("DFW", 2000); + ).getSSLTerminationApi("DFW", 2000); assertTrue(api.delete()); } @@ -100,7 +100,7 @@ public class SSLTerminationApiExpectTest extends BaseCloudLoadBalancerApiExpectT SSLTerminationApiExpectTest.class.getResourceAsStream("/ssltermination-privatekey.txt")); String intermediateCertificate = Strings2.toStringAndClose( SSLTerminationApiExpectTest.class.getResourceAsStream("/ssltermination-intermediatecertificate.txt")); - + SSLTermination sslTermination = SSLTermination.builder() .enabled(true) .secureTrafficOnly(false) diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SSLTerminationApiLiveTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SSLTerminationApiLiveTest.java index 27ce29ced0..8cca6b461a 100644 --- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SSLTerminationApiLiveTest.java +++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SSLTerminationApiLiveTest.java @@ -36,48 +36,48 @@ import com.google.common.collect.Iterables; @Test(groups = "live", singleThreaded = true, testName = "SSLTerminationApiLiveTest") public class SSLTerminationApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { private LoadBalancer lb; - private String zone; + private String region; public void testCreateLoadBalancer() { AddNode addNode = AddNode.builder().address("192.168.1.1").port(8080).build(); CreateLoadBalancer createLB = CreateLoadBalancer.builder() .name(prefix + "-jclouds").protocol("HTTP").port(80).virtualIPType(Type.PUBLIC).node(addNode).build(); - zone = Iterables.getFirst(api.getConfiguredZones(), null); - lb = api.getLoadBalancerApiForZone(zone).create(createLB); - - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); + region = Iterables.getFirst(api.getConfiguredRegions(), null); + lb = api.getLoadBalancerApi(region).create(createLB); + + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); } @Test(dependsOnMethods = "testCreateLoadBalancer") public void testCreateAndGetSSLTermination() throws Exception { - api.getSSLTerminationApiForZoneAndLoadBalancer(zone, lb.getId()).createOrUpdate( + api.getSSLTerminationApi(region, lb.getId()).createOrUpdate( SSLTerminationApiExpectTest.getSSLTermination()); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - - SSLTermination sslTermination = - api.getSSLTerminationApiForZoneAndLoadBalancer(zone, lb.getId()).get(); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + + SSLTermination sslTermination = + api.getSSLTerminationApi(region, lb.getId()).get(); assertEquals(sslTermination, SSLTerminationApiExpectTest.getSSLTermination()); } - + @Test(dependsOnMethods = "testCreateAndGetSSLTermination") public void testRemoveAndGetSSLTermination() throws Exception { - assertTrue(api.getSSLTerminationApiForZoneAndLoadBalancer(zone, lb.getId()).delete()); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - - SSLTermination sslTermination = - api.getSSLTerminationApiForZoneAndLoadBalancer(zone, lb.getId()).get(); - + assertTrue(api.getSSLTerminationApi(region, lb.getId()).delete()); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + + SSLTermination sslTermination = + api.getSSLTerminationApi(region, lb.getId()).get(); + assertNull(sslTermination); } @Override @AfterGroups(groups = "live") protected void tearDown() { - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - api.getLoadBalancerApiForZone(zone).delete(lb.getId()); - assertTrue(awaitDeleted(api.getLoadBalancerApiForZone(zone)).apply(lb)); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + api.getLoadBalancerApi(region).delete(lb.getId()); + assertTrue(awaitDeleted(api.getLoadBalancerApi(region)).apply(lb)); super.tearDown(); } } diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SessionPersistenceApiExpectTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SessionPersistenceApiExpectTest.java index 3849fb89f0..4f346f9cf0 100644 --- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SessionPersistenceApiExpectTest.java +++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SessionPersistenceApiExpectTest.java @@ -35,10 +35,10 @@ public class SessionPersistenceApiExpectTest extends BaseCloudLoadBalancerApiExp URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/sessionpersistence"); SessionPersistenceApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/sessionpersistence-get.json")).build() - ).getSessionPersistenceApiForZoneAndLoadBalancer("DFW", 2000); + ).getSessionPersistenceApi("DFW", 2000); SessionPersistence sessionPersistence = api.get(); assertEquals(sessionPersistence, SessionPersistence.HTTP_COOKIE); @@ -48,36 +48,36 @@ public class SessionPersistenceApiExpectTest extends BaseCloudLoadBalancerApiExp URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/sessionpersistence"); SessionPersistenceApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/sessionpersistence-get-deleted.json")).build() - ).getSessionPersistenceApiForZoneAndLoadBalancer("DFW", 2000); + ).getSessionPersistenceApi("DFW", 2000); SessionPersistence sessionPersistence = api.get(); assertNull(sessionPersistence); } - + public void testCreateSessionPersistence() { URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/sessionpersistence"); SessionPersistenceApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().method(PUT).endpoint(endpoint).payload(payloadFromResource("/sessionpersistence-create.json")).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).build() - ).getSessionPersistenceApiForZoneAndLoadBalancer("DFW", 2000); - + ).getSessionPersistenceApi("DFW", 2000); + api.create(SessionPersistence.HTTP_COOKIE); } - + public void testRemoveSessionPersistence() { URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/sessionpersistence"); SessionPersistenceApi api = requestsSendResponses( rackspaceAuthWithUsernameAndApiKey, - responseWithAccess, + responseWithAccess, authenticatedGET().method(DELETE).endpoint(endpoint).build(), HttpResponse.builder().statusCode(OK.getStatusCode()).build() - ).getSessionPersistenceApiForZoneAndLoadBalancer("DFW", 2000); - + ).getSessionPersistenceApi("DFW", 2000); + api.delete(); - } + } } diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SessionPersistenceApiLiveTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SessionPersistenceApiLiveTest.java index 26bb41e1f9..b6dad1f389 100644 --- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SessionPersistenceApiLiveTest.java +++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SessionPersistenceApiLiveTest.java @@ -36,47 +36,47 @@ import com.google.common.collect.Iterables; @Test(groups = "live", singleThreaded = true, testName = "SessionPersistenceApiLiveTest") public class SessionPersistenceApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { private LoadBalancer lb; - private String zone; + private String region; public void testCreateLoadBalancer() { AddNode addNode = AddNode.builder().address("192.168.1.1").port(8080).build(); CreateLoadBalancer createLB = CreateLoadBalancer.builder() .name(prefix + "-jclouds").protocol("HTTP").port(80).virtualIPType(Type.PUBLIC).node(addNode).build(); - zone = Iterables.getFirst(api.getConfiguredZones(), null); - lb = api.getLoadBalancerApiForZone(zone).create(createLB); - - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); + region = Iterables.getFirst(api.getConfiguredRegions(), null); + lb = api.getLoadBalancerApi(region).create(createLB); + + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); } @Test(dependsOnMethods = "testCreateLoadBalancer") public void testCreateAndGetSessionPersistence() throws Exception { - api.getSessionPersistenceApiForZoneAndLoadBalancer(zone, lb.getId()).create(SessionPersistence.HTTP_COOKIE); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - - SessionPersistence sessionPersistence = - api.getSessionPersistenceApiForZoneAndLoadBalancer(zone, lb.getId()).get(); + api.getSessionPersistenceApi(region, lb.getId()).create(SessionPersistence.HTTP_COOKIE); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + + SessionPersistence sessionPersistence = + api.getSessionPersistenceApi(region, lb.getId()).get(); assertEquals(sessionPersistence, SessionPersistence.HTTP_COOKIE); } - + @Test(dependsOnMethods = "testCreateAndGetSessionPersistence") public void testRemoveAndGetSessionPersistence() throws Exception { - api.getSessionPersistenceApiForZoneAndLoadBalancer(zone, lb.getId()).delete(); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - - SessionPersistence sessionPersistence = - api.getSessionPersistenceApiForZoneAndLoadBalancer(zone, lb.getId()).get(); - + api.getSessionPersistenceApi(region, lb.getId()).delete(); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + + SessionPersistence sessionPersistence = + api.getSessionPersistenceApi(region, lb.getId()).get(); + assertNull(sessionPersistence); } @Override @AfterGroups(groups = "live") protected void tearDown() { - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - api.getLoadBalancerApiForZone(zone).delete(lb.getId()); - assertTrue(awaitDeleted(api.getLoadBalancerApiForZone(zone)).apply(lb)); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + api.getLoadBalancerApi(region).delete(lb.getId()); + assertTrue(awaitDeleted(api.getLoadBalancerApi(region)).apply(lb)); super.tearDown(); } } diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/VirtualIPApiExpectTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/VirtualIPApiExpectTest.java index 39c0e128d7..d8bdedf8af 100644 --- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/VirtualIPApiExpectTest.java +++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/VirtualIPApiExpectTest.java @@ -40,10 +40,10 @@ public class VirtualIPApiExpectTest extends BaseCloudLoadBalancerApiExpectTest virtualIPs = api.list(); assertEquals(virtualIPs, getVirtualIPs()); @@ -53,11 +53,11 @@ public class VirtualIPApiExpectTest extends BaseCloudLoadBalancerApiExpectTest virtualIPIds = ImmutableList. of(23, 24); api.delete(virtualIPIds); diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/VirtualIPApiLiveTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/VirtualIPApiLiveTest.java index b94ebe5747..20443558b3 100644 --- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/VirtualIPApiLiveTest.java +++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/VirtualIPApiLiveTest.java @@ -40,57 +40,57 @@ import com.google.common.collect.Iterators; @Test(groups = "live", singleThreaded = true, testName = "VirtualIPApiLiveTest") public class VirtualIPApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { private LoadBalancer lb; - private String zone; + private String region; public void testCreateLoadBalancer() { AddNode addNode = AddNode.builder().address("192.168.1.1").port(8080).build(); CreateLoadBalancer createLB = CreateLoadBalancer.builder() .name(prefix + "-jclouds").protocol("HTTP").port(80).virtualIPType(Type.PUBLIC).node(addNode).build(); - zone = Iterables.getFirst(api.getConfiguredZones(), null); - lb = api.getLoadBalancerApiForZone(zone).create(createLB); - - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); + region = Iterables.getFirst(api.getConfiguredRegions(), null); + lb = api.getLoadBalancerApi(region).create(createLB); + + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); } @Test(dependsOnMethods = "testCreateLoadBalancer") public void testCreateVirtualIPs() throws Exception { - api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).create(VirtualIP.publicIPv6()); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).create(VirtualIP.publicIPv6()); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).create(VirtualIP.publicIPv6()); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); + api.getVirtualIPApi(region, lb.getId()).create(VirtualIP.publicIPv6()); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + api.getVirtualIPApi(region, lb.getId()).create(VirtualIP.publicIPv6()); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + api.getVirtualIPApi(region, lb.getId()).create(VirtualIP.publicIPv6()); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); - Iterable actualVirtualIPs = api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).list(); + Iterable actualVirtualIPs = api.getVirtualIPApi(region, lb.getId()).list(); assertEquals(Iterators.size(actualVirtualIPs.iterator()), 5); } - + @Test(dependsOnMethods = "testCreateVirtualIPs") public void testRemoveSingleVirtualIP() throws Exception { - Iterable actualVirtualIPs = api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).list(); + Iterable actualVirtualIPs = api.getVirtualIPApi(region, lb.getId()).list(); VirtualIPWithId removedVirtualIP = Iterables.getFirst(actualVirtualIPs, null); - - assertTrue(api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).delete(removedVirtualIP.getId())); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - - actualVirtualIPs = api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).list(); + + assertTrue(api.getVirtualIPApi(region, lb.getId()).delete(removedVirtualIP.getId())); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + + actualVirtualIPs = api.getVirtualIPApi(region, lb.getId()).list(); assertEquals(Iterators.size(actualVirtualIPs.iterator()), 4); } - + @Test(dependsOnMethods = "testRemoveSingleVirtualIP") public void testRemoveManyVirtualIPs() throws Exception { - Iterable actualVirtualIPs = api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).list(); + Iterable actualVirtualIPs = api.getVirtualIPApi(region, lb.getId()).list(); VirtualIPWithId removedVirtualIP1 = Iterables.getFirst(actualVirtualIPs, null); VirtualIPWithId removedVirtualIP2 = Iterables.getLast(actualVirtualIPs); List removedVirtualIPIds = ImmutableList. of(removedVirtualIP1.getId(), removedVirtualIP2.getId()); - - assertTrue(api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).delete(removedVirtualIPIds)); - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - - actualVirtualIPs = api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).list(); + + assertTrue(api.getVirtualIPApi(region, lb.getId()).delete(removedVirtualIPIds)); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + + actualVirtualIPs = api.getVirtualIPApi(region, lb.getId()).list(); assertEquals(Iterators.size(actualVirtualIPs.iterator()), 2); } @@ -98,9 +98,9 @@ public class VirtualIPApiLiveTest extends BaseCloudLoadBalancersApiLiveTest { @Override @AfterGroups(groups = "live") protected void tearDown() { - assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb)); - api.getLoadBalancerApiForZone(zone).delete(lb.getId()); - assertTrue(awaitDeleted(api.getLoadBalancerApiForZone(zone)).apply(lb)); + assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb)); + api.getLoadBalancerApi(region).delete(lb.getId()); + assertTrue(awaitDeleted(api.getLoadBalancerApi(region)).apply(lb)); super.tearDown(); } } diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/internal/BaseCloudLoadBalancersApiLiveTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/internal/BaseCloudLoadBalancersApiLiveTest.java index dde58acca6..b4d69f389e 100644 --- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/internal/BaseCloudLoadBalancersApiLiveTest.java +++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/internal/BaseCloudLoadBalancersApiLiveTest.java @@ -34,7 +34,7 @@ public class BaseCloudLoadBalancersApiLiveTest extends BaseApiLiveTest /** * Used to propagate caller {@code arg0} to a callee during an advance in a {@link PagedIterable}. For example, in - * the call {@code api.getUserApiForZone(zone).list()}, the caller arg0 is the value of {@code zone}, and the callee + * the call {@code api.getUserApi(region).list()}, the caller arg0 is the value of {@code region}, and the callee * is {@code UserApi.list()} - * + * */ public abstract static class FromCaller> extends Arg0ToPagedIterable { @Override diff --git a/core/src/main/java/org/jclouds/collect/internal/ArgsToPagedIterable.java b/core/src/main/java/org/jclouds/collect/internal/ArgsToPagedIterable.java index 9dfb3ad06f..6f1a0759d7 100644 --- a/core/src/main/java/org/jclouds/collect/internal/ArgsToPagedIterable.java +++ b/core/src/main/java/org/jclouds/collect/internal/ArgsToPagedIterable.java @@ -73,10 +73,10 @@ public abstract class ArgsToPagedIterable *

    * This class provides a way to propagate the arguments passed to the caller * of the method, so they can be used to fetch the next page of the result - * set. For example, in the call {@code api.getUserApiForZone(zone).list()}, - * the caller arg0 is the value of {@code zone}, and the callee is + * set. For example, in the call {@code api.getUserApi(region).list()}, + * the caller arg0 is the value of {@code region}, and the callee is * {@code UserApi.list()} - * + * * @see ParseImages function in openstack-glance for a usage example. */ public abstract static class FromCaller> extends ArgsToPagedIterable { diff --git a/core/src/test/java/org/jclouds/apis/BaseApiLiveTest.java b/core/src/test/java/org/jclouds/apis/BaseApiLiveTest.java index 7b26541d3a..b951f10736 100644 --- a/core/src/test/java/org/jclouds/apis/BaseApiLiveTest.java +++ b/core/src/test/java/org/jclouds/apis/BaseApiLiveTest.java @@ -74,17 +74,17 @@ public abstract class BaseApiLiveTest { } /** - * This helps live testing against specific zones only. - * @param zones A list of zones, usually from getConfiguredZones() - * @return a set of zones in the given set that are also contained in the set specified by the test.live.zones system property + * This helps live testing against specific regions only. + * @param regions A list of regions, usually from getConfiguredRegions() + * @return a set of regions in the given set that are also contained in the set specified by the test.live.regions system property */ - protected Set filterZones(Set zones) { - String zonesToList = System.getProperty("test.live.zones"); - if (zonesToList == null) { - return zones; // no filter applied + protected Set filterRegions(Set regions) { + String regionsToList = System.getProperty("test.live.regions"); + if (regionsToList == null) { + return regions; // no filter applied } - Set zoneFilter = Sets.newHashSet(Splitter.on(',').split(zonesToList)); - return Sets.intersection(zones, zoneFilter); + Set regionFilter = Sets.newHashSet(Splitter.on(',').split(regionsToList)); + return Sets.intersection(regions, regionFilter); } @BeforeClass(groups = { "integration", "live" }) @@ -115,7 +115,7 @@ public abstract class BaseApiLiveTest { return null; } } - + /** * @see org.jclouds.apis.Apis#withId */ @@ -151,7 +151,7 @@ public abstract class BaseApiLiveTest { "either createApiMetadata or createProviderMetadata must be overridden"))); return builder; } - + @AfterClass(groups = { "integration", "live" }) protected void tearDown() { closeQuietly(api); diff --git a/providers/hpcloud-blockstorage/src/test/java/org/jclouds/hpcloud/blockstorage/HPCloudBlockStorageProviderMetadataExpectTest.java b/providers/hpcloud-blockstorage/src/test/java/org/jclouds/hpcloud/blockstorage/HPCloudBlockStorageProviderMetadataExpectTest.java index c8eefd1904..2f43fc6324 100644 --- a/providers/hpcloud-blockstorage/src/test/java/org/jclouds/hpcloud/blockstorage/HPCloudBlockStorageProviderMetadataExpectTest.java +++ b/providers/hpcloud-blockstorage/src/test/java/org/jclouds/hpcloud/blockstorage/HPCloudBlockStorageProviderMetadataExpectTest.java @@ -35,8 +35,8 @@ public class HPCloudBlockStorageProviderMetadataExpectTest extends BaseCinderApi this.credential = "secretKey"; } - public void testCanGetConfiguredZones() { - + public void testCanGetConfiguredRegions() { + HttpRequest authenticate = HttpRequest.builder().method("POST") .endpoint("https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/tokens") .addHeader("Accept", "application/json") @@ -51,7 +51,7 @@ public class HPCloudBlockStorageProviderMetadataExpectTest extends BaseCinderApi CinderApi whenNovaRegionExists = requestSendsResponse(authenticate, authenticationResponse); - assertEquals(whenNovaRegionExists.getConfiguredZones(), ImmutableSet.of("region-a.geo-1", "region-b.geo-1")); + assertEquals(whenNovaRegionExists.getConfiguredRegions(), ImmutableSet.of("region-a.geo-1", "region-b.geo-1")); } diff --git a/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadata.java b/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadata.java index 58ac16b0f0..7fde453abf 100644 --- a/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadata.java +++ b/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadata.java @@ -30,7 +30,7 @@ import org.jclouds.hpcloud.compute.config.HPCloudComputeServiceContextModule; import org.jclouds.openstack.keystone.v2_0.config.AuthenticationApiModule; import org.jclouds.openstack.keystone.v2_0.config.CredentialTypes; import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule; -import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ZoneModule; +import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule; import org.jclouds.openstack.nova.v2_0.NovaApiMetadata; import org.jclouds.openstack.nova.v2_0.config.NovaHttpApiModule; import org.jclouds.openstack.nova.v2_0.config.NovaParserModule; @@ -53,7 +53,7 @@ public class HPCloudComputeProviderMetadata extends BaseProviderMetadata { public Builder toBuilder() { return builder().fromProviderMetadata(this); } - + public HPCloudComputeProviderMetadata() { super(builder()); } @@ -76,7 +76,7 @@ public class HPCloudComputeProviderMetadata extends BaseProviderMetadata { "imageNameMatches=.*LTS.*,os64Bit=true,locationId=region-a.geo-1"); return properties; } - + public static class Builder extends BaseProviderMetadata.Builder { protected Builder() { @@ -91,7 +91,7 @@ public class HPCloudComputeProviderMetadata extends BaseProviderMetadata { .defaultModules(ImmutableSet.>builder() .add(AuthenticationApiModule.class) .add(KeystoneAuthenticationModule.class) - .add(ZoneModule.class) + .add(RegionModule.class) .add(NovaParserModule.class) .add(NovaHttpApiModule.class) .add(HPCloudComputeServiceContextModule.class).build()) diff --git a/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeServiceAdapter.java b/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeServiceAdapter.java index 37103ca819..c18b82b155 100644 --- a/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeServiceAdapter.java +++ b/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeServiceAdapter.java @@ -20,13 +20,13 @@ import java.util.Set; import javax.inject.Inject; -import org.jclouds.location.Zone; +import org.jclouds.location.Region; import org.jclouds.openstack.nova.v2_0.NovaApi; import org.jclouds.openstack.nova.v2_0.compute.NovaComputeServiceAdapter; import org.jclouds.openstack.nova.v2_0.compute.functions.RemoveFloatingIpFromNodeAndDeallocate; import org.jclouds.openstack.nova.v2_0.domain.KeyPair; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ImageInZone; -import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.ImageInRegion; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; import com.google.common.base.Predicate; import com.google.common.base.Supplier; @@ -36,17 +36,17 @@ import com.google.common.collect.Iterables; public class HPCloudComputeServiceAdapter extends NovaComputeServiceAdapter { @Inject - public HPCloudComputeServiceAdapter(NovaApi novaApi, @Zone Supplier> zoneIds, - RemoveFloatingIpFromNodeAndDeallocate removeFloatingIpFromNodeAndDeallocate, LoadingCache keyPairCache) { - super(novaApi, zoneIds, removeFloatingIpFromNodeAndDeallocate, keyPairCache); + public HPCloudComputeServiceAdapter(NovaApi novaApi, @Region Supplier> regionIds, + RemoveFloatingIpFromNodeAndDeallocate removeFloatingIpFromNodeAndDeallocate, LoadingCache keyPairCache) { + super(novaApi, regionIds, removeFloatingIpFromNodeAndDeallocate, keyPairCache); } @Override - public Iterable listImages() { - return Iterables.filter(super.listImages(), new Predicate() { + public Iterable listImages() { + return Iterables.filter(super.listImages(), new Predicate() { @Override - public boolean apply(ImageInZone arg0) { + public boolean apply(ImageInRegion arg0) { String imageName = arg0.getImage().getName(); return imageName.indexOf("Kernel") == -1 && imageName.indexOf("Ramdisk") == -1; } diff --git a/providers/hpcloud-compute/src/test/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadataExpectTest.java b/providers/hpcloud-compute/src/test/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadataExpectTest.java index d8e38d81b1..ef2b7035a2 100644 --- a/providers/hpcloud-compute/src/test/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadataExpectTest.java +++ b/providers/hpcloud-compute/src/test/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadataExpectTest.java @@ -38,22 +38,22 @@ public class HPCloudComputeProviderMetadataExpectTest extends BaseNovaApiExpectT this.credential = "secret"; } - public void testCanGetConfiguredZones() { - + public void testCanGetConfiguredRegions() { + HttpRequest authenticate = HttpRequest.builder().method("POST") .endpoint("https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/tokens") .addHeader("Accept", "application/json") .payload(payloadFromStringWithContentType( "{\"auth\":{\"apiAccessKeyCredentials\":{\"accessKey\":\"accesskey\",\"secretKey\":\"secret\"},\"tenantName\":\"tenant\"}}" , "application/json")).build(); - + HttpResponse authenticationResponse = HttpResponse.builder().statusCode(200) .payload(payloadFromResourceWithContentType("/access_hpcloud.json", "application/json")).build(); NovaApi whenNovaRegionExists = requestSendsResponse(authenticate, authenticationResponse); - assertEquals(whenNovaRegionExists.getConfiguredZones(), ImmutableSet.of("region-a.geo-1", "region-b.geo-1")); + assertEquals(whenNovaRegionExists.getConfiguredRegions(), ImmutableSet.of("region-a.geo-1", "region-b.geo-1")); } diff --git a/providers/rackspace-cloudblockstorage-uk/src/main/java/org/jclouds/rackspace/cloudblockstorage/uk/CloudBlockStorageUKProviderMetadata.java b/providers/rackspace-cloudblockstorage-uk/src/main/java/org/jclouds/rackspace/cloudblockstorage/uk/CloudBlockStorageUKProviderMetadata.java index cdda3a7a0c..01b8c6a9a4 100644 --- a/providers/rackspace-cloudblockstorage-uk/src/main/java/org/jclouds/rackspace/cloudblockstorage/uk/CloudBlockStorageUKProviderMetadata.java +++ b/providers/rackspace-cloudblockstorage-uk/src/main/java/org/jclouds/rackspace/cloudblockstorage/uk/CloudBlockStorageUKProviderMetadata.java @@ -17,8 +17,8 @@ package org.jclouds.rackspace.cloudblockstorage.uk; import static org.jclouds.location.reference.LocationConstants.ISO3166_CODES; -import static org.jclouds.location.reference.LocationConstants.PROPERTY_ZONE; -import static org.jclouds.location.reference.LocationConstants.PROPERTY_ZONES; +import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGION; +import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS; import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE; import java.net.URI; @@ -27,7 +27,7 @@ import java.util.Properties; import org.jclouds.openstack.cinder.v1.CinderApiMetadata; import org.jclouds.openstack.cinder.v1.config.CinderHttpApiModule; import org.jclouds.openstack.cinder.v1.config.CinderParserModule; -import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ZoneModule; +import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule; import org.jclouds.providers.ProviderMetadata; import org.jclouds.providers.internal.BaseProviderMetadata; import org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationApiModule; @@ -62,11 +62,11 @@ public class CloudBlockStorageUKProviderMetadata extends BaseProviderMetadata { public static Properties defaultProperties() { Properties properties = new Properties(); properties.setProperty(CREDENTIAL_TYPE, CloudIdentityCredentialTypes.API_KEY_CREDENTIALS); - properties.setProperty(PROPERTY_ZONES, "LON"); - properties.setProperty(PROPERTY_ZONE + ".LON." + ISO3166_CODES, "GB-SLG"); + properties.setProperty(PROPERTY_REGIONS, "LON"); + properties.setProperty(PROPERTY_REGION + ".LON." + ISO3166_CODES, "GB-SLG"); return properties; } - + public static class Builder extends BaseProviderMetadata.Builder { protected Builder() { @@ -81,7 +81,7 @@ public class CloudBlockStorageUKProviderMetadata extends BaseProviderMetadata { .defaultModules(ImmutableSet.>builder() .add(CloudIdentityAuthenticationApiModule.class) .add(CloudIdentityAuthenticationModule.class) - .add(ZoneModule.class) + .add(RegionModule.class) .add(CinderParserModule.class) .add(CinderHttpApiModule.class).build()) .build()) diff --git a/providers/rackspace-cloudblockstorage-uk/src/test/java/org/jclouds/rackspace/cloudblockstorage/uk/CloudBlockStorageUKProviderMetadataExpectTest.java b/providers/rackspace-cloudblockstorage-uk/src/test/java/org/jclouds/rackspace/cloudblockstorage/uk/CloudBlockStorageUKProviderMetadataExpectTest.java index f335686799..840a960a19 100644 --- a/providers/rackspace-cloudblockstorage-uk/src/test/java/org/jclouds/rackspace/cloudblockstorage/uk/CloudBlockStorageUKProviderMetadataExpectTest.java +++ b/providers/rackspace-cloudblockstorage-uk/src/test/java/org/jclouds/rackspace/cloudblockstorage/uk/CloudBlockStorageUKProviderMetadataExpectTest.java @@ -38,15 +38,15 @@ public class CloudBlockStorageUKProviderMetadataExpectTest extends BaseCinderApi this.credential = "myApiKey"; } - public void testCanGetConfiguredZones() { - + public void testCanGetConfiguredRegions() { + HttpRequest authenticate = HttpRequest.builder().method("POST") .endpoint("https://lon.identity.api.rackspacecloud.com/v2.0/tokens") .addHeader("Accept", "application/json") .payload(payloadFromStringWithContentType( "{\"auth\":{\"RAX-KSKEY:apiKeyCredentials\":{\"username\":\"myUsername\",\"apiKey\":\"myApiKey\"}}}" , "application/json")).build(); - + HttpResponse authenticationResponse = HttpResponse.builder() .statusCode(200) @@ -55,7 +55,7 @@ public class CloudBlockStorageUKProviderMetadataExpectTest extends BaseCinderApi CinderApi whenNovaRegionExists = requestSendsResponse(authenticate, authenticationResponse); - assertEquals(whenNovaRegionExists.getConfiguredZones(), ImmutableSet.of("LON")); + assertEquals(whenNovaRegionExists.getConfiguredRegions(), ImmutableSet.of("LON")); } diff --git a/providers/rackspace-cloudblockstorage-us/src/main/java/org/jclouds/rackspace/cloudblockstorage/us/CloudBlockStorageUSProviderMetadata.java b/providers/rackspace-cloudblockstorage-us/src/main/java/org/jclouds/rackspace/cloudblockstorage/us/CloudBlockStorageUSProviderMetadata.java index 2a711f56f9..5741b151ca 100644 --- a/providers/rackspace-cloudblockstorage-us/src/main/java/org/jclouds/rackspace/cloudblockstorage/us/CloudBlockStorageUSProviderMetadata.java +++ b/providers/rackspace-cloudblockstorage-us/src/main/java/org/jclouds/rackspace/cloudblockstorage/us/CloudBlockStorageUSProviderMetadata.java @@ -17,8 +17,8 @@ package org.jclouds.rackspace.cloudblockstorage.us; import static org.jclouds.location.reference.LocationConstants.ISO3166_CODES; -import static org.jclouds.location.reference.LocationConstants.PROPERTY_ZONE; -import static org.jclouds.location.reference.LocationConstants.PROPERTY_ZONES; +import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGION; +import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS; import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE; import java.net.URI; @@ -27,7 +27,7 @@ import java.util.Properties; import org.jclouds.openstack.cinder.v1.CinderApiMetadata; import org.jclouds.openstack.cinder.v1.config.CinderHttpApiModule; import org.jclouds.openstack.cinder.v1.config.CinderParserModule; -import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ZoneModule; +import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule; import org.jclouds.providers.ProviderMetadata; import org.jclouds.providers.internal.BaseProviderMetadata; import org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationApiModule; @@ -62,15 +62,15 @@ public class CloudBlockStorageUSProviderMetadata extends BaseProviderMetadata { public static Properties defaultProperties() { Properties properties = new Properties(); properties.setProperty(CREDENTIAL_TYPE, CloudIdentityCredentialTypes.API_KEY_CREDENTIALS); - properties.setProperty(PROPERTY_ZONES, "ORD,DFW,IAD,SYD,HKG"); - properties.setProperty(PROPERTY_ZONE + ".ORD." + ISO3166_CODES, "US-IL"); - properties.setProperty(PROPERTY_ZONE + ".DFW." + ISO3166_CODES, "US-TX"); - properties.setProperty(PROPERTY_ZONE + ".IAD." + ISO3166_CODES, "US-VA"); - properties.setProperty(PROPERTY_ZONE + ".SYD." + ISO3166_CODES, "AU-NSW"); - properties.setProperty(PROPERTY_ZONE + ".HKG." + ISO3166_CODES, "HK"); + properties.setProperty(PROPERTY_REGIONS, "ORD,DFW,IAD,SYD,HKG"); + properties.setProperty(PROPERTY_REGION + ".ORD." + ISO3166_CODES, "US-IL"); + properties.setProperty(PROPERTY_REGION + ".DFW." + ISO3166_CODES, "US-TX"); + properties.setProperty(PROPERTY_REGION + ".IAD." + ISO3166_CODES, "US-VA"); + properties.setProperty(PROPERTY_REGION + ".SYD." + ISO3166_CODES, "AU-NSW"); + properties.setProperty(PROPERTY_REGION + ".HKG." + ISO3166_CODES, "HK"); return properties; } - + public static class Builder extends BaseProviderMetadata.Builder { protected Builder() { @@ -85,7 +85,7 @@ public class CloudBlockStorageUSProviderMetadata extends BaseProviderMetadata { .defaultModules(ImmutableSet.>builder() .add(CloudIdentityAuthenticationApiModule.class) .add(CloudIdentityAuthenticationModule.class) - .add(ZoneModule.class) + .add(RegionModule.class) .add(CinderParserModule.class) .add(CinderHttpApiModule.class).build()) .build()) diff --git a/providers/rackspace-cloudblockstorage-us/src/test/java/org/jclouds/rackspace/cloudblockstorage/us/CloudBlockStorageUSProviderMetadataExpectTest.java b/providers/rackspace-cloudblockstorage-us/src/test/java/org/jclouds/rackspace/cloudblockstorage/us/CloudBlockStorageUSProviderMetadataExpectTest.java index 04f63aedd9..0ffbdcbfd0 100644 --- a/providers/rackspace-cloudblockstorage-us/src/test/java/org/jclouds/rackspace/cloudblockstorage/us/CloudBlockStorageUSProviderMetadataExpectTest.java +++ b/providers/rackspace-cloudblockstorage-us/src/test/java/org/jclouds/rackspace/cloudblockstorage/us/CloudBlockStorageUSProviderMetadataExpectTest.java @@ -38,15 +38,15 @@ public class CloudBlockStorageUSProviderMetadataExpectTest extends BaseCinderApi this.credential = "myApiKey"; } - public void testCanGetConfiguredZones() { - + public void testCanGetConfiguredRegions() { + HttpRequest authenticate = HttpRequest.builder().method("POST") .endpoint("https://identity.api.rackspacecloud.com/v2.0/tokens") .addHeader("Accept", "application/json") .payload(payloadFromStringWithContentType( "{\"auth\":{\"RAX-KSKEY:apiKeyCredentials\":{\"username\":\"myUsername\",\"apiKey\":\"myApiKey\"}}}" , "application/json")).build(); - + HttpResponse authenticationResponse = HttpResponse.builder() .statusCode(200) @@ -55,7 +55,7 @@ public class CloudBlockStorageUSProviderMetadataExpectTest extends BaseCinderApi CinderApi whenNovaRegionExists = requestSendsResponse(authenticate, authenticationResponse); - assertEquals(whenNovaRegionExists.getConfiguredZones(), ImmutableSet.of("ORD", "DFW")); + assertEquals(whenNovaRegionExists.getConfiguredRegions(), ImmutableSet.of("ORD", "DFW")); } diff --git a/providers/rackspace-clouddatabases-uk/src/main/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderMetadata.java b/providers/rackspace-clouddatabases-uk/src/main/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderMetadata.java index 08de51044d..fa146d6b8a 100644 --- a/providers/rackspace-clouddatabases-uk/src/main/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderMetadata.java +++ b/providers/rackspace-clouddatabases-uk/src/main/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderMetadata.java @@ -17,15 +17,15 @@ package org.jclouds.rackspace.clouddatabases.uk; import static org.jclouds.location.reference.LocationConstants.ISO3166_CODES; -import static org.jclouds.location.reference.LocationConstants.PROPERTY_ZONE; -import static org.jclouds.location.reference.LocationConstants.PROPERTY_ZONES; +import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGION; +import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS; import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE; import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE; import java.net.URI; import java.util.Properties; -import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ZoneModule; +import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule; import org.jclouds.openstack.trove.v1.TroveApiMetadata; import org.jclouds.openstack.trove.v1.config.TroveHttpApiModule; import org.jclouds.openstack.trove.v1.config.TroveParserModule; @@ -65,8 +65,8 @@ public class CloudDatabasesUKProviderMetadata extends BaseProviderMetadata { Properties properties = new Properties(); properties.setProperty(CREDENTIAL_TYPE, CloudIdentityCredentialTypes.API_KEY_CREDENTIALS); properties.setProperty(SERVICE_TYPE, ServiceType.DATABASES); - properties.setProperty(PROPERTY_ZONES, "LON"); - properties.setProperty(PROPERTY_ZONE + ".LON." + ISO3166_CODES, "GB-SLG"); + properties.setProperty(PROPERTY_REGIONS, "LON"); + properties.setProperty(PROPERTY_REGION + ".LON." + ISO3166_CODES, "GB-SLG"); return properties; } @@ -84,7 +84,7 @@ public class CloudDatabasesUKProviderMetadata extends BaseProviderMetadata { .defaultModules(ImmutableSet.>builder() .add(CloudIdentityAuthenticationApiModule.class) .add(CloudIdentityAuthenticationModule.class) - .add(ZoneModule.class) + .add(RegionModule.class) .add(TroveParserModule.class) .add(TroveHttpApiModule.class).build()) .build()) diff --git a/providers/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderMetadataExpectTest.java b/providers/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderMetadataExpectTest.java index d1065dc10d..5cf11b8cb3 100644 --- a/providers/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderMetadataExpectTest.java +++ b/providers/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderMetadataExpectTest.java @@ -38,15 +38,15 @@ public class CloudDatabasesUKProviderMetadataExpectTest extends BaseTroveApiExpe this.credential = "myApiKey"; } - public void testCanGetConfiguredZones() { - + public void testCanGetConfiguredRegions() { + HttpRequest authenticate = HttpRequest.builder().method("POST") .endpoint("https://lon.identity.api.rackspacecloud.com/v2.0/tokens") .addHeader("Accept", "application/json") .payload(payloadFromStringWithContentType( "{\"auth\":{\"RAX-KSKEY:apiKeyCredentials\":{\"username\":\"myUsername\",\"apiKey\":\"myApiKey\"}}}" , "application/json")).build(); - + HttpResponse authenticationResponse = HttpResponse.builder() .statusCode(200) @@ -55,7 +55,7 @@ public class CloudDatabasesUKProviderMetadataExpectTest extends BaseTroveApiExpe TroveApi whenNovaRegionExists = requestSendsResponse(authenticate, authenticationResponse); - assertEquals(whenNovaRegionExists.getConfiguredZones(), ImmutableSet.of("LON")); + assertEquals(whenNovaRegionExists.getConfiguredRegions(), ImmutableSet.of("LON")); } diff --git a/providers/rackspace-clouddatabases-us/src/main/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderMetadata.java b/providers/rackspace-clouddatabases-us/src/main/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderMetadata.java index f9d720eeb4..f72e4fa180 100644 --- a/providers/rackspace-clouddatabases-us/src/main/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderMetadata.java +++ b/providers/rackspace-clouddatabases-us/src/main/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderMetadata.java @@ -17,15 +17,15 @@ package org.jclouds.rackspace.clouddatabases.us; import static org.jclouds.location.reference.LocationConstants.ISO3166_CODES; -import static org.jclouds.location.reference.LocationConstants.PROPERTY_ZONE; -import static org.jclouds.location.reference.LocationConstants.PROPERTY_ZONES; +import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGION; +import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS; import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE; import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE; import java.net.URI; import java.util.Properties; -import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ZoneModule; +import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule; import org.jclouds.openstack.trove.v1.TroveApiMetadata; import org.jclouds.openstack.trove.v1.config.TroveHttpApiModule; import org.jclouds.openstack.trove.v1.config.TroveParserModule; @@ -65,12 +65,12 @@ public class CloudDatabasesUSProviderMetadata extends BaseProviderMetadata { Properties properties = new Properties(); properties.setProperty(CREDENTIAL_TYPE, CloudIdentityCredentialTypes.API_KEY_CREDENTIALS); properties.setProperty(SERVICE_TYPE, ServiceType.DATABASES); - properties.setProperty(PROPERTY_ZONES, "ORD,DFW,IAD,SYD,HKG"); - properties.setProperty(PROPERTY_ZONE + ".ORD." + ISO3166_CODES, "US-IL"); - properties.setProperty(PROPERTY_ZONE + ".DFW." + ISO3166_CODES, "US-TX"); - properties.setProperty(PROPERTY_ZONE + ".IAD." + ISO3166_CODES, "US-VA"); - properties.setProperty(PROPERTY_ZONE + ".SYD." + ISO3166_CODES, "AU-NSW"); - properties.setProperty(PROPERTY_ZONE + ".HKG." + ISO3166_CODES, "HK"); + properties.setProperty(PROPERTY_REGIONS, "ORD,DFW,IAD,SYD,HKG"); + properties.setProperty(PROPERTY_REGION + ".ORD." + ISO3166_CODES, "US-IL"); + properties.setProperty(PROPERTY_REGION + ".DFW." + ISO3166_CODES, "US-TX"); + properties.setProperty(PROPERTY_REGION + ".IAD." + ISO3166_CODES, "US-VA"); + properties.setProperty(PROPERTY_REGION + ".SYD." + ISO3166_CODES, "AU-NSW"); + properties.setProperty(PROPERTY_REGION + ".HKG." + ISO3166_CODES, "HK"); return properties; } @@ -88,7 +88,7 @@ public class CloudDatabasesUSProviderMetadata extends BaseProviderMetadata { .defaultModules(ImmutableSet.>builder() .add(CloudIdentityAuthenticationApiModule.class) .add(CloudIdentityAuthenticationModule.class) - .add(ZoneModule.class) + .add(RegionModule.class) .add(TroveParserModule.class) .add(TroveHttpApiModule.class).build()) .build()) diff --git a/providers/rackspace-clouddatabases-us/src/test/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderMetadataExpectTest.java b/providers/rackspace-clouddatabases-us/src/test/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderMetadataExpectTest.java index 40190fe09e..eeeccc7d7f 100644 --- a/providers/rackspace-clouddatabases-us/src/test/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderMetadataExpectTest.java +++ b/providers/rackspace-clouddatabases-us/src/test/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderMetadataExpectTest.java @@ -38,15 +38,15 @@ public class CloudDatabasesUSProviderMetadataExpectTest extends BaseTroveApiExpe this.credential = "myApiKey"; } - public void testCanGetConfiguredZones() { - + public void testCanGetConfiguredRegions() { + HttpRequest authenticate = HttpRequest.builder().method("POST") .endpoint("https://identity.api.rackspacecloud.com/v2.0/tokens") .addHeader("Accept", "application/json") .payload(payloadFromStringWithContentType( "{\"auth\":{\"RAX-KSKEY:apiKeyCredentials\":{\"username\":\"myUsername\",\"apiKey\":\"myApiKey\"}}}" , "application/json")).build(); - + HttpResponse authenticationResponse = HttpResponse.builder() .statusCode(200) @@ -55,7 +55,7 @@ public class CloudDatabasesUSProviderMetadataExpectTest extends BaseTroveApiExpe TroveApi whenRegionExists = requestSendsResponse(authenticate, authenticationResponse); - assertEquals(whenRegionExists.getConfiguredZones(), ImmutableSet.of("ORD", "DFW", "SYD")); + assertEquals(whenRegionExists.getConfiguredRegions(), ImmutableSet.of("ORD", "DFW", "SYD")); } diff --git a/providers/rackspace-cloudloadbalancers-uk/src/main/java/org/jclouds/rackspace/cloudloadbalancers/uk/CloudLoadBalancersUKProviderMetadata.java b/providers/rackspace-cloudloadbalancers-uk/src/main/java/org/jclouds/rackspace/cloudloadbalancers/uk/CloudLoadBalancersUKProviderMetadata.java index f5b2fa5619..ffd41119a8 100644 --- a/providers/rackspace-cloudloadbalancers-uk/src/main/java/org/jclouds/rackspace/cloudloadbalancers/uk/CloudLoadBalancersUKProviderMetadata.java +++ b/providers/rackspace-cloudloadbalancers-uk/src/main/java/org/jclouds/rackspace/cloudloadbalancers/uk/CloudLoadBalancersUKProviderMetadata.java @@ -17,8 +17,8 @@ package org.jclouds.rackspace.cloudloadbalancers.uk; import static org.jclouds.location.reference.LocationConstants.ISO3166_CODES; -import static org.jclouds.location.reference.LocationConstants.PROPERTY_ZONE; -import static org.jclouds.location.reference.LocationConstants.PROPERTY_ZONES; +import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGION; +import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS; import java.net.URI; import java.util.Properties; @@ -31,7 +31,7 @@ import org.jclouds.rackspace.cloudloadbalancers.v1.CloudLoadBalancersApiMetadata * Implementation of {@link org.jclouds.types.ProviderMetadata} for Rackspace Cloud LoadBalancers UK. */ public class CloudLoadBalancersUKProviderMetadata extends BaseProviderMetadata { - + public static Builder builder() { return new Builder(); } @@ -40,7 +40,7 @@ public class CloudLoadBalancersUKProviderMetadata extends BaseProviderMetadata { public Builder toBuilder() { return builder().fromProviderMetadata(this); } - + public CloudLoadBalancersUKProviderMetadata() { super(builder()); } @@ -51,8 +51,8 @@ public class CloudLoadBalancersUKProviderMetadata extends BaseProviderMetadata { public static Properties defaultProperties() { Properties properties = new Properties(); - properties.setProperty(PROPERTY_ZONES, "LON"); - properties.setProperty(PROPERTY_ZONE + ".LON." + ISO3166_CODES, "GB-SLG"); + properties.setProperty(PROPERTY_REGIONS, "LON"); + properties.setProperty(PROPERTY_REGION + ".LON." + ISO3166_CODES, "GB-SLG"); return properties; } public static class Builder extends BaseProviderMetadata.Builder { @@ -75,7 +75,7 @@ public class CloudLoadBalancersUKProviderMetadata extends BaseProviderMetadata { public CloudLoadBalancersUKProviderMetadata build() { return new CloudLoadBalancersUKProviderMetadata(this); } - + @Override public Builder fromProviderMetadata( ProviderMetadata in) { diff --git a/providers/rackspace-cloudloadbalancers-us/src/main/java/org/jclouds/rackspace/cloudloadbalancers/us/CloudLoadBalancersUSProviderMetadata.java b/providers/rackspace-cloudloadbalancers-us/src/main/java/org/jclouds/rackspace/cloudloadbalancers/us/CloudLoadBalancersUSProviderMetadata.java index d388d512a5..3aeb55cb64 100644 --- a/providers/rackspace-cloudloadbalancers-us/src/main/java/org/jclouds/rackspace/cloudloadbalancers/us/CloudLoadBalancersUSProviderMetadata.java +++ b/providers/rackspace-cloudloadbalancers-us/src/main/java/org/jclouds/rackspace/cloudloadbalancers/us/CloudLoadBalancersUSProviderMetadata.java @@ -17,8 +17,8 @@ package org.jclouds.rackspace.cloudloadbalancers.us; import static org.jclouds.location.reference.LocationConstants.ISO3166_CODES; -import static org.jclouds.location.reference.LocationConstants.PROPERTY_ZONE; -import static org.jclouds.location.reference.LocationConstants.PROPERTY_ZONES; +import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGION; +import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS; import java.net.URI; import java.util.Properties; @@ -40,7 +40,7 @@ public class CloudLoadBalancersUSProviderMetadata extends BaseProviderMetadata { public Builder toBuilder() { return builder().fromProviderMetadata(this); } - + public CloudLoadBalancersUSProviderMetadata() { super(builder()); } @@ -51,15 +51,15 @@ public class CloudLoadBalancersUSProviderMetadata extends BaseProviderMetadata { public static Properties defaultProperties() { Properties properties = new Properties(); - properties.setProperty(PROPERTY_ZONES, "ORD,DFW,IAD,SYD,HKG"); - properties.setProperty(PROPERTY_ZONE + ".ORD." + ISO3166_CODES, "US-IL"); - properties.setProperty(PROPERTY_ZONE + ".DFW." + ISO3166_CODES, "US-TX"); - properties.setProperty(PROPERTY_ZONE + ".IAD." + ISO3166_CODES, "US-VA"); - properties.setProperty(PROPERTY_ZONE + ".SYD." + ISO3166_CODES, "AU-NSW"); - properties.setProperty(PROPERTY_ZONE + ".HKG." + ISO3166_CODES, "HK"); + properties.setProperty(PROPERTY_REGIONS, "ORD,DFW,IAD,SYD,HKG"); + properties.setProperty(PROPERTY_REGION + ".ORD." + ISO3166_CODES, "US-IL"); + properties.setProperty(PROPERTY_REGION + ".DFW." + ISO3166_CODES, "US-TX"); + properties.setProperty(PROPERTY_REGION + ".IAD." + ISO3166_CODES, "US-VA"); + properties.setProperty(PROPERTY_REGION + ".SYD." + ISO3166_CODES, "AU-NSW"); + properties.setProperty(PROPERTY_REGION + ".HKG." + ISO3166_CODES, "HK"); return properties; } - + public static class Builder extends BaseProviderMetadata.Builder { protected Builder() { @@ -80,7 +80,7 @@ public class CloudLoadBalancersUSProviderMetadata extends BaseProviderMetadata { public CloudLoadBalancersUSProviderMetadata build() { return new CloudLoadBalancersUSProviderMetadata(this); } - + @Override public Builder fromProviderMetadata( ProviderMetadata in) { diff --git a/providers/rackspace-cloudservers-uk/src/main/java/org/jclouds/rackspace/cloudservers/uk/CloudServersUKProviderMetadata.java b/providers/rackspace-cloudservers-uk/src/main/java/org/jclouds/rackspace/cloudservers/uk/CloudServersUKProviderMetadata.java index 945bd3e06c..80c94ea84f 100644 --- a/providers/rackspace-cloudservers-uk/src/main/java/org/jclouds/rackspace/cloudservers/uk/CloudServersUKProviderMetadata.java +++ b/providers/rackspace-cloudservers-uk/src/main/java/org/jclouds/rackspace/cloudservers/uk/CloudServersUKProviderMetadata.java @@ -17,14 +17,14 @@ package org.jclouds.rackspace.cloudservers.uk; import static org.jclouds.location.reference.LocationConstants.ISO3166_CODES; -import static org.jclouds.location.reference.LocationConstants.PROPERTY_ZONE; -import static org.jclouds.location.reference.LocationConstants.PROPERTY_ZONES; +import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGION; +import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS; import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE; import java.net.URI; import java.util.Properties; -import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ZoneModule; +import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule; import org.jclouds.openstack.nova.v2_0.NovaApiMetadata; import org.jclouds.openstack.nova.v2_0.config.NovaHttpApiModule; import org.jclouds.openstack.nova.v2_0.config.NovaParserModule; @@ -51,7 +51,7 @@ public class CloudServersUKProviderMetadata extends BaseProviderMetadata { public Builder toBuilder() { return builder().fromProviderMetadata(this); } - + public CloudServersUKProviderMetadata() { super(builder()); } @@ -63,11 +63,11 @@ public class CloudServersUKProviderMetadata extends BaseProviderMetadata { public static Properties defaultProperties() { Properties properties = new Properties(); properties.setProperty(CREDENTIAL_TYPE, CloudIdentityCredentialTypes.API_KEY_CREDENTIALS); - properties.setProperty(PROPERTY_ZONES, "LON"); - properties.setProperty(PROPERTY_ZONE + ".LON." + ISO3166_CODES, "GB-SLG"); + properties.setProperty(PROPERTY_REGIONS, "LON"); + properties.setProperty(PROPERTY_REGION + ".LON." + ISO3166_CODES, "GB-SLG"); return properties; } - + public static class Builder extends BaseProviderMetadata.Builder { protected Builder() { @@ -83,7 +83,7 @@ public class CloudServersUKProviderMetadata extends BaseProviderMetadata { .defaultModules(ImmutableSet.>builder() .add(CloudIdentityAuthenticationApiModule.class) .add(CloudIdentityAuthenticationModule.class) - .add(ZoneModule.class) + .add(RegionModule.class) .add(NovaParserModule.class) .add(NovaHttpApiModule.class) .add(CloudServersUKComputeServiceContextModule.class).build()) diff --git a/providers/rackspace-cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/uk/CloudServersUKProviderMetadataExpectTest.java b/providers/rackspace-cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/uk/CloudServersUKProviderMetadataExpectTest.java index 51ff85c589..aaadc20450 100644 --- a/providers/rackspace-cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/uk/CloudServersUKProviderMetadataExpectTest.java +++ b/providers/rackspace-cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/uk/CloudServersUKProviderMetadataExpectTest.java @@ -38,22 +38,22 @@ public class CloudServersUKProviderMetadataExpectTest extends BaseNovaApiExpectT this.credential = "myApiKey"; } - public void testCanGetConfiguredZones() { - + public void testCanGetConfiguredRegions() { + HttpRequest authenticate = HttpRequest.builder().method("POST") .endpoint("https://lon.identity.api.rackspacecloud.com/v2.0/tokens") .addHeader("Accept", "application/json") .payload(payloadFromStringWithContentType( "{\"auth\":{\"RAX-KSKEY:apiKeyCredentials\":{\"username\":\"myUsername\",\"apiKey\":\"myApiKey\"}}}" , "application/json")).build(); - + HttpResponse authenticationResponse = HttpResponse.builder().statusCode(200) .payload(payloadFromResourceWithContentType("/access_rax_uk.json", "application/json")).build(); NovaApi whenNovaRegionExists = requestSendsResponse(authenticate, authenticationResponse); - assertEquals(whenNovaRegionExists.getConfiguredZones(), ImmutableSet.of("LON")); + assertEquals(whenNovaRegionExists.getConfiguredRegions(), ImmutableSet.of("LON")); } diff --git a/providers/rackspace-cloudservers-us/src/main/java/org/jclouds/rackspace/cloudservers/us/CloudServersUSProviderMetadata.java b/providers/rackspace-cloudservers-us/src/main/java/org/jclouds/rackspace/cloudservers/us/CloudServersUSProviderMetadata.java index 87b2d98701..9502934565 100644 --- a/providers/rackspace-cloudservers-us/src/main/java/org/jclouds/rackspace/cloudservers/us/CloudServersUSProviderMetadata.java +++ b/providers/rackspace-cloudservers-us/src/main/java/org/jclouds/rackspace/cloudservers/us/CloudServersUSProviderMetadata.java @@ -17,14 +17,14 @@ package org.jclouds.rackspace.cloudservers.us; import static org.jclouds.location.reference.LocationConstants.ISO3166_CODES; -import static org.jclouds.location.reference.LocationConstants.PROPERTY_ZONE; -import static org.jclouds.location.reference.LocationConstants.PROPERTY_ZONES; +import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGION; +import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS; import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE; import java.net.URI; import java.util.Properties; -import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ZoneModule; +import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule; import org.jclouds.openstack.nova.v2_0.NovaApiMetadata; import org.jclouds.openstack.nova.v2_0.config.NovaHttpApiModule; import org.jclouds.openstack.nova.v2_0.config.NovaParserModule; @@ -51,7 +51,7 @@ public class CloudServersUSProviderMetadata extends BaseProviderMetadata { public Builder toBuilder() { return builder().fromProviderMetadata(this); } - + public CloudServersUSProviderMetadata() { super(builder()); } @@ -63,15 +63,15 @@ public class CloudServersUSProviderMetadata extends BaseProviderMetadata { public static Properties defaultProperties() { Properties properties = new Properties(); properties.setProperty(CREDENTIAL_TYPE, CloudIdentityCredentialTypes.API_KEY_CREDENTIALS); - properties.setProperty(PROPERTY_ZONES, "ORD,DFW,IAD,SYD,HKG"); - properties.setProperty(PROPERTY_ZONE + ".ORD." + ISO3166_CODES, "US-IL"); - properties.setProperty(PROPERTY_ZONE + ".DFW." + ISO3166_CODES, "US-TX"); - properties.setProperty(PROPERTY_ZONE + ".IAD." + ISO3166_CODES, "US-VA"); - properties.setProperty(PROPERTY_ZONE + ".SYD." + ISO3166_CODES, "AU-NSW"); - properties.setProperty(PROPERTY_ZONE + ".HKG." + ISO3166_CODES, "HK"); + properties.setProperty(PROPERTY_REGIONS, "ORD,DFW,IAD,SYD,HKG"); + properties.setProperty(PROPERTY_REGION + ".ORD." + ISO3166_CODES, "US-IL"); + properties.setProperty(PROPERTY_REGION + ".DFW." + ISO3166_CODES, "US-TX"); + properties.setProperty(PROPERTY_REGION + ".IAD." + ISO3166_CODES, "US-VA"); + properties.setProperty(PROPERTY_REGION + ".SYD." + ISO3166_CODES, "AU-NSW"); + properties.setProperty(PROPERTY_REGION + ".HKG." + ISO3166_CODES, "HK"); return properties; } - + public static class Builder extends BaseProviderMetadata.Builder { protected Builder() { @@ -87,7 +87,7 @@ public class CloudServersUSProviderMetadata extends BaseProviderMetadata { .defaultModules(ImmutableSet.>builder() .add(CloudIdentityAuthenticationApiModule.class) .add(CloudIdentityAuthenticationModule.class) - .add(ZoneModule.class) + .add(RegionModule.class) .add(NovaParserModule.class) .add(NovaHttpApiModule.class) .add(CloudServersUSComputeServiceContextModule.class).build()) diff --git a/providers/rackspace-cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/us/CloudServersUSProviderMetadataExpectTest.java b/providers/rackspace-cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/us/CloudServersUSProviderMetadataExpectTest.java index 6e10043ec4..5f49924291 100644 --- a/providers/rackspace-cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/us/CloudServersUSProviderMetadataExpectTest.java +++ b/providers/rackspace-cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/us/CloudServersUSProviderMetadataExpectTest.java @@ -38,22 +38,22 @@ public class CloudServersUSProviderMetadataExpectTest extends BaseNovaApiExpectT this.credential = "myApiKey"; } - public void testCanGetConfiguredZones() { - + public void testCanGetConfiguredRegions() { + HttpRequest authenticate = HttpRequest.builder().method("POST") .endpoint("https://identity.api.rackspacecloud.com/v2.0/tokens") .addHeader("Accept", "application/json") .payload(payloadFromStringWithContentType( "{\"auth\":{\"RAX-KSKEY:apiKeyCredentials\":{\"username\":\"myUsername\",\"apiKey\":\"myApiKey\"}}}" , "application/json")).build(); - + HttpResponse authenticationResponse = HttpResponse.builder().statusCode(200) .payload(payloadFromResourceWithContentType("/access_rax_us.json", "application/json")).build(); NovaApi whenNovaRegionExists = requestSendsResponse(authenticate, authenticationResponse); - assertEquals(whenNovaRegionExists.getConfiguredZones(), ImmutableSet.of("ORD", "DFW")); + assertEquals(whenNovaRegionExists.getConfiguredRegions(), ImmutableSet.of("ORD", "DFW")); }