You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by jd...@apache.org on 2014/08/13 18:59:46 UTC

[07/12] Prefer Regions to Zones in OpenStack APIs

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInZoneToNodeMetadataTest.java
----------------------------------------------------------------------
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/ServerInZoneToNodeMetadataTest.java
deleted file mode 100644
index b5c1646..0000000
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/ServerInZoneToNodeMetadataTest.java
+++ /dev/null
@@ -1,341 +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.compute.functions;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-
-import java.net.URI;
-import java.util.Map;
-import java.util.Set;
-
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.HardwareBuilder;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.domain.ImageBuilder;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.OperatingSystem;
-import org.jclouds.compute.domain.OsFamily;
-import org.jclouds.compute.functions.GroupNamingConvention;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-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.Server;
-import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ServerInZone;
-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;
-import org.jclouds.openstack.v2_0.domain.Resource;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-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 {
-
-   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();
-   Supplier<Map<String, Location>> locationIndex = Suppliers.<Map<String, Location>> ofInstance(ImmutableMap
-         .<String, Location> of("az-1.region-a.geo-1", zone));
-
-   GroupNamingConvention.Factory namingConvention = Guice.createInjector().getInstance(GroupNamingConvention.Factory.class);
-
-   @Test
-   public void testWhenNoHardwareOrImageMatchServerScopedIdsImageIdIsStillSet() {
-
-      Hardware existingHardware = new HardwareBuilder().id("az-1.region-a.geo-1/FOOOOOOOO").providerId("FOOOOOOOO")
-            .location(zone).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();
-
-      checkHardwareAndImageStatus(null, existingHardware, "az-1.region-a.geo-1/52415800-8b69-11e0-9b19-734f6f006e54",
-            null, existingImage);
-   }
-
-   @Test
-   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();
-      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();
-
-      checkHardwareAndImageStatus(existingHardware, existingHardware, existingImage.getId(),
-            existingImage.getOperatingSystem(), existingImage);
-   }
-
-   @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();
-      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();
-
-      Set<Image> images = existingImage == null ? ImmutableSet.<Image> of() : ImmutableSet.of(existingImage);
-      Set<Hardware> hardwares = existingHardware == null ? ImmutableSet.<Hardware> of() : ImmutableSet
-            .of(existingHardware);
-      Server serverToConvert = new ParseServerTest().expected().toBuilder()
-            .accessIPv4(null)
-            .accessIPv6(null)
-            .build();
-
-      ServerInZone serverInZoneToConvert = new ServerInZone(serverToConvert, "az-1.region-a.geo-1");
-
-      ServerInZoneToNodeMetadata converter = new ServerInZoneToNodeMetadata(
-            NovaComputeServiceContextModule.toPortableNodeStatus, locationIndex, Suppliers
-            .<Set<? extends Image>> ofInstance(images), Suppliers
-            .<Set<? extends Hardware>> ofInstance(hardwares), namingConvention);
-
-      NodeMetadata convertedNodeMetadata = converter.apply(serverInZoneToConvert);
-
-      assertNotNull(convertedNodeMetadata.getPrivateAddresses());
-      assertEquals(convertedNodeMetadata.getPrivateAddresses(), ImmutableSet.of("10.176.42.16"));
-
-      assertNotNull(convertedNodeMetadata.getPublicAddresses());
-      // note jclouds doesn't yet support ipv6 b/c not tested yet
-      assertEquals(convertedNodeMetadata.getPublicAddresses(), ImmutableSet.of("67.23.10.132", "67.23.10.131"));
-   }
-
-   @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();
-      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();
-
-      Set<Image> images = existingImage == null ? ImmutableSet.<Image> of() : ImmutableSet.of(existingImage);
-      Set<Hardware> hardwares = existingHardware == null ? ImmutableSet.<Hardware> of() : ImmutableSet
-            .of(existingHardware);
-      Server serverToConvert = new ParseServerTest().expected().toBuilder()
-            .accessIPv4("67.23.10.132")
-            .accessIPv6("::babe:67.23.10.132")
-            .build();
-
-      ServerInZone serverInZoneToConvert = new ServerInZone(serverToConvert, "az-1.region-a.geo-1");
-
-      ServerInZoneToNodeMetadata converter = new ServerInZoneToNodeMetadata(
-            NovaComputeServiceContextModule.toPortableNodeStatus, locationIndex, Suppliers
-            .<Set<? extends Image>> ofInstance(images), Suppliers
-            .<Set<? extends Hardware>> ofInstance(hardwares), namingConvention);
-
-      NodeMetadata convertedNodeMetadata = converter.apply(serverInZoneToConvert);
-
-      assertNotNull(convertedNodeMetadata.getPrivateAddresses());
-      assertEquals(convertedNodeMetadata.getPrivateAddresses(), ImmutableSet.of("10.176.42.16"));
-
-      assertNotNull(convertedNodeMetadata.getPublicAddresses());
-      // note jclouds doesn't yet support ipv6 b/c not tested yet
-      assertEquals(convertedNodeMetadata.getPublicAddresses(), ImmutableSet.of("67.23.10.132", "67.23.10.131"));
-   }
-
-   @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();
-      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();
-
-      Set<Image> images = existingImage == null ? ImmutableSet.<Image> of() : ImmutableSet.of(existingImage);
-      Set<Hardware> hardwares = existingHardware == null ? ImmutableSet.<Hardware> of() : ImmutableSet
-            .of(existingHardware);
-      Server serverToConvert = new ParseServerTest().expected().toBuilder()
-            .accessIPv4("76.32.1.231")
-            .accessIPv6("::babe:76.32.1.231")
-            .build();
-
-      ServerInZone serverInZoneToConvert = new ServerInZone(serverToConvert, "az-1.region-a.geo-1");
-
-      ServerInZoneToNodeMetadata converter = new ServerInZoneToNodeMetadata(
-            NovaComputeServiceContextModule.toPortableNodeStatus, locationIndex, Suppliers
-            .<Set<? extends Image>> ofInstance(images), Suppliers
-            .<Set<? extends Hardware>> ofInstance(hardwares), namingConvention);
-
-      NodeMetadata convertedNodeMetadata = converter.apply(serverInZoneToConvert);
-
-      assertNotNull(convertedNodeMetadata.getPrivateAddresses());
-      assertEquals(convertedNodeMetadata.getPrivateAddresses(), ImmutableSet.of("10.176.42.16"));
-
-      assertNotNull(convertedNodeMetadata.getPublicAddresses());
-      // note jclouds doesn't yet support ipv6 b/c not tested yet
-      assertEquals(convertedNodeMetadata.getPublicAddresses(), ImmutableSet.of("67.23.10.132", "67.23.10.131", "76.32.1.231"));
-   }
-
-   @Test
-   public void testPortableNodeStatusNotNull() {
-      for (Server.Status serverStatus : Server.Status.values()) {
-         assertNotNull(NovaComputeServiceContextModule.toPortableNodeStatus.get(serverStatus));
-      }
-   }
-
-   @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();
-      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();
-
-      Server serverToConvert = new ParseServerWithoutImageTest().expected();
-      ServerInZone serverInZoneToConvert = new ServerInZone(serverToConvert, "az-1.region-a.geo-1");
-
-      ServerInZoneToNodeMetadata converter = new ServerInZoneToNodeMetadata(
-            NovaComputeServiceContextModule.toPortableNodeStatus, locationIndex,
-            Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.of(existingImage)),
-            Suppliers.<Set<? extends Hardware>> ofInstance(ImmutableSet.of(existingHardware)),
-            namingConvention);
-
-      NodeMetadata convertedNodeMetadata = converter.apply(serverInZoneToConvert);
-
-      assertNull(convertedNodeMetadata.getImageId());
-   }
-
-   // TODO: clean up this syntax
-   private void checkHardwareAndImageStatus(Hardware expectedHardware, Hardware existingHardware,
-         String expectedImageId, OperatingSystem expectedOs, Image existingImage) {
-
-      Set<Image> images = existingImage == null ? ImmutableSet.<Image> of() : ImmutableSet.of(existingImage);
-      Set<Hardware> hardwares = existingHardware == null ? ImmutableSet.<Hardware> of() : ImmutableSet
-            .of(existingHardware);
-      Server serverToConvert = new ParseServerTest().expected();
-
-      ServerInZone serverInZoneToConvert = new ServerInZone(serverToConvert, "az-1.region-a.geo-1");
-
-      ServerInZoneToNodeMetadata converter = new ServerInZoneToNodeMetadata(
-               NovaComputeServiceContextModule.toPortableNodeStatus, locationIndex, Suppliers
-                        .<Set<? extends Image>> ofInstance(images), Suppliers
-                        .<Set<? extends Hardware>> ofInstance(hardwares), namingConvention);
-
-      NodeMetadata convertedNodeMetadata = converter.apply(serverInZoneToConvert);
-
-      assertEquals(serverInZoneToConvert.slashEncode(), convertedNodeMetadata.getId());
-      assertEquals(serverToConvert.getId(), convertedNodeMetadata.getProviderId());
-
-      assertEquals(convertedNodeMetadata.getLocation().getScope(), LocationScope.HOST);
-      assertEquals(convertedNodeMetadata.getLocation().getId(), "e4d909c290d0fb1ca068ffaddf22cbd0");
-
-      assertEquals(convertedNodeMetadata.getLocation().getParent(), locationIndex.get().get("az-1.region-a.geo-1"));
-
-      assertEquals(serverToConvert.getName(), convertedNodeMetadata.getName());
-      assertEquals(convertedNodeMetadata.getGroup(), "sample");
-
-      assertEquals(convertedNodeMetadata.getImageId(), expectedImageId);
-      assertEquals(convertedNodeMetadata.getOperatingSystem(), expectedOs);
-
-      assertEquals(convertedNodeMetadata.getHardware(), expectedHardware);
-
-      assertEquals(NovaComputeServiceContextModule.toPortableNodeStatus.get(serverToConvert.getStatus()),
-               convertedNodeMetadata.getStatus());
-
-      assertNotNull(convertedNodeMetadata.getPrivateAddresses());
-      assertEquals(convertedNodeMetadata.getPrivateAddresses(), ImmutableSet.of("10.176.42.16"));
-
-      assertNotNull(convertedNodeMetadata.getPublicAddresses());
-      // note jclouds doesn't yet support ipv6 b/c not tested yet
-      assertEquals(convertedNodeMetadata.getPublicAddresses(), ImmutableSet.of("67.23.10.132", "67.23.10.131"));
-
-      assertNotNull(convertedNodeMetadata.getUserMetadata());
-      assertEquals(convertedNodeMetadata.getUserMetadata(),
-            ImmutableMap.<String, String> of("Server Label", "Web Head 1", "Image Version", "2.1"));
-
-      URI expectedURI = URI.create("http://servers.api.openstack.org/v2/1234/servers/71752");
-      assertEquals(convertedNodeMetadata.getUri(), expectedURI);
-   }
-
-   @Test
-   public void testNewServerWithoutHostIdSetsZoneAsLocation() {
-
-      Set<Image> images = ImmutableSet.<Image> of();
-      Set<Hardware> hardwares = ImmutableSet.<Hardware> of();
-
-      Server serverToConvert = expectedServer();
-
-      ServerInZone serverInZoneToConvert = new ServerInZone(serverToConvert, "az-1.region-a.geo-1");
-
-      ServerInZoneToNodeMetadata converter = new ServerInZoneToNodeMetadata(
-               NovaComputeServiceContextModule.toPortableNodeStatus, locationIndex, Suppliers
-                        .<Set<? extends Image>> ofInstance(images), Suppliers
-                        .<Set<? extends Hardware>> ofInstance(hardwares), namingConvention);
-
-      NodeMetadata convertedNodeMetadata = converter.apply(serverInZoneToConvert);
-
-      assertEquals(serverInZoneToConvert.slashEncode(), convertedNodeMetadata.getId());
-      assertEquals(serverToConvert.getId(), convertedNodeMetadata.getProviderId());
-
-      assertEquals(convertedNodeMetadata.getLocation(), zone);
-
-      URI expectedURI = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/37936628937291/servers/71752");
-      assertEquals(convertedNodeMetadata.getUri(), expectedURI);
-   }
-
-   public Server expectedServer() {
-      return Server
-            .builder()
-            .id("71752")
-            .uuid("47491020-6a78-4f63-9475-23195ac4515c")
-            .tenantId("37936628937291")
-            .userId("54297837463082")
-            .name("test-e92")
-            .updated(new SimpleDateFormatDateService().iso8601SecondsDateParse("2012-03-19T06:21:13Z"))
-            .created(new SimpleDateFormatDateService().iso8601SecondsDateParse("2012-03-19T06:21:13Z"))
-            .status(Server.Status.BUILD)
-            .image(
-                  Resource
-                        .builder()
-                        .id("1241")
-                        .links(
-                              Link.create(
-                                    Link.Relation.BOOKMARK,
-                                    URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/images/1241")))
-                        .build())
-            .flavor(
-                  Resource
-                        .builder()
-                        .id("100")
-                        .links(
-                              Link.create(
-                                    Link.Relation.BOOKMARK,
-                                    URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/flavors/100")))
-                        .build())
-            .links(
-                  Link.create(Link.Relation.SELF, URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/37936628937291/servers/71752")),
-                  Link.create(Link.Relation.BOOKMARK, URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/37936628937291/servers/71752"))).build();
-
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/loaders/CreateUniqueKeyPairTest.java
----------------------------------------------------------------------
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 2698643..5667ab8 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);
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/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 81bf3b0..83585bc 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<AtomicReference<ZoneAndName>> returnSecurityGroupExistsInZone = Predicates.alwaysFalse();
+      Predicate<AtomicReference<RegionAndName>> 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
                .<Integer> of(22, 8080));
 
-      Function<ZoneSecurityGroupNameAndPorts, SecurityGroupInZone> groupCreator = Functions.forMap(ImmutableMap
-               .<ZoneSecurityGroupNameAndPorts, SecurityGroupInZone> of(input, securityGroupInZone));
+      Function<RegionSecurityGroupNameAndPorts, SecurityGroupInRegion> groupCreator = Functions.forMap(ImmutableMap
+               .<RegionSecurityGroupNameAndPorts, SecurityGroupInRegion> 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<AtomicReference<ZoneAndName>> returnSecurityGroupExistsInZone = new Predicate<AtomicReference<ZoneAndName>>() {
+      Predicate<AtomicReference<RegionAndName>> returnSecurityGroupExistsInRegion = new Predicate<AtomicReference<RegionAndName>>() {
 
          @Override
-         public boolean apply(AtomicReference<ZoneAndName> input) {
-            input.set(securityGroupInZone);
+         public boolean apply(AtomicReference<RegionAndName> input) {
+            input.set(securityGroupInRegion);
             return true;
          }
-         
+
       };
 
-      ZoneAndName input = ZoneAndName.fromZoneAndName("zone", "groupName");
+      RegionAndName input = RegionAndName.fromRegionAndName("region", "groupName");
 
-      Function<ZoneSecurityGroupNameAndPorts, SecurityGroupInZone> groupCreator = new Function<ZoneSecurityGroupNameAndPorts, SecurityGroupInZone>() {
+      Function<RegionSecurityGroupNameAndPorts, SecurityGroupInRegion> groupCreator = new Function<RegionSecurityGroupNameAndPorts, SecurityGroupInRegion>() {
 
          @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<AtomicReference<ZoneAndName>> returnSecurityGroupExistsInZone = Predicates.alwaysTrue();
+      Predicate<AtomicReference<RegionAndName>> returnSecurityGroupExistsInRegion = Predicates.alwaysTrue();
 
-      ZoneAndName input = ZoneAndName.fromZoneAndName("zone", "groupName");
+      RegionAndName input = RegionAndName.fromRegionAndName("region", "groupName");
 
-      Function<ZoneSecurityGroupNameAndPorts, SecurityGroupInZone> groupCreator = new Function<ZoneSecurityGroupNameAndPorts, SecurityGroupInZone>() {
+      Function<RegionSecurityGroupNameAndPorts, SecurityGroupInRegion> groupCreator = new Function<RegionSecurityGroupNameAndPorts, SecurityGroupInRegion>() {
 
          @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<AtomicReference<ZoneAndName>> returnSecurityGroupExistsInZone = Predicates.alwaysFalse();
+   public void testWhenNotFoundInputMustBeRegionSecurityGroupNameAndPorts() throws Exception {
+      Predicate<AtomicReference<RegionAndName>> returnSecurityGroupExistsInRegion = Predicates.alwaysFalse();
 
-      ZoneAndName input = ZoneAndName.fromZoneAndName("zone", "groupName");
+      RegionAndName input = RegionAndName.fromRegionAndName("region", "groupName");
 
-      Function<ZoneSecurityGroupNameAndPorts, SecurityGroupInZone> groupCreator = new Function<ZoneSecurityGroupNameAndPorts, SecurityGroupInZone>() {
+      Function<RegionSecurityGroupNameAndPorts, SecurityGroupInRegion> groupCreator = new Function<RegionSecurityGroupNameAndPorts, SecurityGroupInRegion>() {
 
          @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);
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/loaders/LoadFloatingIpsForInstanceTest.java
----------------------------------------------------------------------
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 c31e684..84d2fa7 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.<FloatingIP> 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.<FloatingIP> 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.<FloatingIP> 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);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiExpectTest.java
----------------------------------------------------------------------
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 b3a80a7..356a849 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")

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiLiveTest.java
----------------------------------------------------------------------
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 37f6f37..99b2d62 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<? extends ServerAdminApi> 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);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/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 bc2eba4..fd60811 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<? extends AvailabilityZone> zones = availabilityZonesApi.getAvailabilityZoneApi("az-1.region-a.geo-1").get().list();
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/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 3cadf68..1c0a93b 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;
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApiLiveTest.java
----------------------------------------------------------------------
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 c74dbad..94b03cb 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<? extends ConsolesApi> apiOption = api.getConsolesExtensionForZone(zoneId);
+      for (String regionId : api.getConfiguredRegions()) {
+         Optional<? extends ConsolesApi> 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()));

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApiMockTest.java
----------------------------------------------------------------------
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 c636603..9a5263f 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<NovaApi> {
       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<NovaApi> {
       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);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiExpectTest.java
----------------------------------------------------------------------
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 eb1009a..8b90de6 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"));
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiLiveTest.java
----------------------------------------------------------------------
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 b7a6d9c..d1ed7c2 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<? extends FlavorExtraSpecsApi> apiOption;
-   private String zone;
+   private String region;
 
    private Resource testFlavor;
    private Map<String, String> 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" })

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApiExpectTest.java
----------------------------------------------------------------------
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 4647c41..e77c2e2 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());
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApiLiveTest.java
----------------------------------------------------------------------
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 f65914f..27eee5a 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<? extends FloatingIPApi> apiOption = api.getFloatingIPExtensionForZone(zoneId);
+      for (String regionId : api.getConfiguredRegions()) {
+         Optional<? extends FloatingIPApi> 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<? extends FloatingIPApi> apiOption = api.getFloatingIPExtensionForZone(zoneId);
+      for (String regionId : api.getConfiguredRegions()) {
+         Optional<? extends FloatingIPApi> 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<? extends FloatingIPApi> apiOption = api.getFloatingIPExtensionForZone(zoneId);
+      for (String regionId : api.getConfiguredRegions()) {
+         Optional<? extends FloatingIPApi> 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 {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApiExpectTest.java
----------------------------------------------------------------------
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 3b3f01f..836d6c0 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<? extends Host> 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<HostResourceUsage> 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"));
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApiLiveTest.java
----------------------------------------------------------------------
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 ab5ace0..9c02650 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);
       }
    }