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:41 UTC

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

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/LoadBalancerApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/LoadBalancerApiLiveTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/LoadBalancerApiLiveTest.java
index 2e20432..b343a13 100644
--- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/LoadBalancerApiLiveTest.java
+++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/LoadBalancerApiLiveTest.java
@@ -50,20 +50,20 @@ public class LoadBalancerApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
    @AfterGroups(groups = "live")
    protected void tearDown() {
       for (LoadBalancer lb : lbs) {
-         assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb));
-         api.getLoadBalancerApiForZone(lb.getRegion()).delete(lb.getId());
-         assertTrue(awaitDeleted(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb));
+         assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb));
+         api.getLoadBalancerApi(lb.getRegion()).delete(lb.getId());
+         assertTrue(awaitDeleted(api.getLoadBalancerApi(lb.getRegion())).apply(lb));
       }
       super.tearDown();
    }
 
    public void testCreateLoadBalancer() throws Exception {
-      for (String zone : api.getConfiguredZones()) {
-         Logger.getAnonymousLogger().info("starting lb in region " + zone);
-         
-         LoadBalancer lb = api.getLoadBalancerApiForZone(zone).create(
+      for (String region : api.getConfiguredRegions()) {
+         Logger.getAnonymousLogger().info("starting lb in region " + region);
+
+         LoadBalancer lb = api.getLoadBalancerApi(region).create(
                CreateLoadBalancer.builder()
-                     .name(prefix + "-" + zone)
+                     .name(prefix + "-" + region)
                      .protocol("HTTP")
                      .port(80)
                      .virtualIPType(Type.PUBLIC)
@@ -72,17 +72,17 @@ public class LoadBalancerApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
                            .port(8080)
                            .build())
                      .build());
-         checkLBInRegion(zone, lb, prefix + "-" + zone);
-         
+         checkLBInRegion(region, lb, prefix + "-" + region);
+
          assertEquals(lb.getStatus(), LoadBalancer.Status.BUILD);
-         
+
          lbs.add(lb);
-         
-         assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb));
 
-         LoadBalancer newLb = api.getLoadBalancerApiForZone(zone).get(lb.getId());
-         checkLBInRegion(zone, newLb, prefix + "-" + zone);
-         
+         assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb));
+
+         LoadBalancer newLb = api.getLoadBalancerApi(region).get(lb.getId());
+         checkLBInRegion(region, newLb, prefix + "-" + region);
+
          assertEquals(newLb.getStatus(), LoadBalancer.Status.ACTIVE);
       }
    }
@@ -90,27 +90,27 @@ public class LoadBalancerApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
    @Test(dependsOnMethods = "testCreateLoadBalancer")
    public void testUpdateLoadBalancer() throws Exception {
       for (LoadBalancer lb : lbs) {
-         api.getLoadBalancerApiForZone(lb.getRegion()).update(lb.getId(),
+         api.getLoadBalancerApi(lb.getRegion()).update(lb.getId(),
                UpdateLoadBalancer.builder().name("foo" + "-" + lb.getRegion()).build());
-         
-         assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb));
 
-         LoadBalancer newLb = api.getLoadBalancerApiForZone(lb.getRegion()).get(lb.getId());
+         assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb));
+
+         LoadBalancer newLb = api.getLoadBalancerApi(lb.getRegion()).get(lb.getId());
          checkLBInRegion(newLb.getRegion(), newLb, "foo" + "-" + lb.getRegion());
-         
+
          assertEquals(newLb.getStatus(), LoadBalancer.Status.ACTIVE);
       }
    }
 
    @Test(dependsOnMethods = "testUpdateLoadBalancer")
    public void testListLoadBalancers() throws Exception {
-      for (String zone : api.getConfiguredZones()) {
+      for (String region : api.getConfiguredRegions()) {
+
+         Set<LoadBalancer> response = api.getLoadBalancerApi(region).list().concat().toSet();
 
-         Set<LoadBalancer> response = api.getLoadBalancerApiForZone(zone).list().concat().toSet();
-         
          assertNotNull(response);
          assertTrue(response.size() >= 0);
-         
+
          for (LoadBalancer lb : response) {
             if (!lbs.contains(lb))
                continue;
@@ -126,8 +126,8 @@ public class LoadBalancerApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
             // node info not available during list;
             assert lb.getNodes().size() == 0 : lb;
 
-            LoadBalancer getDetails = api.getLoadBalancerApiForZone(zone).get(lb.getId());
-            
+            LoadBalancer getDetails = api.getLoadBalancerApi(region).get(lb.getId());
+
             try {
                assertEquals(getDetails.getRegion(), lb.getRegion());
                assertEquals(getDetails.getName(), lb.getName());
@@ -146,7 +146,7 @@ public class LoadBalancerApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
          }
       }
    }
-   
+
    @Test(dependsOnMethods = "testListLoadBalancers")
    public void testLoadBalancerMetadata() throws Exception {
       for (LoadBalancer lb : lbs) {
@@ -154,28 +154,28 @@ public class LoadBalancerApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
                "key1", "value1",
                "key2", "value2",
                "key3", "value3");
-         
-         Metadata metadata = api.getLoadBalancerApiForZone(lb.getRegion()).createMetadata(lb.getId(), metadataMap);
+
+         Metadata metadata = api.getLoadBalancerApi(lb.getRegion()).createMetadata(lb.getId(), metadataMap);
          assertEquals(metadata, getExpectedMetadata());
-         assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb));
+         assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb));
 
-         metadata = api.getLoadBalancerApiForZone(lb.getRegion()).getMetadata(lb.getId());
+         metadata = api.getLoadBalancerApi(lb.getRegion()).getMetadata(lb.getId());
          assertEquals(metadata, getExpectedMetadata());
 
-         assertTrue(api.getLoadBalancerApiForZone(lb.getRegion()).updateMetadatum(lb.getId(), metadata.getId("key1"), "key1-updated"));
-         assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb));
-         metadata = api.getLoadBalancerApiForZone(lb.getRegion()).getMetadata(lb.getId());
+         assertTrue(api.getLoadBalancerApi(lb.getRegion()).updateMetadatum(lb.getId(), metadata.getId("key1"), "key1-updated"));
+         assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb));
+         metadata = api.getLoadBalancerApi(lb.getRegion()).getMetadata(lb.getId());
          assertEquals(metadata.get("key1"), "key1-updated");
 
-         assertTrue(api.getLoadBalancerApiForZone(lb.getRegion()).deleteMetadatum(lb.getId(), metadata.getId("key1")));
-         assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb));
-         metadata = api.getLoadBalancerApiForZone(lb.getRegion()).getMetadata(lb.getId());
+         assertTrue(api.getLoadBalancerApi(lb.getRegion()).deleteMetadatum(lb.getId(), metadata.getId("key1")));
+         assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb));
+         metadata = api.getLoadBalancerApi(lb.getRegion()).getMetadata(lb.getId());
          assertNull(metadata.get("key1"));
 
-         assertTrue(api.getLoadBalancerApiForZone(lb.getRegion()).deleteMetadata(lb.getId(), 
+         assertTrue(api.getLoadBalancerApi(lb.getRegion()).deleteMetadata(lb.getId(),
                ImmutableList.<Integer> of(metadata.getId("key2"), metadata.getId("key3"))));
-         assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb));
-         metadata = api.getLoadBalancerApiForZone(lb.getRegion()).getMetadata(lb.getId());
+         assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb));
+         metadata = api.getLoadBalancerApi(lb.getRegion()).getMetadata(lb.getId());
          assertEquals(metadata.size(), 0);
       }
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiExpectTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiExpectTest.java
index e888177..1aa054e 100644
--- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiExpectTest.java
+++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiExpectTest.java
@@ -50,7 +50,7 @@ public class NodeApiExpectTest extends BaseCloudLoadBalancerApiExpectTest<CloudL
             responseWithAccess, 
             authenticatedGET().endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/nodes-list.json")).build()
-      ).getNodeApiForZoneAndLoadBalancer("DFW", 2000);
+      ).getNodeApi("DFW", 2000);
 
       Set<Node> nodes = api.list().concat().toSet();
       assertEquals(nodes, getExpectedNodes());
@@ -63,7 +63,7 @@ public class NodeApiExpectTest extends BaseCloudLoadBalancerApiExpectTest<CloudL
             responseWithAccess, 
             authenticatedGET().endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/node-get.json")).build()
-      ).getNodeApiForZoneAndLoadBalancer("DFW", 2000);
+      ).getNodeApi("DFW", 2000);
 
       Node node = api.get(410);
       assertEquals(node, testNode());
@@ -80,7 +80,7 @@ public class NodeApiExpectTest extends BaseCloudLoadBalancerApiExpectTest<CloudL
                   .endpoint(endpoint)
                   .build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/nodes-list.json")).build()
-      ).getNodeApiForZoneAndLoadBalancer("DFW", 2000);
+      ).getNodeApi("DFW", 2000);
 
       AddNode addNode1 = AddNode.builder()
             .address("10.1.1.1")
@@ -117,7 +117,7 @@ public class NodeApiExpectTest extends BaseCloudLoadBalancerApiExpectTest<CloudL
             responseWithAccess, 
             authenticatedGET().method(PUT).payload(payloadFromResource("/node-update.json")).endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).build()
-      ).getNodeApiForZoneAndLoadBalancer("DFW", 2000);
+      ).getNodeApi("DFW", 2000);
 
       UpdateNode updateNode = UpdateNode.builder()
             .condition(Node.Condition.DISABLED)
@@ -135,7 +135,7 @@ public class NodeApiExpectTest extends BaseCloudLoadBalancerApiExpectTest<CloudL
             responseWithAccess, 
             authenticatedGET().method(DELETE).replaceHeader(ACCEPT, WILDCARD).endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).build()
-      ).getNodeApiForZoneAndLoadBalancer("DFW", 2000);
+      ).getNodeApi("DFW", 2000);
 
       api.remove(410);
    }
@@ -147,7 +147,7 @@ public class NodeApiExpectTest extends BaseCloudLoadBalancerApiExpectTest<CloudL
             responseWithAccess, 
             authenticatedGET().method(DELETE).replaceHeader(ACCEPT, WILDCARD).endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).build()
-      ).getNodeApiForZoneAndLoadBalancer("DFW", 2000);
+      ).getNodeApi("DFW", 2000);
       
       Set<Integer> nodeIds = ImmutableSortedSet.<Integer> of(410, 411);
 
@@ -161,7 +161,7 @@ public class NodeApiExpectTest extends BaseCloudLoadBalancerApiExpectTest<CloudL
             responseWithAccess, 
             authenticatedGET().endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/metadata-list.json")).build()
-      ).getNodeApiForZoneAndLoadBalancer("DFW", 2000);
+      ).getNodeApi("DFW", 2000);
 
       Metadata metadata = api.getMetadata(410);
       assertEquals(metadata, getExpectedMetadataWithIds());
@@ -177,7 +177,7 @@ public class NodeApiExpectTest extends BaseCloudLoadBalancerApiExpectTest<CloudL
                .endpoint(endpoint)
                .payload(payloadFromResourceWithContentType("/metadata-create.json", APPLICATION_JSON)).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/metadata-list.json")).build()
-      ).getNodeApiForZoneAndLoadBalancer("DFW", 2000);
+      ).getNodeApi("DFW", 2000);
          
       Metadata metadata = api.createMetadata(410, getExpectedMetadata());
       assertEquals(metadata, getExpectedMetadataWithIds());
@@ -190,7 +190,7 @@ public class NodeApiExpectTest extends BaseCloudLoadBalancerApiExpectTest<CloudL
             responseWithAccess, 
             authenticatedGET().method(DELETE).endpoint(endpoint).replaceHeader(ACCEPT, WILDCARD).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).build()
-      ).getNodeApiForZoneAndLoadBalancer("DFW", 2000);
+      ).getNodeApi("DFW", 2000);
 
       assertTrue(api.deleteMetadatum(410, 23));
    }
@@ -202,7 +202,7 @@ public class NodeApiExpectTest extends BaseCloudLoadBalancerApiExpectTest<CloudL
             responseWithAccess, 
             authenticatedGET().method(DELETE).endpoint(endpoint).replaceHeader(ACCEPT, WILDCARD).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).build()
-      ).getNodeApiForZoneAndLoadBalancer("DFW", 2000);
+      ).getNodeApi("DFW", 2000);
       
       
       

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiLiveTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiLiveTest.java
index 5fa7307..1524829 100644
--- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiLiveTest.java
+++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiLiveTest.java
@@ -51,16 +51,16 @@ public class NodeApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
    private Map<LoadBalancer, Set<Node>> nodes = Maps.newHashMap();
 
    public void testCreateLoadBalancers() {
-      assertTrue(api.getConfiguredZones().size() > 0, "Need to have some zones!");
-      Logger.getAnonymousLogger().info("running against zones " + api.getConfiguredZones());
-      for (String zone : api.getConfiguredZones()) {
-         Logger.getAnonymousLogger().info("starting lb in zone " + zone);
-         LoadBalancer lb = api.getLoadBalancerApiForZone(zone).create(
-                  CreateLoadBalancer.builder().name(prefix + "-" + zone).protocol("HTTP").port(80).virtualIPType(
+      assertTrue(api.getConfiguredRegions().size() > 0, "Need to have some regions!");
+      Logger.getAnonymousLogger().info("running against regions " + api.getConfiguredRegions());
+      for (String region : api.getConfiguredRegions()) {
+         Logger.getAnonymousLogger().info("starting lb in region " + region);
+         LoadBalancer lb = api.getLoadBalancerApi(region).create(
+                  CreateLoadBalancer.builder().name(prefix + "-" + region).protocol("HTTP").port(80).virtualIPType(
                            Type.PUBLIC).node(AddNode.builder().address("192.168.1.1").port(8080).build()).build());
          nodes.put(lb, new HashSet<Node>());
 
-         assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb));
+         assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb));
       }
    }
 
@@ -71,17 +71,17 @@ public class NodeApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
          Set<Node> nodeSet = entry.getValue();
          String region = lb.getRegion();
          Logger.getAnonymousLogger().info("starting node on loadbalancer " + lb.getId() + " in region " + region);
-         Set<Node> newNodes = api.getNodeApiForZoneAndLoadBalancer(region, lb.getId()).add(
+         Set<Node> newNodes = api.getNodeApi(region, lb.getId()).add(
                   ImmutableSet.<AddNode> of(AddNode.builder().address("192.168.1.2").port(8080).build()));
 
          for (Node n : newNodes) {
             assertEquals(n.getStatus(), Node.Status.ONLINE);
             nodeSet.add(n);
-            assertEquals(api.getNodeApiForZoneAndLoadBalancer(region, lb.getId()).get(n.getId()).getStatus(),
+            assertEquals(api.getNodeApi(region, lb.getId()).get(n.getId()).getStatus(),
                      Node.Status.ONLINE);
          }
 
-         assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb));
+         assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb));
       }
    }
 
@@ -90,12 +90,12 @@ public class NodeApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
       for (Entry<LoadBalancer, Set<Node>> entry : nodes.entrySet()) {
          for (Node n : entry.getValue()) {
             String region = entry.getKey().getRegion();
-            api.getNodeApiForZoneAndLoadBalancer(region, entry.getKey().getId()).update(n.getId(),
+            api.getNodeApi(region, entry.getKey().getId()).update(n.getId(),
                      UpdateNode.builder().weight(23).build());
-            assertEquals(api.getNodeApiForZoneAndLoadBalancer(region, entry.getKey().getId()).get(n.getId())
+            assertEquals(api.getNodeApi(region, entry.getKey().getId()).get(n.getId())
                      .getStatus(), Node.Status.ONLINE);
 
-            Node newNode = api.getNodeApiForZoneAndLoadBalancer(region, entry.getKey().getId()).get(n.getId());
+            Node newNode = api.getNodeApi(region, entry.getKey().getId()).get(n.getId());
             assertEquals(newNode.getStatus(), Node.Status.ONLINE);
             assertEquals(newNode.getWeight(), (Integer) 23);
          }
@@ -105,7 +105,7 @@ public class NodeApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
    @Test(dependsOnMethods = "testModifyNode")
    public void testListNodes() throws Exception {
       for (LoadBalancer lb : nodes.keySet()) {
-         Set<Node> response = api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).list().concat().toSet();
+         Set<Node> response = api.getNodeApi(lb.getRegion(), lb.getId()).list().concat().toSet();
          assert null != response;
          assertTrue(response.size() >= 0);
          for (Node n : response) {
@@ -117,7 +117,7 @@ public class NodeApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
             assert !Arrays.asList(LoadBalancer.WEIGHTED_ALGORITHMS).contains(lb.getAlgorithm())
                      || n.getWeight() != null : n;
 
-            Node getDetails = api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).get(n.getId());
+            Node getDetails = api.getNodeApi(lb.getRegion(), lb.getId()).get(n.getId());
 
             try {
                assertEquals(getDetails.getId(), n.getId());
@@ -134,7 +134,7 @@ public class NodeApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
          }
       }
    }
-   
+
    @Test(dependsOnMethods = "testListNodes")
    public void testNodeMetadata() throws Exception {
       for (Entry<LoadBalancer, Set<Node>> entry : nodes.entrySet()) {
@@ -144,28 +144,28 @@ public class NodeApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
                "key1", "value1",
                "key2", "value2",
                "key3", "value3");
-         
-         Metadata metadata = api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).createMetadata(node.getId(), metadataMap);
+
+         Metadata metadata = api.getNodeApi(lb.getRegion(), lb.getId()).createMetadata(node.getId(), metadataMap);
          assertEquals(metadata, getExpectedMetadata());
-         assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb));
+         assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb));
 
-         metadata = api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).getMetadata(node.getId());
+         metadata = api.getNodeApi(lb.getRegion(), lb.getId()).getMetadata(node.getId());
          assertEquals(metadata, getExpectedMetadata());
 
-         assertTrue(api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).updateMetadatum(node.getId(), metadata.getId("key1"), "key1-updated"));
-         assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb));
-         metadata = api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).getMetadata(node.getId());
+         assertTrue(api.getNodeApi(lb.getRegion(), lb.getId()).updateMetadatum(node.getId(), metadata.getId("key1"), "key1-updated"));
+         assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb));
+         metadata = api.getNodeApi(lb.getRegion(), lb.getId()).getMetadata(node.getId());
          assertEquals(metadata.get("key1"), "key1-updated");
 
-         assertTrue(api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).deleteMetadatum(node.getId(), metadata.getId("key1")));
-         assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb));
-         metadata = api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).getMetadata(node.getId());
+         assertTrue(api.getNodeApi(lb.getRegion(), lb.getId()).deleteMetadatum(node.getId(), metadata.getId("key1")));
+         assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb));
+         metadata = api.getNodeApi(lb.getRegion(), lb.getId()).getMetadata(node.getId());
          assertNull(metadata.get("key1"));
 
-         assertTrue(api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).deleteMetadata(node.getId(), 
+         assertTrue(api.getNodeApi(lb.getRegion(), lb.getId()).deleteMetadata(node.getId(),
                ImmutableList.<Integer> of(metadata.getId("key2"), metadata.getId("key3"))));
-         assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb));
-         metadata = api.getNodeApiForZoneAndLoadBalancer(lb.getRegion(), lb.getId()).getMetadata(node.getId());
+         assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb));
+         metadata = api.getNodeApi(lb.getRegion(), lb.getId()).getMetadata(node.getId());
          assertEquals(metadata.size(), 0);
       }
    }
@@ -175,13 +175,13 @@ public class NodeApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
    protected void tearDown() {
       for (Entry<LoadBalancer, Set<Node>> entry : nodes.entrySet()) {
          LoadBalancer lb = entry.getKey();
-         LoadBalancerApi lbClient = api.getLoadBalancerApiForZone(lb.getRegion());
+         LoadBalancerApi lbClient = api.getLoadBalancerApi(lb.getRegion());
 
          if (lbClient.get(lb.getId()).getStatus() != Status.DELETED) {
-            assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb));
+            assertTrue(awaitAvailable(api.getLoadBalancerApi(lb.getRegion())).apply(lb));
             lbClient.delete(lb.getId());
          }
-         assertTrue(awaitDeleted(api.getLoadBalancerApiForZone(lb.getRegion())).apply(lb));
+         assertTrue(awaitDeleted(api.getLoadBalancerApi(lb.getRegion())).apply(lb));
       }
       super.tearDown();
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ReportApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ReportApiExpectTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ReportApiExpectTest.java
index b77d2ab..4de08ba 100644
--- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ReportApiExpectTest.java
+++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ReportApiExpectTest.java
@@ -40,53 +40,53 @@ import com.google.common.collect.Iterables;
 public class ReportApiExpectTest extends BaseCloudLoadBalancerApiExpectTest<CloudLoadBalancersApi> {
    public void testListBillableLoadBalancers() {
       Calendar calendar = Calendar.getInstance();
-      calendar.add(Calendar.DATE, -7);      
+      calendar.add(Calendar.DATE, -7);
       Date aWeekAgo = calendar.getTime();
       Date today = new Date();
-      
+
       String query = new StringBuilder()
          .append("?startTime=")
          .append(new DateParser().apply(aWeekAgo))
          .append("&endTime=")
          .append(new DateParser().apply(today))
          .toString();
-            
+
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/billable" + query);
       ReportApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET().endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/report-billable-list.json")).build()
-      ).getReportApiForZone("DFW");
-            
+      ).getReportApi("DFW");
+
       FluentIterable<LoadBalancer> loadBalancers = api.listBillableLoadBalancers(aWeekAgo, today).concat();
-      
+
       assertEquals(Iterables.size(loadBalancers), 2);
    }
 
    public void testGetHistoricalUsage() {
       Calendar calendar = Calendar.getInstance();
-      calendar.add(Calendar.DATE, -7);      
+      calendar.add(Calendar.DATE, -7);
       Date aWeekAgo = calendar.getTime();
       Date today = new Date();
-      
+
       String query = new StringBuilder()
          .append("?startTime=")
          .append(new DateParser().apply(aWeekAgo))
          .append("&endTime=")
          .append(new DateParser().apply(today))
          .toString();
-            
+
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/usage" + query);
       ReportApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET().endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/report-historical-get.json")).build()
-      ).getReportApiForZone("DFW");
+      ).getReportApi("DFW");
 
       HistoricalUsage historicalUsage = api.getHistoricalUsage(aWeekAgo, today);
-      
+
       assertEquals(historicalUsage.getAccountId(), 717071);
       assertEquals(Iterables.get(historicalUsage.getAccountUsage(), 0).getNumLoadBalancers(), 2);
       assertEquals(Iterables.size(historicalUsage.getLoadBalancerInfo()), 2);
@@ -94,27 +94,27 @@ public class ReportApiExpectTest extends BaseCloudLoadBalancerApiExpectTest<Clou
 
    public void testListLoadBalancerUsage() {
       Calendar calendar = Calendar.getInstance();
-      calendar.add(Calendar.DATE, -7);      
+      calendar.add(Calendar.DATE, -7);
       Date aWeekAgo = calendar.getTime();
       Date today = new Date();
-      
+
       String query = new StringBuilder()
          .append("?startTime=")
          .append(new DateParser().apply(aWeekAgo))
          .append("&endTime=")
          .append(new DateParser().apply(today))
          .toString();
-            
+
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/usage" + query);
       ReportApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET().endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/report-loadbalancerusage-list.json")).build()
-      ).getReportApiForZone("DFW");
+      ).getReportApi("DFW");
 
       FluentIterable<LoadBalancerUsage> loadBalancerUsages = api.listLoadBalancerUsage(2000, aWeekAgo, today).concat();
-      
+
       assertEquals(Iterables.size(loadBalancerUsages), 25);
    }
 
@@ -122,46 +122,46 @@ public class ReportApiExpectTest extends BaseCloudLoadBalancerApiExpectTest<Clou
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/usage/current");
       ReportApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET().endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/report-loadbalancerusage-list.json")).build()
-      ).getReportApiForZone("DFW");
-            
+      ).getReportApi("DFW");
+
       FluentIterable<LoadBalancerUsage> loadBalancerUsages = api.listCurrentLoadBalancerUsage(2000).concat();
-      
+
       assertEquals(Iterables.size(loadBalancerUsages), 25);
    }
-   
+
    public void testGetLoadBalancerStats() {
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/stats");
       ReportApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET().endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/report-loadbalancerstats-get.json")).build()
-      ).getReportApiForZone("DFW");
-            
+      ).getReportApi("DFW");
+
       LoadBalancerStats loadBalancerStats = api.getLoadBalancerStats(2000);
-      
+
       assertEquals(loadBalancerStats.getConnectTimeOut(), 2);
       assertEquals(loadBalancerStats.getConnectError(), 0);
       assertEquals(loadBalancerStats.getConnectFailure(), 0);
       assertEquals(loadBalancerStats.getDataTimedOut(), 10);
       assertEquals(loadBalancerStats.getKeepAliveTimedOut(), 0);
       assertEquals(loadBalancerStats.getMaxConn(), 22);
-   }   
+   }
 
    public void testListProtocols() {
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/protocols");
       ReportApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET().endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/report-protocols-list.json")).build()
-      ).getReportApiForZone("DFW");
-            
+      ).getReportApi("DFW");
+
       Iterable<Protocol> protocols = api.listProtocols();
-      
+
       assertEquals(Iterables.size(protocols), 20);
    }
 
@@ -169,13 +169,13 @@ public class ReportApiExpectTest extends BaseCloudLoadBalancerApiExpectTest<Clou
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/algorithms");
       ReportApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET().endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/report-algorithms-list.json")).build()
-      ).getReportApiForZone("DFW");
-            
+      ).getReportApi("DFW");
+
       Iterable<String> algorithms = api.listAlgorithms();
-      
+
       assertEquals(Iterables.size(algorithms), 5);
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ReportApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ReportApiLiveTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ReportApiLiveTest.java
index 27875f7..8824ecd 100644
--- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ReportApiLiveTest.java
+++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/ReportApiLiveTest.java
@@ -44,40 +44,40 @@ import com.google.common.collect.Iterables;
 @Test(groups = "live", singleThreaded = true, testName = "ReportApiLiveTest")
 public class ReportApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
    private LoadBalancer lb;
-   private String zone;
+   private String region;
 
    public void testCreateLoadBalancer() {
       AddNode addNode = AddNode.builder().address("192.168.1.1").port(8080).build();
       CreateLoadBalancer createLB = CreateLoadBalancer.builder()
             .name(prefix + "-jclouds").protocol("HTTP").port(80).virtualIPType(Type.PUBLIC).node(addNode).build();
 
-      zone = Iterables.getFirst(api.getConfiguredZones(), null);
-      lb = api.getLoadBalancerApiForZone(zone).create(createLB);
-      
-      assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb));
+      region = Iterables.getFirst(api.getConfiguredRegions(), null);
+      lb = api.getLoadBalancerApi(region).create(createLB);
+
+      assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb));
    }
 
    @Test(dependsOnMethods = "testCreateLoadBalancer")
    public void testReports() throws Exception {
       Calendar calendar = Calendar.getInstance();
-      calendar.add(Calendar.DATE, -1);      
+      calendar.add(Calendar.DATE, -1);
       Date yesterday = calendar.getTime();
       Date today = new Date();
 
-      FluentIterable<LoadBalancer> loadBalancers = api.getReportApiForZone(zone).listBillableLoadBalancers(yesterday, today).concat();
+      FluentIterable<LoadBalancer> loadBalancers = api.getReportApi(region).listBillableLoadBalancers(yesterday, today).concat();
       assertNotNull(loadBalancers);
-      
-      HistoricalUsage historicalUsage = api.getReportApiForZone(zone).getHistoricalUsage(yesterday, today);
+
+      HistoricalUsage historicalUsage = api.getReportApi(region).getHistoricalUsage(yesterday, today);
       assertNotEquals(historicalUsage.getAccountId(), 0);
 
-      FluentIterable<LoadBalancerUsage> loadBalancerUsages = api.getReportApiForZone(zone).listLoadBalancerUsage(lb.getId(), yesterday, today).concat();
+      FluentIterable<LoadBalancerUsage> loadBalancerUsages = api.getReportApi(region).listLoadBalancerUsage(lb.getId(), yesterday, today).concat();
       assertNotNull(loadBalancerUsages);
 
-      loadBalancerUsages = api.getReportApiForZone(zone).listCurrentLoadBalancerUsage(lb.getId()).concat();
+      loadBalancerUsages = api.getReportApi(region).listCurrentLoadBalancerUsage(lb.getId()).concat();
       assertNotNull(loadBalancerUsages);
-      
+
       try {
-         LoadBalancerStats loadBalancerStats = api.getReportApiForZone(zone).getLoadBalancerStats(lb.getId());
+         LoadBalancerStats loadBalancerStats = api.getReportApi(region).getLoadBalancerStats(lb.getId());
          assertNotNull(loadBalancerStats);
       }
       catch (HttpResponseException e) {
@@ -86,20 +86,20 @@ public class ReportApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
             throw e;
          }
       }
-      
-      Iterable<Protocol> protocols = api.getReportApiForZone(zone).listProtocols();
+
+      Iterable<Protocol> protocols = api.getReportApi(region).listProtocols();
       assertTrue(!Iterables.isEmpty(protocols));
 
-      Iterable<String> algorithms = api.getReportApiForZone(zone).listAlgorithms();
+      Iterable<String> algorithms = api.getReportApi(region).listAlgorithms();
       assertTrue(!Iterables.isEmpty(algorithms));
    }
 
    @Override
    @AfterGroups(groups = "live")
    protected void tearDown() {
-      assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb));
-      api.getLoadBalancerApiForZone(zone).delete(lb.getId());
-      assertTrue(awaitDeleted(api.getLoadBalancerApiForZone(zone)).apply(lb));
+      assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb));
+      api.getLoadBalancerApi(region).delete(lb.getId());
+      assertTrue(awaitDeleted(api.getLoadBalancerApi(region)).apply(lb));
       super.tearDown();
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SSLTerminationApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SSLTerminationApiExpectTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SSLTerminationApiExpectTest.java
index fe69b0a..5a05728 100644
--- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SSLTerminationApiExpectTest.java
+++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SSLTerminationApiExpectTest.java
@@ -43,10 +43,10 @@ public class SSLTerminationApiExpectTest extends BaseCloudLoadBalancerApiExpectT
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/ssltermination");
       SSLTerminationApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET().endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/ssltermination-get.json")).build()
-      ).getSSLTerminationApiForZoneAndLoadBalancer("DFW", 2000);
+      ).getSSLTerminationApi("DFW", 2000);
 
       SSLTermination sslTermination = api.get();
       assertEquals(sslTermination, getSSLTermination());
@@ -56,10 +56,10 @@ public class SSLTerminationApiExpectTest extends BaseCloudLoadBalancerApiExpectT
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/ssltermination");
       SSLTerminationApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET().endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(NOT_FOUND.getStatusCode()).build()
-      ).getSSLTerminationApiForZoneAndLoadBalancer("DFW", 2000);
+      ).getSSLTerminationApi("DFW", 2000);
 
       SSLTermination sslTermination = api.get();
       assertNull(sslTermination);
@@ -69,15 +69,15 @@ public class SSLTerminationApiExpectTest extends BaseCloudLoadBalancerApiExpectT
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/ssltermination");
       SSLTerminationApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET()
                .method(PUT)
                .endpoint(endpoint)
                .payload(payloadFromResourceWithContentType("/ssltermination-create.json", APPLICATION_JSON))
                .build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).build()
-      ).getSSLTerminationApiForZoneAndLoadBalancer("DFW", 2000);
-      
+      ).getSSLTerminationApi("DFW", 2000);
+
       api.createOrUpdate(getSSLTermination());
    }
 
@@ -85,10 +85,10 @@ public class SSLTerminationApiExpectTest extends BaseCloudLoadBalancerApiExpectT
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/ssltermination");
       SSLTerminationApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET().method(DELETE).endpoint(endpoint).replaceHeader(ACCEPT, WILDCARD).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).build()
-      ).getSSLTerminationApiForZoneAndLoadBalancer("DFW", 2000);
+      ).getSSLTerminationApi("DFW", 2000);
 
       assertTrue(api.delete());
    }
@@ -100,7 +100,7 @@ public class SSLTerminationApiExpectTest extends BaseCloudLoadBalancerApiExpectT
             SSLTerminationApiExpectTest.class.getResourceAsStream("/ssltermination-privatekey.txt"));
       String intermediateCertificate = Strings2.toStringAndClose(
             SSLTerminationApiExpectTest.class.getResourceAsStream("/ssltermination-intermediatecertificate.txt"));
-      
+
       SSLTermination sslTermination = SSLTermination.builder()
             .enabled(true)
             .secureTrafficOnly(false)

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SSLTerminationApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SSLTerminationApiLiveTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SSLTerminationApiLiveTest.java
index 27ce29c..8cca6b4 100644
--- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SSLTerminationApiLiveTest.java
+++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SSLTerminationApiLiveTest.java
@@ -36,48 +36,48 @@ import com.google.common.collect.Iterables;
 @Test(groups = "live", singleThreaded = true, testName = "SSLTerminationApiLiveTest")
 public class SSLTerminationApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
    private LoadBalancer lb;
-   private String zone;
+   private String region;
 
    public void testCreateLoadBalancer() {
       AddNode addNode = AddNode.builder().address("192.168.1.1").port(8080).build();
       CreateLoadBalancer createLB = CreateLoadBalancer.builder()
             .name(prefix + "-jclouds").protocol("HTTP").port(80).virtualIPType(Type.PUBLIC).node(addNode).build();
 
-      zone = Iterables.getFirst(api.getConfiguredZones(), null);
-      lb = api.getLoadBalancerApiForZone(zone).create(createLB);
-      
-      assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb));
+      region = Iterables.getFirst(api.getConfiguredRegions(), null);
+      lb = api.getLoadBalancerApi(region).create(createLB);
+
+      assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb));
    }
 
    @Test(dependsOnMethods = "testCreateLoadBalancer")
    public void testCreateAndGetSSLTermination() throws Exception {
-      api.getSSLTerminationApiForZoneAndLoadBalancer(zone, lb.getId()).createOrUpdate(
+      api.getSSLTerminationApi(region, lb.getId()).createOrUpdate(
             SSLTerminationApiExpectTest.getSSLTermination());
-      assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb));
-      
-      SSLTermination sslTermination = 
-            api.getSSLTerminationApiForZoneAndLoadBalancer(zone, lb.getId()).get();
+      assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb));
+
+      SSLTermination sslTermination =
+            api.getSSLTerminationApi(region, lb.getId()).get();
 
       assertEquals(sslTermination, SSLTerminationApiExpectTest.getSSLTermination());
    }
-   
+
    @Test(dependsOnMethods = "testCreateAndGetSSLTermination")
    public void testRemoveAndGetSSLTermination() throws Exception {
-      assertTrue(api.getSSLTerminationApiForZoneAndLoadBalancer(zone, lb.getId()).delete());
-      assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb));
-      
-      SSLTermination sslTermination = 
-            api.getSSLTerminationApiForZoneAndLoadBalancer(zone, lb.getId()).get();
-      
+      assertTrue(api.getSSLTerminationApi(region, lb.getId()).delete());
+      assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb));
+
+      SSLTermination sslTermination =
+            api.getSSLTerminationApi(region, lb.getId()).get();
+
       assertNull(sslTermination);
    }
 
    @Override
    @AfterGroups(groups = "live")
    protected void tearDown() {
-      assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb));
-      api.getLoadBalancerApiForZone(zone).delete(lb.getId());
-      assertTrue(awaitDeleted(api.getLoadBalancerApiForZone(zone)).apply(lb));
+      assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb));
+      api.getLoadBalancerApi(region).delete(lb.getId());
+      assertTrue(awaitDeleted(api.getLoadBalancerApi(region)).apply(lb));
       super.tearDown();
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SessionPersistenceApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SessionPersistenceApiExpectTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SessionPersistenceApiExpectTest.java
index 3849fb8..4f346f9 100644
--- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SessionPersistenceApiExpectTest.java
+++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SessionPersistenceApiExpectTest.java
@@ -35,10 +35,10 @@ public class SessionPersistenceApiExpectTest extends BaseCloudLoadBalancerApiExp
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/sessionpersistence");
       SessionPersistenceApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET().endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/sessionpersistence-get.json")).build()
-      ).getSessionPersistenceApiForZoneAndLoadBalancer("DFW", 2000);
+      ).getSessionPersistenceApi("DFW", 2000);
 
       SessionPersistence sessionPersistence = api.get();
       assertEquals(sessionPersistence, SessionPersistence.HTTP_COOKIE);
@@ -48,36 +48,36 @@ public class SessionPersistenceApiExpectTest extends BaseCloudLoadBalancerApiExp
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/sessionpersistence");
       SessionPersistenceApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET().endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/sessionpersistence-get-deleted.json")).build()
-      ).getSessionPersistenceApiForZoneAndLoadBalancer("DFW", 2000);
+      ).getSessionPersistenceApi("DFW", 2000);
 
       SessionPersistence sessionPersistence = api.get();
       assertNull(sessionPersistence);
    }
-   
+
    public void testCreateSessionPersistence() {
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/sessionpersistence");
       SessionPersistenceApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET().method(PUT).endpoint(endpoint).payload(payloadFromResource("/sessionpersistence-create.json")).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).build()
-      ).getSessionPersistenceApiForZoneAndLoadBalancer("DFW", 2000);
-      
+      ).getSessionPersistenceApi("DFW", 2000);
+
       api.create(SessionPersistence.HTTP_COOKIE);
    }
-   
+
    public void testRemoveSessionPersistence() {
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/sessionpersistence");
       SessionPersistenceApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET().method(DELETE).endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).build()
-      ).getSessionPersistenceApiForZoneAndLoadBalancer("DFW", 2000);
-      
+      ).getSessionPersistenceApi("DFW", 2000);
+
       api.delete();
-   }   
+   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SessionPersistenceApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SessionPersistenceApiLiveTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SessionPersistenceApiLiveTest.java
index 26bb41e..b6dad1f 100644
--- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SessionPersistenceApiLiveTest.java
+++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/SessionPersistenceApiLiveTest.java
@@ -36,47 +36,47 @@ import com.google.common.collect.Iterables;
 @Test(groups = "live", singleThreaded = true, testName = "SessionPersistenceApiLiveTest")
 public class SessionPersistenceApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
    private LoadBalancer lb;
-   private String zone;
+   private String region;
 
    public void testCreateLoadBalancer() {
       AddNode addNode = AddNode.builder().address("192.168.1.1").port(8080).build();
       CreateLoadBalancer createLB = CreateLoadBalancer.builder()
             .name(prefix + "-jclouds").protocol("HTTP").port(80).virtualIPType(Type.PUBLIC).node(addNode).build();
 
-      zone = Iterables.getFirst(api.getConfiguredZones(), null);
-      lb = api.getLoadBalancerApiForZone(zone).create(createLB);
-      
-      assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb));
+      region = Iterables.getFirst(api.getConfiguredRegions(), null);
+      lb = api.getLoadBalancerApi(region).create(createLB);
+
+      assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb));
    }
 
    @Test(dependsOnMethods = "testCreateLoadBalancer")
    public void testCreateAndGetSessionPersistence() throws Exception {
-      api.getSessionPersistenceApiForZoneAndLoadBalancer(zone, lb.getId()).create(SessionPersistence.HTTP_COOKIE);
-      assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb));
-      
-      SessionPersistence sessionPersistence = 
-            api.getSessionPersistenceApiForZoneAndLoadBalancer(zone, lb.getId()).get();
+      api.getSessionPersistenceApi(region, lb.getId()).create(SessionPersistence.HTTP_COOKIE);
+      assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb));
+
+      SessionPersistence sessionPersistence =
+            api.getSessionPersistenceApi(region, lb.getId()).get();
 
       assertEquals(sessionPersistence, SessionPersistence.HTTP_COOKIE);
    }
-   
+
    @Test(dependsOnMethods = "testCreateAndGetSessionPersistence")
    public void testRemoveAndGetSessionPersistence() throws Exception {
-      api.getSessionPersistenceApiForZoneAndLoadBalancer(zone, lb.getId()).delete();
-      assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb));
-      
-      SessionPersistence sessionPersistence = 
-            api.getSessionPersistenceApiForZoneAndLoadBalancer(zone, lb.getId()).get();
-      
+      api.getSessionPersistenceApi(region, lb.getId()).delete();
+      assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb));
+
+      SessionPersistence sessionPersistence =
+            api.getSessionPersistenceApi(region, lb.getId()).get();
+
       assertNull(sessionPersistence);
    }
 
    @Override
    @AfterGroups(groups = "live")
    protected void tearDown() {
-      assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb));
-      api.getLoadBalancerApiForZone(zone).delete(lb.getId());
-      assertTrue(awaitDeleted(api.getLoadBalancerApiForZone(zone)).apply(lb));
+      assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb));
+      api.getLoadBalancerApi(region).delete(lb.getId());
+      assertTrue(awaitDeleted(api.getLoadBalancerApi(region)).apply(lb));
       super.tearDown();
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/VirtualIPApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/VirtualIPApiExpectTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/VirtualIPApiExpectTest.java
index 39c0e12..d8bdedf 100644
--- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/VirtualIPApiExpectTest.java
+++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/VirtualIPApiExpectTest.java
@@ -40,10 +40,10 @@ public class VirtualIPApiExpectTest extends BaseCloudLoadBalancerApiExpectTest<C
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/virtualips");
       VirtualIPApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET().endpoint(endpoint).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/virtualips-list.json")).build()
-      ).getVirtualIPApiForZoneAndLoadBalancer("DFW", 2000);
+      ).getVirtualIPApi("DFW", 2000);
 
       Iterable<VirtualIPWithId> virtualIPs = api.list();
       assertEquals(virtualIPs, getVirtualIPs());
@@ -53,11 +53,11 @@ public class VirtualIPApiExpectTest extends BaseCloudLoadBalancerApiExpectTest<C
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/virtualips");
       VirtualIPApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET().method(POST).endpoint(endpoint).payload(payloadFromResource("/virtualips-create.json")).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).payload(payloadFromResource("/virtualips-create-response.json")).build()
-      ).getVirtualIPApiForZoneAndLoadBalancer("DFW", 2000);
-         
+      ).getVirtualIPApi("DFW", 2000);
+
       api.create(VirtualIP.publicIPv6());
    }
 
@@ -65,10 +65,10 @@ public class VirtualIPApiExpectTest extends BaseCloudLoadBalancerApiExpectTest<C
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/virtualips/23");
       VirtualIPApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET().method(DELETE).endpoint(endpoint).replaceHeader(ACCEPT, WILDCARD).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).build()
-      ).getVirtualIPApiForZoneAndLoadBalancer("DFW", 2000);
+      ).getVirtualIPApi("DFW", 2000);
 
       api.delete(23);
    }
@@ -77,10 +77,10 @@ public class VirtualIPApiExpectTest extends BaseCloudLoadBalancerApiExpectTest<C
       URI endpoint = URI.create("https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/123123/loadbalancers/2000/virtualips?id=23&id=24");
       VirtualIPApi api = requestsSendResponses(
             rackspaceAuthWithUsernameAndApiKey,
-            responseWithAccess, 
+            responseWithAccess,
             authenticatedGET().method(DELETE).endpoint(endpoint).replaceHeader(ACCEPT, WILDCARD).build(),
             HttpResponse.builder().statusCode(OK.getStatusCode()).build()
-      ).getVirtualIPApiForZoneAndLoadBalancer("DFW", 2000);
+      ).getVirtualIPApi("DFW", 2000);
 
       List<Integer> virtualIPIds = ImmutableList.<Integer> of(23, 24);
       api.delete(virtualIPIds);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/VirtualIPApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/VirtualIPApiLiveTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/VirtualIPApiLiveTest.java
index b94ebe5..2044355 100644
--- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/VirtualIPApiLiveTest.java
+++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/VirtualIPApiLiveTest.java
@@ -40,57 +40,57 @@ import com.google.common.collect.Iterators;
 @Test(groups = "live", singleThreaded = true, testName = "VirtualIPApiLiveTest")
 public class VirtualIPApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
    private LoadBalancer lb;
-   private String zone;
+   private String region;
 
    public void testCreateLoadBalancer() {
       AddNode addNode = AddNode.builder().address("192.168.1.1").port(8080).build();
       CreateLoadBalancer createLB = CreateLoadBalancer.builder()
             .name(prefix + "-jclouds").protocol("HTTP").port(80).virtualIPType(Type.PUBLIC).node(addNode).build();
 
-      zone = Iterables.getFirst(api.getConfiguredZones(), null);
-      lb = api.getLoadBalancerApiForZone(zone).create(createLB);
-      
-      assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb));
+      region = Iterables.getFirst(api.getConfiguredRegions(), null);
+      lb = api.getLoadBalancerApi(region).create(createLB);
+
+      assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb));
    }
 
    @Test(dependsOnMethods = "testCreateLoadBalancer")
    public void testCreateVirtualIPs() throws Exception {
-      api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).create(VirtualIP.publicIPv6());
-      assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb));
-      api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).create(VirtualIP.publicIPv6());
-      assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb));
-      api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).create(VirtualIP.publicIPv6());
-      assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb));
+      api.getVirtualIPApi(region, lb.getId()).create(VirtualIP.publicIPv6());
+      assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb));
+      api.getVirtualIPApi(region, lb.getId()).create(VirtualIP.publicIPv6());
+      assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb));
+      api.getVirtualIPApi(region, lb.getId()).create(VirtualIP.publicIPv6());
+      assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb));
 
-      Iterable<VirtualIPWithId> actualVirtualIPs = api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).list();
+      Iterable<VirtualIPWithId> actualVirtualIPs = api.getVirtualIPApi(region, lb.getId()).list();
 
       assertEquals(Iterators.size(actualVirtualIPs.iterator()), 5);
    }
-   
+
    @Test(dependsOnMethods = "testCreateVirtualIPs")
    public void testRemoveSingleVirtualIP() throws Exception {
-      Iterable<VirtualIPWithId> actualVirtualIPs = api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).list();
+      Iterable<VirtualIPWithId> actualVirtualIPs = api.getVirtualIPApi(region, lb.getId()).list();
       VirtualIPWithId removedVirtualIP = Iterables.getFirst(actualVirtualIPs, null);
-      
-      assertTrue(api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).delete(removedVirtualIP.getId()));
-      assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb));
-      
-      actualVirtualIPs = api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).list();
+
+      assertTrue(api.getVirtualIPApi(region, lb.getId()).delete(removedVirtualIP.getId()));
+      assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb));
+
+      actualVirtualIPs = api.getVirtualIPApi(region, lb.getId()).list();
 
       assertEquals(Iterators.size(actualVirtualIPs.iterator()), 4);
    }
-   
+
    @Test(dependsOnMethods = "testRemoveSingleVirtualIP")
    public void testRemoveManyVirtualIPs() throws Exception {
-      Iterable<VirtualIPWithId> actualVirtualIPs = api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).list();
+      Iterable<VirtualIPWithId> actualVirtualIPs = api.getVirtualIPApi(region, lb.getId()).list();
       VirtualIPWithId removedVirtualIP1 = Iterables.getFirst(actualVirtualIPs, null);
       VirtualIPWithId removedVirtualIP2 = Iterables.getLast(actualVirtualIPs);
       List<Integer> removedVirtualIPIds = ImmutableList.<Integer> of(removedVirtualIP1.getId(), removedVirtualIP2.getId());
-      
-      assertTrue(api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).delete(removedVirtualIPIds));
-      assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb));
-      
-      actualVirtualIPs = api.getVirtualIPApiForZoneAndLoadBalancer(zone, lb.getId()).list();
+
+      assertTrue(api.getVirtualIPApi(region, lb.getId()).delete(removedVirtualIPIds));
+      assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb));
+
+      actualVirtualIPs = api.getVirtualIPApi(region, lb.getId()).list();
 
       assertEquals(Iterators.size(actualVirtualIPs.iterator()), 2);
    }
@@ -98,9 +98,9 @@ public class VirtualIPApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
    @Override
    @AfterGroups(groups = "live")
    protected void tearDown() {
-      assertTrue(awaitAvailable(api.getLoadBalancerApiForZone(zone)).apply(lb));
-      api.getLoadBalancerApiForZone(zone).delete(lb.getId());
-      assertTrue(awaitDeleted(api.getLoadBalancerApiForZone(zone)).apply(lb));
+      assertTrue(awaitAvailable(api.getLoadBalancerApi(region)).apply(lb));
+      api.getLoadBalancerApi(region).delete(lb.getId());
+      assertTrue(awaitDeleted(api.getLoadBalancerApi(region)).apply(lb));
       super.tearDown();
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/internal/BaseCloudLoadBalancersApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/internal/BaseCloudLoadBalancersApiLiveTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/internal/BaseCloudLoadBalancersApiLiveTest.java
index dde58ac..b4d69f3 100644
--- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/internal/BaseCloudLoadBalancersApiLiveTest.java
+++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/internal/BaseCloudLoadBalancersApiLiveTest.java
@@ -34,7 +34,7 @@ public class BaseCloudLoadBalancersApiLiveTest extends BaseApiLiveTest<CloudLoad
    @Override
    public void setup() {
       super.setup();
-      Logger.getAnonymousLogger().info("running against zones " + api.getConfiguredZones());
+      Logger.getAnonymousLogger().info("running against regions " + api.getConfiguredRegions());
    }
 
    @Override

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/core/src/main/java/org/jclouds/collect/internal/Arg0ToPagedIterable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/collect/internal/Arg0ToPagedIterable.java b/core/src/main/java/org/jclouds/collect/internal/Arg0ToPagedIterable.java
index bedea2c..c704400 100644
--- a/core/src/main/java/org/jclouds/collect/internal/Arg0ToPagedIterable.java
+++ b/core/src/main/java/org/jclouds/collect/internal/Arg0ToPagedIterable.java
@@ -46,9 +46,9 @@ public abstract class Arg0ToPagedIterable<T, I extends Arg0ToPagedIterable<T, I>
 
    /**
     * Used to propagate caller {@code arg0} to a callee during an advance in a {@link PagedIterable}. For example, in
-    * the call {@code api.getUserApiForZone(zone).list()}, the caller arg0 is the value of {@code zone}, and the callee
+    * the call {@code api.getUserApi(region).list()}, the caller arg0 is the value of {@code region}, and the callee
     * is {@code UserApi.list()}
-    * 
+    *
     */
    public abstract static class FromCaller<T, I extends FromCaller<T, I>> extends Arg0ToPagedIterable<T, I> {
       @Override

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/core/src/main/java/org/jclouds/collect/internal/ArgsToPagedIterable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/collect/internal/ArgsToPagedIterable.java b/core/src/main/java/org/jclouds/collect/internal/ArgsToPagedIterable.java
index 9dfb3ad..6f1a075 100644
--- a/core/src/main/java/org/jclouds/collect/internal/ArgsToPagedIterable.java
+++ b/core/src/main/java/org/jclouds/collect/internal/ArgsToPagedIterable.java
@@ -73,10 +73,10 @@ public abstract class ArgsToPagedIterable<T, I extends ArgsToPagedIterable<T, I>
     * <p>
     * This class provides a way to propagate the arguments passed to the caller
     * of the method, so they can be used to fetch the next page of the result
-    * set. For example, in the call {@code api.getUserApiForZone(zone).list()},
-    * the caller arg0 is the value of {@code zone}, and the callee is
+    * set. For example, in the call {@code api.getUserApi(region).list()},
+    * the caller arg0 is the value of {@code region}, and the callee is
     * {@code UserApi.list()}
-    * 
+    *
     * @see ParseImages function in openstack-glance for a usage example.
     */
    public abstract static class FromCaller<T, I extends FromCaller<T, I>> extends ArgsToPagedIterable<T, I> {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/core/src/test/java/org/jclouds/apis/BaseApiLiveTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/apis/BaseApiLiveTest.java b/core/src/test/java/org/jclouds/apis/BaseApiLiveTest.java
index 7b26541..b951f10 100644
--- a/core/src/test/java/org/jclouds/apis/BaseApiLiveTest.java
+++ b/core/src/test/java/org/jclouds/apis/BaseApiLiveTest.java
@@ -74,17 +74,17 @@ public abstract class BaseApiLiveTest<A extends Closeable> {
    }
 
    /**
-    * This helps live testing against specific zones only.
-    * @param zones A list of zones, usually from getConfiguredZones()
-    * @return a set of zones in the given set that are also contained in the set specified by the test.live.zones system property
+    * This helps live testing against specific regions only.
+    * @param regions A list of regions, usually from getConfiguredRegions()
+    * @return a set of regions in the given set that are also contained in the set specified by the test.live.regions system property
     */
-   protected Set<String> filterZones(Set<String> zones) {
-      String zonesToList = System.getProperty("test.live.zones");
-      if (zonesToList == null) {
-         return zones; // no filter applied
+   protected Set<String> filterRegions(Set<String> regions) {
+      String regionsToList = System.getProperty("test.live.regions");
+      if (regionsToList == null) {
+         return regions; // no filter applied
       }
-      Set<String> zoneFilter = Sets.newHashSet(Splitter.on(',').split(zonesToList));
-      return Sets.intersection(zones, zoneFilter);
+      Set<String> regionFilter = Sets.newHashSet(Splitter.on(',').split(regionsToList));
+      return Sets.intersection(regions, regionFilter);
    }
 
    @BeforeClass(groups = { "integration", "live" })
@@ -115,7 +115,7 @@ public abstract class BaseApiLiveTest<A extends Closeable> {
          return null;
       }
    }
-   
+
    /**
     * @see org.jclouds.apis.Apis#withId
     */
@@ -151,7 +151,7 @@ public abstract class BaseApiLiveTest<A extends Closeable> {
                   "either createApiMetadata or createProviderMetadata must be overridden")));
       return builder;
    }
-   
+
    @AfterClass(groups = { "integration", "live" })
    protected void tearDown() {
       closeQuietly(api);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/providers/hpcloud-blockstorage/src/test/java/org/jclouds/hpcloud/blockstorage/HPCloudBlockStorageProviderMetadataExpectTest.java
----------------------------------------------------------------------
diff --git a/providers/hpcloud-blockstorage/src/test/java/org/jclouds/hpcloud/blockstorage/HPCloudBlockStorageProviderMetadataExpectTest.java b/providers/hpcloud-blockstorage/src/test/java/org/jclouds/hpcloud/blockstorage/HPCloudBlockStorageProviderMetadataExpectTest.java
index c8eefd1..2f43fc6 100644
--- a/providers/hpcloud-blockstorage/src/test/java/org/jclouds/hpcloud/blockstorage/HPCloudBlockStorageProviderMetadataExpectTest.java
+++ b/providers/hpcloud-blockstorage/src/test/java/org/jclouds/hpcloud/blockstorage/HPCloudBlockStorageProviderMetadataExpectTest.java
@@ -35,8 +35,8 @@ public class HPCloudBlockStorageProviderMetadataExpectTest extends BaseCinderApi
       this.credential = "secretKey";
    }
 
-   public void testCanGetConfiguredZones() {
-      
+   public void testCanGetConfiguredRegions() {
+
       HttpRequest authenticate = HttpRequest.builder().method("POST")
             .endpoint("https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/tokens")
             .addHeader("Accept", "application/json")
@@ -51,7 +51,7 @@ public class HPCloudBlockStorageProviderMetadataExpectTest extends BaseCinderApi
 
       CinderApi whenNovaRegionExists = requestSendsResponse(authenticate, authenticationResponse);
 
-      assertEquals(whenNovaRegionExists.getConfiguredZones(), ImmutableSet.of("region-a.geo-1", "region-b.geo-1"));
+      assertEquals(whenNovaRegionExists.getConfiguredRegions(), ImmutableSet.of("region-a.geo-1", "region-b.geo-1"));
 
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadata.java
----------------------------------------------------------------------
diff --git a/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadata.java b/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadata.java
index 58ac16b..7fde453 100644
--- a/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadata.java
+++ b/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadata.java
@@ -30,7 +30,7 @@ import org.jclouds.hpcloud.compute.config.HPCloudComputeServiceContextModule;
 import org.jclouds.openstack.keystone.v2_0.config.AuthenticationApiModule;
 import org.jclouds.openstack.keystone.v2_0.config.CredentialTypes;
 import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule;
-import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ZoneModule;
+import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule;
 import org.jclouds.openstack.nova.v2_0.NovaApiMetadata;
 import org.jclouds.openstack.nova.v2_0.config.NovaHttpApiModule;
 import org.jclouds.openstack.nova.v2_0.config.NovaParserModule;
@@ -53,7 +53,7 @@ public class HPCloudComputeProviderMetadata extends BaseProviderMetadata {
    public Builder toBuilder() {
       return builder().fromProviderMetadata(this);
    }
-   
+
    public HPCloudComputeProviderMetadata() {
       super(builder());
    }
@@ -76,7 +76,7 @@ public class HPCloudComputeProviderMetadata extends BaseProviderMetadata {
             "imageNameMatches=.*LTS.*,os64Bit=true,locationId=region-a.geo-1");
       return properties;
    }
-   
+
    public static class Builder extends BaseProviderMetadata.Builder {
 
       protected Builder() {
@@ -91,7 +91,7 @@ public class HPCloudComputeProviderMetadata extends BaseProviderMetadata {
                   .defaultModules(ImmutableSet.<Class<? extends Module>>builder()
                                               .add(AuthenticationApiModule.class)
                                               .add(KeystoneAuthenticationModule.class)
-                                              .add(ZoneModule.class)
+                                              .add(RegionModule.class)
                                               .add(NovaParserModule.class)
                                               .add(NovaHttpApiModule.class)
                                               .add(HPCloudComputeServiceContextModule.class).build())

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git a/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeServiceAdapter.java b/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeServiceAdapter.java
index 37103ca..c18b82b 100644
--- a/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeServiceAdapter.java
+++ b/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeServiceAdapter.java
@@ -20,13 +20,13 @@ import java.util.Set;
 
 import javax.inject.Inject;
 
-import org.jclouds.location.Zone;
+import org.jclouds.location.Region;
 import org.jclouds.openstack.nova.v2_0.NovaApi;
 import org.jclouds.openstack.nova.v2_0.compute.NovaComputeServiceAdapter;
 import org.jclouds.openstack.nova.v2_0.compute.functions.RemoveFloatingIpFromNodeAndDeallocate;
 import org.jclouds.openstack.nova.v2_0.domain.KeyPair;
-import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ImageInZone;
-import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName;
+import org.jclouds.openstack.nova.v2_0.domain.regionscoped.ImageInRegion;
+import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName;
 
 import com.google.common.base.Predicate;
 import com.google.common.base.Supplier;
@@ -36,17 +36,17 @@ import com.google.common.collect.Iterables;
 public class HPCloudComputeServiceAdapter extends NovaComputeServiceAdapter {
 
    @Inject
-   public HPCloudComputeServiceAdapter(NovaApi novaApi, @Zone Supplier<Set<String>> zoneIds,
-            RemoveFloatingIpFromNodeAndDeallocate removeFloatingIpFromNodeAndDeallocate, LoadingCache<ZoneAndName, KeyPair> keyPairCache) {
-      super(novaApi, zoneIds, removeFloatingIpFromNodeAndDeallocate, keyPairCache);
+   public HPCloudComputeServiceAdapter(NovaApi novaApi, @Region Supplier<Set<String>> regionIds,
+            RemoveFloatingIpFromNodeAndDeallocate removeFloatingIpFromNodeAndDeallocate, LoadingCache<RegionAndName, KeyPair> keyPairCache) {
+      super(novaApi, regionIds, removeFloatingIpFromNodeAndDeallocate, keyPairCache);
    }
 
    @Override
-   public Iterable<ImageInZone> listImages() {
-      return Iterables.filter(super.listImages(), new Predicate<ImageInZone>() {
+   public Iterable<ImageInRegion> listImages() {
+      return Iterables.filter(super.listImages(), new Predicate<ImageInRegion>() {
 
          @Override
-         public boolean apply(ImageInZone arg0) {
+         public boolean apply(ImageInRegion arg0) {
             String imageName = arg0.getImage().getName();
             return imageName.indexOf("Kernel") == -1 && imageName.indexOf("Ramdisk") == -1;
          }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/providers/hpcloud-compute/src/test/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadataExpectTest.java
----------------------------------------------------------------------
diff --git a/providers/hpcloud-compute/src/test/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadataExpectTest.java b/providers/hpcloud-compute/src/test/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadataExpectTest.java
index d8e38d8..ef2b703 100644
--- a/providers/hpcloud-compute/src/test/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadataExpectTest.java
+++ b/providers/hpcloud-compute/src/test/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadataExpectTest.java
@@ -38,22 +38,22 @@ public class HPCloudComputeProviderMetadataExpectTest extends BaseNovaApiExpectT
       this.credential = "secret";
    }
 
-   public void testCanGetConfiguredZones() {
-      
+   public void testCanGetConfiguredRegions() {
+
       HttpRequest authenticate = HttpRequest.builder().method("POST")
             .endpoint("https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/tokens")
             .addHeader("Accept", "application/json")
             .payload(payloadFromStringWithContentType(
                      "{\"auth\":{\"apiAccessKeyCredentials\":{\"accessKey\":\"accesskey\",\"secretKey\":\"secret\"},\"tenantName\":\"tenant\"}}"
                      , "application/json")).build();
-      
+
 
       HttpResponse authenticationResponse = HttpResponse.builder().statusCode(200)
             .payload(payloadFromResourceWithContentType("/access_hpcloud.json", "application/json")).build();
 
       NovaApi whenNovaRegionExists = requestSendsResponse(authenticate, authenticationResponse);
 
-      assertEquals(whenNovaRegionExists.getConfiguredZones(), ImmutableSet.of("region-a.geo-1", "region-b.geo-1"));
+      assertEquals(whenNovaRegionExists.getConfiguredRegions(), ImmutableSet.of("region-a.geo-1", "region-b.geo-1"));
 
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/providers/rackspace-cloudblockstorage-uk/src/main/java/org/jclouds/rackspace/cloudblockstorage/uk/CloudBlockStorageUKProviderMetadata.java
----------------------------------------------------------------------
diff --git a/providers/rackspace-cloudblockstorage-uk/src/main/java/org/jclouds/rackspace/cloudblockstorage/uk/CloudBlockStorageUKProviderMetadata.java b/providers/rackspace-cloudblockstorage-uk/src/main/java/org/jclouds/rackspace/cloudblockstorage/uk/CloudBlockStorageUKProviderMetadata.java
index cdda3a7..01b8c6a 100644
--- a/providers/rackspace-cloudblockstorage-uk/src/main/java/org/jclouds/rackspace/cloudblockstorage/uk/CloudBlockStorageUKProviderMetadata.java
+++ b/providers/rackspace-cloudblockstorage-uk/src/main/java/org/jclouds/rackspace/cloudblockstorage/uk/CloudBlockStorageUKProviderMetadata.java
@@ -17,8 +17,8 @@
 package org.jclouds.rackspace.cloudblockstorage.uk;
 
 import static org.jclouds.location.reference.LocationConstants.ISO3166_CODES;
-import static org.jclouds.location.reference.LocationConstants.PROPERTY_ZONE;
-import static org.jclouds.location.reference.LocationConstants.PROPERTY_ZONES;
+import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGION;
+import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS;
 import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE;
 
 import java.net.URI;
@@ -27,7 +27,7 @@ import java.util.Properties;
 import org.jclouds.openstack.cinder.v1.CinderApiMetadata;
 import org.jclouds.openstack.cinder.v1.config.CinderHttpApiModule;
 import org.jclouds.openstack.cinder.v1.config.CinderParserModule;
-import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ZoneModule;
+import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule;
 import org.jclouds.providers.ProviderMetadata;
 import org.jclouds.providers.internal.BaseProviderMetadata;
 import org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationApiModule;
@@ -62,11 +62,11 @@ public class CloudBlockStorageUKProviderMetadata extends BaseProviderMetadata {
    public static Properties defaultProperties() {
       Properties properties = new Properties();
       properties.setProperty(CREDENTIAL_TYPE, CloudIdentityCredentialTypes.API_KEY_CREDENTIALS);
-      properties.setProperty(PROPERTY_ZONES, "LON");
-      properties.setProperty(PROPERTY_ZONE + ".LON." + ISO3166_CODES, "GB-SLG");
+      properties.setProperty(PROPERTY_REGIONS, "LON");
+      properties.setProperty(PROPERTY_REGION + ".LON." + ISO3166_CODES, "GB-SLG");
       return properties;
    }
-   
+
    public static class Builder extends BaseProviderMetadata.Builder {
 
       protected Builder() {
@@ -81,7 +81,7 @@ public class CloudBlockStorageUKProviderMetadata extends BaseProviderMetadata {
                   .defaultModules(ImmutableSet.<Class<? extends Module>>builder()
                                               .add(CloudIdentityAuthenticationApiModule.class)
                                               .add(CloudIdentityAuthenticationModule.class)
-                                              .add(ZoneModule.class)
+                                              .add(RegionModule.class)
                                               .add(CinderParserModule.class)
                                               .add(CinderHttpApiModule.class).build())
                   .build())

http://git-wip-us.apache.org/repos/asf/jclouds/blob/744cd5d7/providers/rackspace-cloudblockstorage-uk/src/test/java/org/jclouds/rackspace/cloudblockstorage/uk/CloudBlockStorageUKProviderMetadataExpectTest.java
----------------------------------------------------------------------
diff --git a/providers/rackspace-cloudblockstorage-uk/src/test/java/org/jclouds/rackspace/cloudblockstorage/uk/CloudBlockStorageUKProviderMetadataExpectTest.java b/providers/rackspace-cloudblockstorage-uk/src/test/java/org/jclouds/rackspace/cloudblockstorage/uk/CloudBlockStorageUKProviderMetadataExpectTest.java
index f335686..840a960 100644
--- a/providers/rackspace-cloudblockstorage-uk/src/test/java/org/jclouds/rackspace/cloudblockstorage/uk/CloudBlockStorageUKProviderMetadataExpectTest.java
+++ b/providers/rackspace-cloudblockstorage-uk/src/test/java/org/jclouds/rackspace/cloudblockstorage/uk/CloudBlockStorageUKProviderMetadataExpectTest.java
@@ -38,15 +38,15 @@ public class CloudBlockStorageUKProviderMetadataExpectTest extends BaseCinderApi
       this.credential = "myApiKey";
    }
 
-   public void testCanGetConfiguredZones() {
-      
+   public void testCanGetConfiguredRegions() {
+
       HttpRequest authenticate = HttpRequest.builder().method("POST")
             .endpoint("https://lon.identity.api.rackspacecloud.com/v2.0/tokens")
             .addHeader("Accept", "application/json")
             .payload(payloadFromStringWithContentType(
                      "{\"auth\":{\"RAX-KSKEY:apiKeyCredentials\":{\"username\":\"myUsername\",\"apiKey\":\"myApiKey\"}}}"
                      , "application/json")).build();
-      
+
 
       HttpResponse authenticationResponse = HttpResponse.builder()
             .statusCode(200)
@@ -55,7 +55,7 @@ public class CloudBlockStorageUKProviderMetadataExpectTest extends BaseCinderApi
 
       CinderApi whenNovaRegionExists = requestSendsResponse(authenticate, authenticationResponse);
 
-      assertEquals(whenNovaRegionExists.getConfiguredZones(), ImmutableSet.of("LON"));
+      assertEquals(whenNovaRegionExists.getConfiguredRegions(), ImmutableSet.of("LON"));
 
    }