Repository: jclouds Updated Branches: refs/heads/master 58438d7d1 -> 15d816670
JCLOUDS-699: Properly deprecate OpenStack Nova zonescoped package Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/15d81667 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/15d81667 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/15d81667 Branch: refs/heads/master Commit: 15d816670156677e8e99706b5e671e2c7e971462 Parents: 58438d7 Author: Jeremy Daggett <[email protected]> Authored: Tue Sep 2 10:36:17 2014 -0700 Committer: Jeremy Daggett <[email protected]> Committed: Fri Sep 5 08:04:44 2014 -0700 ---------------------------------------------------------------------- apis/openstack-nova/pom.xml | 2 +- .../nova/v2_0/compute/NovaComputeService.java | 3 +- .../config/NovaComputeServiceContextModule.java | 16 +-- .../AllocateAndAddFloatingIpToNode.java | 1 + .../functions/CreateSecurityGroupIfNeeded.java | 2 +- ...ovaSecurityGroupInRegionToSecurityGroup.java | 1 - .../NovaSecurityGroupToSecurityGroup.java | 5 +- .../SecurityGroupRuleToIpPermission.java | 3 +- .../loaders/FindSecurityGroupOrCreate.java | 3 +- ...desWithGroupEncodedIntoNameThenAddToSet.java | 2 +- .../domain/regionscoped/AvailabilityZone.java | 69 ----------- .../domain/regionscoped/FlavorInRegion.java | 20 +++- .../v2_0/domain/regionscoped/ImageInRegion.java | 10 +- .../v2_0/domain/regionscoped/RegionAndId.java | 21 ++-- .../v2_0/domain/regionscoped/RegionAndName.java | 11 +- .../RegionSecurityGroupNameAndPorts.java | 10 +- .../regionscoped/SecurityGroupInRegion.java | 11 +- .../domain/regionscoped/ServerInRegion.java | 9 +- .../v2_0/domain/regionscoped/ZoneState.java | 57 --------- .../domain/zonescoped/AvailabilityZone.java | 69 +++++++++++ .../v2_0/domain/zonescoped/FlavorInRegion.java | 49 ++++++++ .../v2_0/domain/zonescoped/ImageInRegion.java | 49 ++++++++ .../v2_0/domain/zonescoped/RegionAndId.java | 89 ++++++++++++++ .../v2_0/domain/zonescoped/RegionAndName.java | 115 +++++++++++++++++++ .../RegionSecurityGroupNameAndPorts.java | 65 +++++++++++ .../zonescoped/SecurityGroupInRegion.java | 49 ++++++++ .../v2_0/domain/zonescoped/ServerInRegion.java | 49 ++++++++ .../nova/v2_0/domain/zonescoped/ZoneState.java | 57 +++++++++ .../v2_0/extensions/AvailabilityZoneApi.java | 2 +- .../FindSecurityGroupWithNameAndReturnTrue.java | 2 +- .../NovaComputeServiceAdapterExpectTest.java | 2 +- .../functions/OrphanedGroupsByRegionIdTest.java | 2 +- .../loaders/FindSecurityGroupOrCreateTest.java | 2 +- .../AvailabilityZoneApiExpectTest.java | 2 +- .../AvailabilityZonesApiLiveTest.java | 10 +- 35 files changed, 687 insertions(+), 182 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/pom.xml ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/pom.xml b/apis/openstack-nova/pom.xml index 75a8095..1a3de0e 100644 --- a/apis/openstack-nova/pom.xml +++ b/apis/openstack-nova/pom.xml @@ -27,7 +27,7 @@ </parent> <groupId>org.apache.jclouds.api</groupId> <artifactId>openstack-nova</artifactId> - <name>jclouds openstack-nova api</name> + <name>Apache jclouds :: OpenStack :: Nova API</name> <description>jclouds components to access an implementation of OpenStack Nova</description> <packaging>bundle</packaging> http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeService.java ---------------------------------------------------------------------- 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 6586395..c2161b9 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 @@ -15,6 +15,7 @@ * limitations under the License. */ package org.jclouds.openstack.nova.v2_0.compute; + import static com.google.common.base.Preconditions.checkNotNull; import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_RUNNING; import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_SUSPENDED; @@ -61,8 +62,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.regionscoped.SecurityGroupInRegion; 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.extensions.KeyPairApi; import org.jclouds.openstack.nova.v2_0.extensions.SecurityGroupApi; import org.jclouds.openstack.nova.v2_0.predicates.SecurityGroupPredicates; http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/config/NovaComputeServiceContextModule.java ---------------------------------------------------------------------- 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 cabca59..029c374 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 @@ -71,11 +71,11 @@ 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.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.domain.regionscoped.SecurityGroupInRegion; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.ServerInRegion; import org.jclouds.openstack.nova.v2_0.predicates.FindSecurityGroupWithNameAndReturnTrue; import com.google.common.annotations.VisibleForTesting; @@ -108,9 +108,9 @@ public class NovaComputeServiceContextModule extends super.configure(); bind(new TypeLiteral<ComputeServiceAdapter<ServerInRegion, FlavorInRegion, ImageInRegion, Location>>() { }).to(NovaComputeServiceAdapter.class); - + bind(ComputeService.class).to(NovaComputeService.class); - + bind(new TypeLiteral<Function<ServerInRegion, NodeMetadata>>() { }).to(ServerInRegionToNodeMetadata.class); @@ -154,7 +154,7 @@ public class NovaComputeServiceContextModule extends bind(new TypeLiteral<CacheLoader<RegionAndName, KeyPair>>() { }).to(CreateUniqueKeyPair.class); - + bind(new TypeLiteral<ImageExtension>() { }).to(NovaImageExtension.class); @@ -185,7 +185,7 @@ public class NovaComputeServiceContextModule extends CacheLoader<RegionAndName, SecurityGroupInRegion> in) { return CacheBuilder.newBuilder().build(in); } - + @Override protected Map<OsFamily, LoginCredentials> osFamilyToCredentials(Injector injector) { return ImmutableMap.of(OsFamily.WINDOWS, LoginCredentials.builder().user("Administrator").build(), @@ -264,7 +264,7 @@ public class NovaComputeServiceContextModule extends protected Map<Server.Status, NodeMetadata.Status> toPortableNodeStatus() { return toPortableNodeStatus; } - + @VisibleForTesting public static final Map<org.jclouds.openstack.nova.v2_0.domain.Image.Status, Image.Status> toPortableImageStatus = ImmutableMap .<org.jclouds.openstack.nova.v2_0.domain.Image.Status, Image.Status> builder() @@ -280,7 +280,7 @@ public class NovaComputeServiceContextModule extends protected Map<org.jclouds.openstack.nova.v2_0.domain.Image.Status, Image.Status> toPortableImageStatus() { return toPortableImageStatus; } - + @Override protected Optional<ImageExtension> provideImageExtension(Injector i) { return Optional.of(i.getInstance(ImageExtension.class)); http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNode.java ---------------------------------------------------------------------- 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 1de8fd8..12b6b91 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 @@ -15,6 +15,7 @@ * limitations under the License. */ package org.jclouds.openstack.nova.v2_0.compute.functions; + import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_RUNNING; http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/CreateSecurityGroupIfNeeded.java ---------------------------------------------------------------------- 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 4c2c8cc..4e9b11c 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,8 +32,8 @@ 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.regionscoped.SecurityGroupInRegion; 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 com.google.common.base.Function; http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupInRegionToSecurityGroup.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupInRegionToSecurityGroup.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupInRegionToSecurityGroup.java index 08b4e2d..33b641e 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupInRegionToSecurityGroup.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupInRegionToSecurityGroup.java @@ -36,7 +36,6 @@ import com.google.common.base.Function; import com.google.common.base.Supplier; import com.google.inject.Inject; - /** * A function for transforming a Nova-specific SecurityGroup into a generic * SecurityGroup object. http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupToSecurityGroup.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupToSecurityGroup.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupToSecurityGroup.java index 6bd2e64..bdb7ba6 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupToSecurityGroup.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/NovaSecurityGroupToSecurityGroup.java @@ -32,7 +32,6 @@ import org.jclouds.openstack.nova.v2_0.domain.SecurityGroupRule; import com.google.common.base.Function; import com.google.inject.Inject; - /** * A function for transforming a Nova-specific SecurityGroup into a generic * SecurityGroup object. @@ -44,7 +43,7 @@ public class NovaSecurityGroupToSecurityGroup implements Function<org.jclouds.op protected Logger logger = Logger.NULL; protected Function<SecurityGroupRule, IpPermission> ruleToPermission; - + @Inject public NovaSecurityGroupToSecurityGroup(Function<SecurityGroupRule, IpPermission> ruleToPermission) { this.ruleToPermission = ruleToPermission; @@ -53,7 +52,7 @@ public class NovaSecurityGroupToSecurityGroup implements Function<org.jclouds.op @Override public SecurityGroup apply(org.jclouds.openstack.nova.v2_0.domain.SecurityGroup group) { SecurityGroupBuilder builder = new SecurityGroupBuilder(); - + builder.id(group.getId()); builder.providerId(group.getId()); builder.ownerId(group.getTenantId()); http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/SecurityGroupRuleToIpPermission.java ---------------------------------------------------------------------- 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 4f80b7b..6dddcc8 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.regionscoped.SecurityGroupInRegion; import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName; +import org.jclouds.openstack.nova.v2_0.domain.regionscoped.SecurityGroupInRegion; import com.google.common.base.Function; import com.google.common.base.Predicate; @@ -41,7 +41,6 @@ import com.google.common.base.Supplier; import com.google.common.cache.LoadingCache; import com.google.common.util.concurrent.Atomics; - /** * A function for transforming a nova-specific SecurityGroupRule into a generic * IpPermission object. http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/loaders/FindSecurityGroupOrCreate.java ---------------------------------------------------------------------- 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 23ee514..1a980e5 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 @@ -15,6 +15,7 @@ * limitations under the License. */ package org.jclouds.openstack.nova.v2_0.compute.loaders; + import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; @@ -23,9 +24,9 @@ import java.util.concurrent.atomic.AtomicReference; import javax.inject.Inject; import javax.inject.Named; -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.jclouds.openstack.nova.v2_0.domain.regionscoped.SecurityGroupInRegion; import com.google.common.base.Function; import com.google.common.base.Predicate; http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/strategy/ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java ---------------------------------------------------------------------- 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 9361999..8085c6c 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.regionscoped.SecurityGroupInRegion; 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 com.google.common.base.Function; import com.google.common.base.Throwables; http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/AvailabilityZone.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/AvailabilityZone.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/AvailabilityZone.java deleted file mode 100644 index e59e4dd..0000000 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/AvailabilityZone.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.openstack.nova.v2_0.domain.regionscoped; - -import com.google.common.base.MoreObjects; -import com.google.common.base.Objects; -import com.google.gson.annotations.SerializedName; - -import java.beans.ConstructorProperties; - -public class AvailabilityZone { - - @SerializedName("zoneName") - private final String name; - private final ZoneState state; - - @ConstructorProperties({"zoneName" , "zoneState"}) - protected AvailabilityZone(String name, ZoneState state) { - this.name = name; - this.state = state; - } - - public String getName() { - return name; - } - - public ZoneState getState() { - return state; - } - - @Override - public int hashCode() { - return Objects.hashCode(name, state); - } - - @Override - public boolean equals(Object obj) { - if (this != obj) return false; - if (obj == null || getClass() != obj.getClass()) return false; - AvailabilityZone that = AvailabilityZone.class.cast(obj); - return Objects.equal(this.name, that.name) && Objects.equal(this.state, that.state); - } - - protected MoreObjects.ToStringHelper string() { - return MoreObjects.toStringHelper(this) - .add("name", name) - .add("state", state); - } - - @Override - public String toString() { - return string().toString(); - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/FlavorInRegion.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/FlavorInRegion.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/FlavorInRegion.java index 5617673..ec69213 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/FlavorInRegion.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/FlavorInRegion.java @@ -20,24 +20,32 @@ import static com.google.common.base.Preconditions.checkNotNull; import org.jclouds.openstack.nova.v2_0.domain.Flavor; +import com.google.common.base.MoreObjects; +import com.google.common.base.MoreObjects.ToStringHelper; + public class FlavorInRegion extends RegionAndId { - protected final Flavor image; + protected final Flavor flavor; - public FlavorInRegion(Flavor image, String regionId) { - super(regionId, checkNotNull(image, "image").getId()); - this.image = image; + public FlavorInRegion(Flavor flavor, String regionId) { + super(regionId, checkNotNull(flavor, "flavor").getId()); + this.flavor = flavor; } public Flavor getFlavor() { - return image; + return flavor; } // superclass hashCode/equals are good enough, and help us use RegionAndId and FlavorInRegion // interchangeably as Map keys @Override + protected ToStringHelper string() { + return super.string().add("flavor", flavor); + } + + @Override public String toString() { - return "[image=" + image + ", regionId=" + regionId + "]"; + return string().toString(); } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ImageInRegion.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ImageInRegion.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ImageInRegion.java index e1bf68e..bc58130 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ImageInRegion.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ImageInRegion.java @@ -20,6 +20,9 @@ import static com.google.common.base.Preconditions.checkNotNull; import org.jclouds.openstack.nova.v2_0.domain.Image; +import com.google.common.base.MoreObjects; +import com.google.common.base.MoreObjects.ToStringHelper; + public class ImageInRegion extends RegionAndId { protected final Image image; @@ -36,8 +39,13 @@ public class ImageInRegion extends RegionAndId { // interchangeably as Map keys @Override + protected ToStringHelper string() { + return super.string().add("image", image); + } + + @Override public String toString() { - return "[image=" + image + ", regionId=" + regionId + "]"; + return string().toString(); } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionAndId.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionAndId.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionAndId.java index b8602e2..dab5b69 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionAndId.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionAndId.java @@ -19,11 +19,14 @@ 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; +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; public class RegionAndId { + public static RegionAndId fromSlashEncoded(String id) { Iterable<String> parts = Splitter.on('/').split(checkNotNull(id, "id")); checkArgument(Iterables.size(parts) == 2, "id must be in format regionId/id"); @@ -50,6 +53,14 @@ public class RegionAndId { this.id = checkNotNull(id, "id"); } + public String getRegion() { + return regionId; + } + + public String getId() { + return id; + } + @Override public int hashCode() { return Objects.hashCode(regionId, id); @@ -67,17 +78,13 @@ public class RegionAndId { return Objects.equal(regionId, other.regionId) && Objects.equal(id, other.id); } - public String getRegion() { - return regionId; - } - - public String getId() { - return id; + protected ToStringHelper string() { + return MoreObjects.toStringHelper(this).add("regionId", regionId).add("id", id); } @Override public String toString() { - return "[regionId=" + regionId + ", id=" + id + "]"; + return string().toString(); } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionAndName.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionAndName.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionAndName.java index e91d1fa..13a666b 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionAndName.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionAndName.java @@ -33,21 +33,17 @@ import com.google.common.collect.Iterables; public class RegionAndName { public static final Function<RegionAndName, String> NAME_FUNCTION = new Function<RegionAndName, String>() { - @Override public String apply(RegionAndName input) { return input.getName(); } - }; public static final Function<RegionAndName, String> REGION_FUNCTION = new Function<RegionAndName, String>() { - @Override public String apply(RegionAndName input) { return input.getRegion(); } - }; public static RegionAndName fromSlashEncoded(String name) { @@ -99,12 +95,13 @@ public class RegionAndName { return Objects.hashCode(regionId, name); } + protected ToStringHelper string() { + return MoreObjects.toStringHelper(this).add("regionId", regionId).add("name", name); + } + @Override public String toString() { return string().toString(); } - protected ToStringHelper string() { - return MoreObjects.toStringHelper("").add("regionId", regionId).add("name", name); - } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionSecurityGroupNameAndPorts.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionSecurityGroupNameAndPorts.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionSecurityGroupNameAndPorts.java index f7866e0..789b49c 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionSecurityGroupNameAndPorts.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/RegionSecurityGroupNameAndPorts.java @@ -21,8 +21,8 @@ import static com.google.common.base.Preconditions.checkNotNull; import java.util.Set; -import com.google.common.base.Objects; import com.google.common.base.MoreObjects.ToStringHelper; +import com.google.common.base.Objects; import com.google.common.collect.ImmutableSet; public class RegionSecurityGroupNameAndPorts extends RegionAndName { @@ -53,7 +53,13 @@ public class RegionSecurityGroupNameAndPorts extends RegionAndName { } @Override - public ToStringHelper string() { + protected ToStringHelper string() { return super.string().add("ports", ports); } + + @Override + public String toString() { + return string().toString(); + } + } http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/SecurityGroupInRegion.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/SecurityGroupInRegion.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/SecurityGroupInRegion.java index a3898af..5f33b68 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/SecurityGroupInRegion.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/SecurityGroupInRegion.java @@ -20,6 +20,8 @@ import static com.google.common.base.Preconditions.checkNotNull; import org.jclouds.openstack.nova.v2_0.domain.SecurityGroup; +import com.google.common.base.MoreObjects.ToStringHelper; + public class SecurityGroupInRegion extends RegionAndName { protected final SecurityGroup securityGroup; @@ -32,12 +34,17 @@ public class SecurityGroupInRegion extends RegionAndName { return securityGroup; } - // superclass hashCode/equals are good enough, and help us use RegionAndName and ServerInRegion + // superclass hashCode/equals are good enough, and help us use RegionAndName and SecurityGroupInRegion // interchangeably as Map keys @Override + protected ToStringHelper string() { + return super.string().add("securityGroup", securityGroup); + } + + @Override public String toString() { - return "[securityGroup=" + securityGroup + ", regionId=" + regionId + "]"; + return string().toString(); } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ServerInRegion.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ServerInRegion.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ServerInRegion.java index a5c1803..18c3071 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ServerInRegion.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ServerInRegion.java @@ -20,6 +20,8 @@ import static com.google.common.base.Preconditions.checkNotNull; import org.jclouds.openstack.nova.v2_0.domain.Server; +import com.google.common.base.MoreObjects.ToStringHelper; + public class ServerInRegion extends RegionAndId { protected final Server server; @@ -36,8 +38,13 @@ public class ServerInRegion extends RegionAndId { // interchangeably as Map keys @Override + protected ToStringHelper string() { + return super.string().add("server", server); + } + + @Override public String toString() { - return "[server=" + server + ", regionId=" + regionId + "]"; + return string().toString(); } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ZoneState.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ZoneState.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ZoneState.java deleted file mode 100644 index 814800a..0000000 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/regionscoped/ZoneState.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.openstack.nova.v2_0.domain.regionscoped; - -import com.google.common.base.MoreObjects; -import com.google.common.base.Objects; - -public class ZoneState { - - private final boolean available; - - protected ZoneState(boolean available) { - this.available = available; - } - - public boolean available() { - return this.available; - } - - @Override - public int hashCode() { - return Objects.hashCode(available); - } - - @Override - public boolean equals(Object obj) { - if (this != obj) return false; - if (obj == null || getClass() != obj.getClass()) return false; - ZoneState that = ZoneState.class.cast(obj); - return Objects.equal(this.available, that.available); - } - - protected MoreObjects.ToStringHelper string() { - return MoreObjects.toStringHelper(this) - .add("available", available); - } - - @Override - public String toString() { - return string().toString(); - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/AvailabilityZone.java ---------------------------------------------------------------------- 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/zonescoped/AvailabilityZone.java new file mode 100644 index 0000000..a963dcd --- /dev/null +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/AvailabilityZone.java @@ -0,0 +1,69 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jclouds.openstack.nova.v2_0.domain.zonescoped; + +import com.google.common.base.MoreObjects; +import com.google.common.base.Objects; +import com.google.gson.annotations.SerializedName; + +import java.beans.ConstructorProperties; + +public class AvailabilityZone { + + @SerializedName("zoneName") + private final String name; + private final ZoneState state; + + @ConstructorProperties({"zoneName" , "zoneState"}) + protected AvailabilityZone(String name, ZoneState state) { + this.name = name; + this.state = state; + } + + public String getName() { + return name; + } + + public ZoneState getState() { + return state; + } + + @Override + public int hashCode() { + return Objects.hashCode(name, state); + } + + @Override + public boolean equals(Object obj) { + if (this != obj) return false; + if (obj == null || getClass() != obj.getClass()) return false; + AvailabilityZone that = AvailabilityZone.class.cast(obj); + return Objects.equal(this.name, that.name) && Objects.equal(this.state, that.state); + } + + protected MoreObjects.ToStringHelper string() { + return MoreObjects.toStringHelper(this) + .add("name", name) + .add("state", state); + } + + @Override + public String toString() { + return string().toString(); + } + +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/FlavorInRegion.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/FlavorInRegion.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/FlavorInRegion.java new file mode 100644 index 0000000..b547f96 --- /dev/null +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/FlavorInRegion.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jclouds.openstack.nova.v2_0.domain.zonescoped; + +import static com.google.common.base.Preconditions.checkNotNull; + +import org.jclouds.openstack.nova.v2_0.domain.Flavor; + +/** + * @deprecated This package has been replaced with {@link org.jclouds.openstack.nova.v2_0.domain.regionscoped}. + * Please use {@link org.jclouds.openstack.nova.v2_0.domain.regionscoped.FlavorInRegion FlavorInRegion}, + * as this class will be removed in jclouds 2.1.0. + */ +@Deprecated +public class FlavorInRegion extends RegionAndId { + protected final Flavor flavor; + + public FlavorInRegion(Flavor flavor, String regionId) { + super(regionId, checkNotNull(flavor, "image").getId()); + this.flavor = flavor; + } + + public Flavor getFlavor() { + return flavor; + } + + // superclass hashCode/equals are good enough, and help us use RegionAndId and FlavorInRegion + // interchangeably as Map keys + + @Override + public String toString() { + return "[flavor=" + flavor + ", regionId=" + regionId + "]"; + } + +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ImageInRegion.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ImageInRegion.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ImageInRegion.java new file mode 100644 index 0000000..cf818ff --- /dev/null +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ImageInRegion.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jclouds.openstack.nova.v2_0.domain.zonescoped; + +import static com.google.common.base.Preconditions.checkNotNull; + +import org.jclouds.openstack.nova.v2_0.domain.Image; + +/** + * @deprecated This package has been replaced with {@link org.jclouds.openstack.nova.v2_0.domain.regionscoped}. + * Please use {@link org.jclouds.openstack.nova.v2_0.domain.regionscoped.ImageInRegion ImageInRegion}, + * as this class will be removed in jclouds 2.1.0. + */ +@Deprecated +public class ImageInRegion extends RegionAndId { + protected final Image image; + + public ImageInRegion(Image image, String regionId) { + super(regionId, checkNotNull(image, "image").getId()); + this.image = image; + } + + public Image getImage() { + return image; + } + + // superclass hashCode/equals are good enough, and help us use RegionAndId and ImageInRegion + // interchangeably as Map keys + + @Override + public String toString() { + return "[image=" + image + ", regionId=" + regionId + "]"; + } + +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/RegionAndId.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/RegionAndId.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/RegionAndId.java new file mode 100644 index 0000000..7d45bff --- /dev/null +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/RegionAndId.java @@ -0,0 +1,89 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jclouds.openstack.nova.v2_0.domain.zonescoped; + +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.common.base.Objects; +import com.google.common.base.Splitter; +import com.google.common.collect.Iterables; + +/** + * @deprecated This package has been replaced with {@link org.jclouds.openstack.nova.v2_0.domain.regionscoped}. + * Please use {@link org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndId RegionAndId}, + * as this class will be removed in jclouds 2.1.0. + */ +@Deprecated +public class RegionAndId { + public static RegionAndId fromSlashEncoded(String id) { + Iterable<String> parts = Splitter.on('/').split(checkNotNull(id, "id")); + 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 RegionAndId fromRegionAndId(String regionId, String id) { + return new RegionAndId(regionId, id); + } + + private static String slashEncodeRegionAndId(String regionId, String id) { + return checkNotNull(regionId, "regionId") + "/" + checkNotNull(id, "id"); + } + + public String slashEncode() { + return slashEncodeRegionAndId(regionId, id); + } + + protected final String regionId; + protected final String id; + + protected RegionAndId(String regionId, String id) { + this.regionId = checkNotNull(regionId, "regionId"); + this.id = checkNotNull(id, "id"); + } + + @Override + public int hashCode() { + return Objects.hashCode(regionId, id); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + RegionAndId other = (RegionAndId) obj; + return Objects.equal(regionId, other.regionId) && Objects.equal(id, other.id); + } + + public String getRegion() { + return regionId; + } + + public String getId() { + return id; + } + + @Override + public String toString() { + return "[regionId=" + regionId + ", id=" + id + "]"; + } + +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/RegionAndName.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/RegionAndName.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/RegionAndName.java new file mode 100644 index 0000000..c7d07e2 --- /dev/null +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/RegionAndName.java @@ -0,0 +1,115 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jclouds.openstack.nova.v2_0.domain.zonescoped; + +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.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 region and name + * + * @deprecated This package has been replaced with {@link org.jclouds.openstack.nova.v2_0.domain.regionscoped}. + * Please use {@link org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName RegionAndName}, + * as this class will be removed in jclouds 2.1.0. + */ +@Deprecated +public class RegionAndName { + + public static final Function<RegionAndName, String> NAME_FUNCTION = new Function<RegionAndName, String>() { + + @Override + public String apply(RegionAndName input) { + return input.getName(); + } + + }; + + public static final Function<RegionAndName, String> REGION_FUNCTION = new Function<RegionAndName, String>() { + + @Override + public String apply(RegionAndName input) { + return input.getRegion(); + } + + }; + + public static RegionAndName fromSlashEncoded(String name) { + Iterable<String> parts = Splitter.on('/').split(checkNotNull(name, "name")); + 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 RegionAndName fromRegionAndName(String regionId, String name) { + return new RegionAndName(regionId, name); + } + + private static String slashEncodeRegionAndName(String regionId, String name) { + return checkNotNull(regionId, "regionId") + "/" + checkNotNull(name, "name"); + } + + public String slashEncode() { + return slashEncodeRegionAndName(regionId, name); + } + + protected final String regionId; + protected final String name; + + protected RegionAndName(String regionId, String name) { + this.regionId = checkNotNull(regionId, "regionId"); + this.name = checkNotNull(name, "name"); + } + + public String getRegion() { + return regionId; + } + + public String getName() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + RegionAndName that = RegionAndName.class.cast(o); + return equal(this.regionId, that.regionId) && equal(this.name, that.name); + } + + @Override + public int hashCode() { + return Objects.hashCode(regionId, name); + } + + @Override + public String toString() { + return string().toString(); + } + + protected ToStringHelper string() { + return MoreObjects.toStringHelper("").add("regionId", regionId).add("name", name); + } +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/RegionSecurityGroupNameAndPorts.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/RegionSecurityGroupNameAndPorts.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/RegionSecurityGroupNameAndPorts.java new file mode 100644 index 0000000..b464925 --- /dev/null +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/RegionSecurityGroupNameAndPorts.java @@ -0,0 +1,65 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jclouds.openstack.nova.v2_0.domain.zonescoped; + +import static com.google.common.base.Objects.equal; +import static com.google.common.base.Preconditions.checkNotNull; + +import java.util.Set; + +import com.google.common.base.Objects; +import com.google.common.base.MoreObjects.ToStringHelper; +import com.google.common.collect.ImmutableSet; + +/** + * @deprecated This package has been replaced with {@link org.jclouds.openstack.nova.v2_0.domain.regionscoped}. + * Please use {@link org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionSecurityGroupNameAndPorts RegionSecurityGroupNameAndPorts}, + * as this class will be removed in jclouds 2.1.0. + */ +@Deprecated +public class RegionSecurityGroupNameAndPorts extends RegionAndName { + protected final Set<Integer> ports; + + public RegionSecurityGroupNameAndPorts(String regionId, String name, Iterable<Integer> ports) { + super(regionId, name); + this.ports = ImmutableSet.<Integer> copyOf(checkNotNull(ports, "ports")); + } + + public Set<Integer> getPorts() { + return ports; + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + RegionSecurityGroupNameAndPorts that = RegionSecurityGroupNameAndPorts.class.cast(o); + return super.equals(that) && equal(this.ports, that.ports); + } + + @Override + public int hashCode() { + return Objects.hashCode(super.hashCode(), ports); + } + + @Override + public ToStringHelper string() { + return super.string().add("ports", ports); + } +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/SecurityGroupInRegion.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/SecurityGroupInRegion.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/SecurityGroupInRegion.java new file mode 100644 index 0000000..fb2793b --- /dev/null +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/SecurityGroupInRegion.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jclouds.openstack.nova.v2_0.domain.zonescoped; + +import static com.google.common.base.Preconditions.checkNotNull; + +import org.jclouds.openstack.nova.v2_0.domain.SecurityGroup; + +/** + * @deprecated This package has been replaced with {@link org.jclouds.openstack.nova.v2_0.domain.regionscoped}. + * Please use {@link org.jclouds.openstack.nova.v2_0.domain.regionscoped.SecurityGroupInRegion SecurityGroupInRegion}, + * as this class will be removed in jclouds 2.1.0. + */ +@Deprecated +public class SecurityGroupInRegion extends RegionAndName { + protected final SecurityGroup securityGroup; + + public SecurityGroupInRegion(SecurityGroup securityGroup, String regionId) { + super(regionId, checkNotNull(securityGroup, "securityGroup").getName()); + this.securityGroup = securityGroup; + } + + public SecurityGroup getSecurityGroup() { + return securityGroup; + } + + // superclass hashCode/equals are good enough, and help us use RegionAndName and ServerInRegion + // interchangeably as Map keys + + @Override + public String toString() { + return "[securityGroup=" + securityGroup + ", regionId=" + regionId + "]"; + } + +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ServerInRegion.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ServerInRegion.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ServerInRegion.java new file mode 100644 index 0000000..9e7c405 --- /dev/null +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ServerInRegion.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jclouds.openstack.nova.v2_0.domain.zonescoped; + +import static com.google.common.base.Preconditions.checkNotNull; + +import org.jclouds.openstack.nova.v2_0.domain.Server; + +/** + * @deprecated This package has been replaced with {@link org.jclouds.openstack.nova.v2_0.domain.regionscoped}. + * Please use {@link org.jclouds.openstack.nova.v2_0.domain.regionscoped.ServerInRegion ServerInRegion}, + * as this class will be removed in jclouds 2.1.0. + */ +@Deprecated +public class ServerInRegion extends RegionAndId { + protected final Server server; + + public ServerInRegion(Server server, String regionId) { + super(regionId, checkNotNull(server, "server").getId()); + this.server = server; + } + + public Server getServer() { + return server; + } + + // superclass hashCode/equals are good enough, and help us use RegionAndId and ServerInRegion + // interchangeably as Map keys + + @Override + public String toString() { + return "[server=" + server + ", regionId=" + regionId + "]"; + } + +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneState.java ---------------------------------------------------------------------- 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/zonescoped/ZoneState.java new file mode 100644 index 0000000..6beea92 --- /dev/null +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/zonescoped/ZoneState.java @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jclouds.openstack.nova.v2_0.domain.zonescoped; + +import com.google.common.base.MoreObjects; +import com.google.common.base.Objects; + +public class ZoneState { + + private final boolean available; + + protected ZoneState(boolean available) { + this.available = available; + } + + public boolean available() { + return this.available; + } + + @Override + public int hashCode() { + return Objects.hashCode(available); + } + + @Override + public boolean equals(Object obj) { + if (this != obj) return false; + if (obj == null || getClass() != obj.getClass()) return false; + ZoneState that = ZoneState.class.cast(obj); + return Objects.equal(this.available, that.available); + } + + protected MoreObjects.ToStringHelper string() { + return MoreObjects.toStringHelper(this) + .add("available", available); + } + + @Override + public String toString() { + return string().toString(); + } + +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApi.java ---------------------------------------------------------------------- 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 7624e69..7b894fb 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.regionscoped.AvailabilityZone; +import org.jclouds.openstack.nova.v2_0.domain.zonescoped.AvailabilityZone; import org.jclouds.openstack.v2_0.ServiceType; import org.jclouds.openstack.v2_0.services.Extension; import org.jclouds.rest.annotations.Fallback; http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/predicates/FindSecurityGroupWithNameAndReturnTrue.java ---------------------------------------------------------------------- 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 578a484..b7b7f0d 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.regionscoped.SecurityGroupInRegion; 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.extensions.SecurityGroupApi; import org.jclouds.rest.ResourceNotFoundException; http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapterExpectTest.java ---------------------------------------------------------------------- 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 35c5b39..5cb02a7 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.regionscoped.ServerInRegion; 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.internal.BaseNovaComputeServiceContextExpectTest; import org.testng.annotations.Test; http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/OrphanedGroupsByRegionIdTest.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/OrphanedGroupsByRegionIdTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/OrphanedGroupsByRegionIdTest.java index 27b976d..0398fab 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/OrphanedGroupsByRegionIdTest.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.regionscoped.ServerInRegion; 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.parse.ParseServerTest; import org.testng.annotations.Test; http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/loaders/FindSecurityGroupOrCreateTest.java ---------------------------------------------------------------------- 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 83585bc..9e3182f 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.regionscoped.SecurityGroupInRegion; 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.testng.annotations.Test; import com.google.common.base.Function; http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApiExpectTest.java ---------------------------------------------------------------------- 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 fd60811..e2e31bd 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 @@ -23,7 +23,7 @@ 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.regionscoped.AvailabilityZone; +import org.jclouds.openstack.nova.v2_0.domain.zonescoped.AvailabilityZone; import org.jclouds.openstack.nova.v2_0.internal.BaseNovaApiExpectTest; import org.testng.annotations.Test; http://git-wip-us.apache.org/repos/asf/jclouds/blob/15d81667/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZonesApiLiveTest.java ---------------------------------------------------------------------- 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 1c0a93b..25ff002 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 @@ -16,15 +16,15 @@ */ package org.jclouds.openstack.nova.v2_0.extensions; -import com.google.common.base.Optional; -import com.google.common.collect.FluentIterable; +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertTrue; -import org.jclouds.openstack.nova.v2_0.domain.regionscoped.AvailabilityZone; +import org.jclouds.openstack.nova.v2_0.domain.zonescoped.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; +import com.google.common.base.Optional; +import com.google.common.collect.FluentIterable; @Test(groups = "live", testName = "AvailabilityZonesApiLiveTest") public class AvailabilityZonesApiLiveTest extends BaseNovaApiLiveTest {
