Repository: jclouds-labs-google
Updated Branches:
  refs/heads/master 8b5d3d3ce -> d74032369


http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/InstanceApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/InstanceApiLiveTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/InstanceApiLiveTest.java
index 4fcdfa9..eb6d0fe 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/InstanceApiLiveTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/InstanceApiLiveTest.java
@@ -31,13 +31,13 @@ import org.jclouds.googlecomputeengine.domain.Image;
 import org.jclouds.googlecomputeengine.domain.Instance;
 import org.jclouds.googlecomputeengine.domain.Instance.AttachedDisk;
 import org.jclouds.googlecomputeengine.domain.ListPage;
+import org.jclouds.googlecomputeengine.domain.Operation;
 import org.jclouds.googlecomputeengine.domain.templates.InstanceTemplate;
 import 
org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest;
 import org.jclouds.googlecomputeengine.options.AttachDiskOptions;
 import org.jclouds.googlecomputeengine.options.AttachDiskOptions.DiskMode;
 import org.jclouds.googlecomputeengine.options.AttachDiskOptions.DiskType;
 import org.jclouds.googlecomputeengine.options.DiskCreationOptions;
-import org.jclouds.googlecomputeengine.options.ListOptions;
 import org.testng.annotations.AfterClass;
 import org.testng.annotations.Test;
 
@@ -70,8 +70,7 @@ public class InstanceApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
    @Override
    protected GoogleComputeEngineApi create(Properties props, Iterable<Module> 
modules) {
       GoogleComputeEngineApi api = super.create(props, modules);
-      List<Image> list = api.getImageApi("centos-cloud")
-            .list(new ListOptions.Builder().filter("name eq centos.*")).next();
+      List<Image> list = api.getImageApi("centos-cloud").list(filter("name eq 
centos.*")).next();
       URI imageUri = FluentIterable.from(list)
                         .filter(new Predicate<Image>() {
                            @Override
@@ -102,7 +101,7 @@ public class InstanceApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
    }
 
    private DiskApi diskApi() {
-      return api.getDiskApi(userProject.get());
+      return api.getDiskApi(userProject.get(), DEFAULT_ZONE_NAME);
    }
 
    @Test(groups = "live")
@@ -113,16 +112,11 @@ public class InstanceApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
               (INSTANCE_NETWORK_NAME, IPV4_RANGE), TIME_WAIT);
 
       DiskCreationOptions diskCreationOptions = new 
DiskCreationOptions().sourceImage(instance.image());
-      assertZoneOperationDoneSuccessfully(api.getDiskApi(userProject.get())
-                  .createInZone(BOOT_DISK_NAME, DEFAULT_DISK_SIZE_GB, 
DEFAULT_ZONE_NAME, diskCreationOptions),
+      assertZoneOperationDoneSuccessfully(diskApi().create(BOOT_DISK_NAME, 
DEFAULT_DISK_SIZE_GB, diskCreationOptions),
             TIME_WAIT);
 
-
-      assertZoneOperationDoneSuccessfully(
-            diskApi().createInZone("instance-live-test-disk", 
DEFAULT_DISK_SIZE_GB, DEFAULT_ZONE_NAME), TIME_WAIT);
-
+      
assertZoneOperationDoneSuccessfully(diskApi().create("instance-live-test-disk", 
DEFAULT_DISK_SIZE_GB), TIME_WAIT);
       assertZoneOperationDoneSuccessfully(api().create(INSTANCE_NAME, 
instance), TIME_WAIT);
-
    }
 
    @Test(groups = "live", dependsOnMethods = "testInsertInstance")
@@ -162,7 +156,7 @@ public class InstanceApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
 
    @Test(groups = "live", dependsOnMethods = "testSetMetadataForInstance")
    public void testAttachDiskToInstance() {
-      
assertZoneOperationDoneSuccessfully(diskApi().createInZone(ATTACH_DISK_NAME, 1, 
DEFAULT_ZONE_NAME), TIME_WAIT);
+      assertZoneOperationDoneSuccessfully(diskApi().create(ATTACH_DISK_NAME, 
1), TIME_WAIT);
 
       Instance originalInstance = api().get(INSTANCE_NAME);
       assertZoneOperationDoneSuccessfully(api().attachDisk(INSTANCE_NAME,
@@ -192,7 +186,7 @@ public class InstanceApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
 
       assertTrue(modifiedInstance.disks().size() < 
originalInstance.disks().size());
 
-      
assertZoneOperationDoneSuccessfully(diskApi().deleteInZone(DEFAULT_ZONE_NAME, 
ATTACH_DISK_NAME), TIME_WAIT);
+      assertZoneOperationDoneSuccessfully(diskApi().delete(ATTACH_DISK_NAME), 
TIME_WAIT);
    }
 
    @Test(groups = "live", dependsOnMethods = "testInsertInstance")
@@ -216,12 +210,10 @@ public class InstanceApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
    @Test(groups = "live", dependsOnMethods = "testResetInstance")
    public void testDeleteInstance() {
       assertZoneOperationDoneSuccessfully(api().delete(INSTANCE_NAME), 
TIME_WAIT);
-      
assertZoneOperationDoneSuccessfully(api.getDiskApi(userProject.get()).deleteInZone(DEFAULT_ZONE_NAME,
 DISK_NAME),
-            TIME_WAIT);
-      assertZoneOperationDoneSuccessfully(
-            api.getDiskApi(userProject.get()).deleteInZone(DEFAULT_ZONE_NAME, 
BOOT_DISK_NAME), TIME_WAIT);
-      
assertGlobalOperationDoneSucessfully(api.getNetworkApi(userProject.get()).delete
-              (INSTANCE_NETWORK_NAME), TIME_WAIT);
+      assertZoneOperationDoneSuccessfully(diskApi().delete(DISK_NAME), 
TIME_WAIT);
+      assertZoneOperationDoneSuccessfully(diskApi().delete(BOOT_DISK_NAME), 
TIME_WAIT);
+      Operation deleteNetwork = 
api.getNetworkApi(userProject.get()).delete(INSTANCE_NETWORK_NAME);
+      assertGlobalOperationDoneSucessfully(deleteNetwork, TIME_WAIT);
    }
 
    private void assertInstanceEquals(Instance result, InstanceTemplate 
expected) {
@@ -233,12 +225,9 @@ public class InstanceApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
    protected void tearDownContext() {
       try {
          waitZoneOperationDone(api().delete(INSTANCE_NAME), TIME_WAIT);
-         
waitZoneOperationDone(api.getDiskApi(userProject.get()).deleteInZone(DEFAULT_ZONE_NAME,
 DISK_NAME),
-                               TIME_WAIT);
-         
waitZoneOperationDone(api.getDiskApi(userProject.get()).deleteInZone(DEFAULT_ZONE_NAME,
 BOOT_DISK_NAME),
-                               TIME_WAIT);
-         waitGlobalOperationDone(api.getNetworkApi(userProject.get()).delete
-                                                                               
 (INSTANCE_NETWORK_NAME), TIME_WAIT);
+         waitZoneOperationDone(diskApi().delete(DISK_NAME), TIME_WAIT);
+         waitZoneOperationDone(diskApi().delete(BOOT_DISK_NAME), TIME_WAIT);
+         
waitGlobalOperationDone(api.getNetworkApi(userProject.get()).delete(INSTANCE_NETWORK_NAME),
 TIME_WAIT);
       } catch (Exception e) {
          // we don't really care about any exception here, so just delete away.
        }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/MachineTypeApiExpectTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/MachineTypeApiExpectTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/MachineTypeApiExpectTest.java
index 1400232..2a39179 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/MachineTypeApiExpectTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/MachineTypeApiExpectTest.java
@@ -67,10 +67,9 @@ public class MachineTypeApiExpectTest extends 
BaseGoogleComputeEngineApiExpectTe
               .payload(payloadFromResource("/machinetype.json")).build();
 
       MachineTypeApi machineTypeApi = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, get, 
operationResponse).getMachineTypeApi("myproject");
+              TOKEN_RESPONSE, get, 
operationResponse).getMachineTypeApi("myproject", "us-central1-a");
 
-      assertEquals(machineTypeApi.getInZone("us-central1-a", "n1-standard-1"),
-              new ParseMachineTypeTest().expected());
+      assertEquals(machineTypeApi.get("n1-standard-1"), new 
ParseMachineTypeTest().expected());
    }
 
    public void testGetMachineTypeResponseIs4xx() throws Exception {
@@ -84,28 +83,27 @@ public class MachineTypeApiExpectTest extends 
BaseGoogleComputeEngineApiExpectTe
       HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
 
       MachineTypeApi machineTypeApi = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, get, 
operationResponse).getMachineTypeApi("myproject");
+              TOKEN_RESPONSE, get, 
operationResponse).getMachineTypeApi("myproject", "us-central1-a");
 
-      assertNull(machineTypeApi.getInZone("us-central1-a", "n1-standard-1"));
+      assertNull(machineTypeApi.get("n1-standard-1"));
    }
 
    public void testListMachineTypeNoOptionsResponseIs2xx() throws Exception {
 
       MachineTypeApi machineTypeApi = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
               TOKEN_RESPONSE, LIST_MACHINE_TYPES_REQUEST, 
LIST_MACHINE_TYPES_RESPONSE).getMachineTypeApi
-              ("myproject");
+              ("myproject", "us-central1-a");
 
-      
assertEquals(machineTypeApi.listInZone("us-central1-a").next().toString(),
-              new ParseMachineTypeListTest().expected().toString());
+      assertEquals(machineTypeApi.list().next().toString(), new 
ParseMachineTypeListTest().expected().toString());
    }
 
    public void testLisOperationWithPaginationOptionsResponseIs4xx() {
 
       HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
 
-      MachineTypeApi machineTypeApi = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, LIST_MACHINE_TYPES_REQUEST, 
operationResponse).getMachineTypeApi("myproject");
+      MachineTypeApi machineTypeApi = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), TOKEN_RESPONSE,
+            LIST_MACHINE_TYPES_REQUEST, 
operationResponse).getMachineTypeApi("myproject", "us-central1-a");
 
-      assertFalse(machineTypeApi.listInZone("us-central1-a").hasNext());
+      assertFalse(machineTypeApi.list().hasNext());
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/MachineTypeApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/MachineTypeApiLiveTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/MachineTypeApiLiveTest.java
index 89c7257..132b42b 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/MachineTypeApiLiveTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/MachineTypeApiLiveTest.java
@@ -16,6 +16,7 @@
  */
 package org.jclouds.googlecomputeengine.features;
 
+import static 
org.jclouds.googlecomputeengine.options.ListOptions.Builder.maxResults;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertTrue;
@@ -26,7 +27,6 @@ import java.util.List;
 import org.jclouds.googlecomputeengine.domain.ListPage;
 import org.jclouds.googlecomputeengine.domain.MachineType;
 import 
org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest;
-import org.jclouds.googlecomputeengine.options.ListOptions;
 import org.testng.annotations.Test;
 
 public class MachineTypeApiLiveTest extends BaseGoogleComputeEngineApiLiveTest 
{
@@ -34,13 +34,12 @@ public class MachineTypeApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
    private MachineType machineType;
 
    private MachineTypeApi api() {
-      return api.getMachineTypeApi(userProject.get());
+      return api.getMachineTypeApi(userProject.get(), DEFAULT_ZONE_NAME);
    }
 
    @Test(groups = "live")
    public void testListMachineType() {
-      Iterator<ListPage<MachineType>> pageIterator = 
api().listInZone(DEFAULT_ZONE_NAME, new ListOptions.Builder()
-            .maxResults(1));
+      Iterator<ListPage<MachineType>> pageIterator = api().list(maxResults(1));
       assertTrue(pageIterator.hasNext());
 
       List<MachineType> machineTypeAsList = pageIterator.next();
@@ -53,7 +52,7 @@ public class MachineTypeApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
 
    @Test(groups = "live", dependsOnMethods = "testListMachineType")
    public void testGetMachineType() {
-      MachineType machineType = api().getInZone(DEFAULT_ZONE_NAME, 
this.machineType.name());
+      MachineType machineType = api().get(this.machineType.name());
       assertNotNull(machineType);
       assertMachineTypeEquals(machineType, this.machineType);
    }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/NetworkApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/NetworkApiLiveTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/NetworkApiLiveTest.java
index 9363370..080b63c 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/NetworkApiLiveTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/NetworkApiLiveTest.java
@@ -16,6 +16,7 @@
  */
 package org.jclouds.googlecomputeengine.features;
 
+import static 
org.jclouds.googlecomputeengine.options.ListOptions.Builder.filter;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
 
@@ -25,7 +26,6 @@ import java.util.List;
 import org.jclouds.googlecomputeengine.domain.ListPage;
 import org.jclouds.googlecomputeengine.domain.Network;
 import 
org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest;
-import org.jclouds.googlecomputeengine.options.ListOptions;
 import org.testng.annotations.Test;
 
 @Test(groups = "live", testName = "NetworkApiLiveTest")
@@ -53,21 +53,17 @@ public class NetworkApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
 
    @Test(groups = "live", dependsOnMethods = "testGetNetwork")
    public void testListNetwork() {
-
-      Iterator<ListPage<Network>> networks = api().list(new 
ListOptions.Builder()
-              .filter("name eq " + NETWORK_NAME));
+      Iterator<ListPage<Network>> networks = api().list(filter("name eq " + 
NETWORK_NAME));
 
       List<Network> networksAsList = networks.next();
 
       assertEquals(networksAsList.size(), 1);
 
       assertNetworkEquals(networksAsList.get(0));
-
    }
 
    @Test(groups = "live", dependsOnMethods = "testListNetwork")
    public void testDeleteNetwork() {
-
       assertGlobalOperationDoneSucessfully(api().delete(NETWORK_NAME), 
TIME_WAIT);
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionApiLiveTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionApiLiveTest.java
index e360863..35decbc 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionApiLiveTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionApiLiveTest.java
@@ -16,6 +16,7 @@
  */
 package org.jclouds.googlecomputeengine.features;
 
+import static 
org.jclouds.googlecomputeengine.options.ListOptions.Builder.maxResults;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertTrue;
@@ -26,7 +27,6 @@ import java.util.List;
 import org.jclouds.googlecomputeengine.domain.ListPage;
 import org.jclouds.googlecomputeengine.domain.Region;
 import 
org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest;
-import org.jclouds.googlecomputeengine.options.ListOptions;
 import org.testng.annotations.Test;
 
 public class RegionApiLiveTest extends BaseGoogleComputeEngineApiLiveTest {
@@ -39,7 +39,7 @@ public class RegionApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
 
    @Test(groups = "live")
    public void testListRegion() {
-      Iterator<ListPage<Region>> pageIterator = api().list(new 
ListOptions.Builder().maxResults(1));
+      Iterator<ListPage<Region>> pageIterator = api().list(maxResults(1));
       assertTrue(pageIterator.hasNext());
 
       List<Region> regionAsList = pageIterator.next();

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiExpectTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiExpectTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiExpectTest.java
index 1a4f127..ce7fdc8 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiExpectTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiExpectTest.java
@@ -18,6 +18,7 @@ package org.jclouds.googlecomputeengine.features;
 
 import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
 import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
+import static 
org.jclouds.googlecomputeengine.options.ListOptions.Builder.filter;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNull;
@@ -25,7 +26,6 @@ import static org.testng.Assert.assertNull;
 import org.jclouds.googlecomputeengine.domain.ListPage;
 import org.jclouds.googlecomputeengine.domain.Operation;
 import 
org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpectTest;
-import org.jclouds.googlecomputeengine.options.ListOptions;
 import org.jclouds.googlecomputeengine.parse.ParseRegionOperationTest;
 import org.jclouds.http.HttpRequest;
 import org.jclouds.http.HttpResponse;
@@ -60,9 +60,10 @@ public class RegionOperationApiExpectTest extends 
BaseGoogleComputeEngineApiExpe
    public void testGetOperationResponseIs2xx() throws Exception {
 
       RegionOperationApi regionOperationApi = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, GET_OPERATION_REQUEST, 
GET_OPERATION_RESPONSE).getRegionOperationApi("myproject");
+            TOKEN_RESPONSE, GET_OPERATION_REQUEST, GET_OPERATION_RESPONSE)
+            .getRegionOperationApi("myproject", "us-central1");
 
-      assertEquals(regionOperationApi.getInRegion("us-central1", 
"operation-1354084865060-4cf88735faeb8-bbbb12cb"),
+      
assertEquals(regionOperationApi.get("operation-1354084865060-4cf88735faeb8-bbbb12cb"),
             new ParseRegionOperationTest().expected());
    }
 
@@ -71,9 +72,9 @@ public class RegionOperationApiExpectTest extends 
BaseGoogleComputeEngineApiExpe
       HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
 
       RegionOperationApi regionOperationApi = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, GET_OPERATION_REQUEST, 
operationResponse).getRegionOperationApi("myproject");
+            TOKEN_RESPONSE, GET_OPERATION_REQUEST, 
operationResponse).getRegionOperationApi("myproject", "us-central1");
 
-      assertNull(regionOperationApi.getInRegion("us-central1", 
"operation-1354084865060-4cf88735faeb8-bbbb12cb"));
+      
assertNull(regionOperationApi.get("operation-1354084865060-4cf88735faeb8-bbbb12cb"));
    }
 
    public void testDeleteOperationResponseIs2xx() throws Exception {
@@ -81,14 +82,15 @@ public class RegionOperationApiExpectTest extends 
BaseGoogleComputeEngineApiExpe
               .builder()
               .method("DELETE")
               .endpoint(DELETE_OPERATIONS_URL_PREFIX + 
"/operation-1352178598164-4cdcc9d031510-4aa46279")
+              .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
       HttpResponse operationResponse = 
HttpResponse.builder().statusCode(204).build();
 
       RegionOperationApi regionOperationApi = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-              TOKEN_RESPONSE, delete, 
operationResponse).getRegionOperationApi("myproject");
+              TOKEN_RESPONSE, delete, 
operationResponse).getRegionOperationApi("myproject", "us-central1");
 
-      regionOperationApi.deleteInRegion("us-central1", 
"operation-1352178598164-4cdcc9d031510-4aa46279");
+      
regionOperationApi.delete("operation-1352178598164-4cdcc9d031510-4aa46279");
    }
 
    public void testDeleteOperationResponseIs4xx() throws Exception {
@@ -96,14 +98,15 @@ public class RegionOperationApiExpectTest extends 
BaseGoogleComputeEngineApiExpe
               .builder()
               .method("DELETE")
               .endpoint(DELETE_OPERATIONS_URL_PREFIX + 
"/operation-1352178598164-4cdcc9d031510-4aa46279")
+              .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
       HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
 
       RegionOperationApi regionOperationApi = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-              TOKEN_RESPONSE, delete, 
operationResponse).getRegionOperationApi("myproject");
+              TOKEN_RESPONSE, delete, 
operationResponse).getRegionOperationApi("myproject", "us-central1");
 
-      regionOperationApi.deleteInRegion("us-central1", 
"operation-1352178598164-4cdcc9d031510-4aa46279");
+      
regionOperationApi.delete("operation-1352178598164-4cdcc9d031510-4aa46279");
    }
 
    public void testLisOperationWithNoOptionsResponseIs2xx() {
@@ -118,9 +121,9 @@ public class RegionOperationApiExpectTest extends 
BaseGoogleComputeEngineApiExpe
               
.payload(payloadFromResource("/region_operation_list.json")).build();
 
       RegionOperationApi regionOperationApi = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, get, 
operationResponse).getRegionOperationApi("myproject");
+              TOKEN_RESPONSE, get, 
operationResponse).getRegionOperationApi("myproject", "us-central1");
 
-      
assertEquals(regionOperationApi.listInRegion("us-central1").next().toString(), 
expectedList().toString());
+      assertEquals(regionOperationApi.list().next().toString(), 
expectedList().toString());
    }
 
    public void testListOperationWithPaginationOptionsResponseIs2xx() {
@@ -140,11 +143,10 @@ public class RegionOperationApiExpectTest extends 
BaseGoogleComputeEngineApiExpe
               
.payload(payloadFromResource("/region_operation_list.json")).build();
 
       RegionOperationApi regionOperationApi = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, get, 
operationResponse).getRegionOperationApi("myproject");
+              TOKEN_RESPONSE, get, 
operationResponse).getRegionOperationApi("myproject", "us-central1");
 
-      assertEquals(regionOperationApi.listAtMarkerInRegion("us-central1", 
"CglPUEVSQVRJT04SOzU5MDQyMTQ4Nzg1Mi5vcGVyYXRpb24tMTM1Mj" +
-              "I0NDI1ODAzMC00Y2RkYmU2YTJkNmIwLWVkMzIyMzQz",
-              new ListOptions.Builder().filter("status eq 
done").maxResults(3)).toString(),
+      
assertEquals(regionOperationApi.listPage("CglPUEVSQVRJT04SOzU5MDQyMTQ4Nzg1Mi5vcGVyYXRpb24tMTM1Mj"
 +
+              "I0NDI1ODAzMC00Y2RkYmU2YTJkNmIwLWVkMzIyMzQz", filter("status eq 
done").maxResults(3)).toString(),
               expectedList().toString());
    }
 
@@ -159,8 +161,8 @@ public class RegionOperationApiExpectTest extends 
BaseGoogleComputeEngineApiExpe
       HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
 
       RegionOperationApi regionOperationApi = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, get, 
operationResponse).getRegionOperationApi("myproject");
+              TOKEN_RESPONSE, get, 
operationResponse).getRegionOperationApi("myproject", "us-central1");
 
-      assertFalse(regionOperationApi.listInRegion("us-central1").hasNext());
+      assertFalse(regionOperationApi.list().hasNext());
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiLiveTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiLiveTest.java
index 66c1041..f15fbf5 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiLiveTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiLiveTest.java
@@ -16,6 +16,7 @@
  */
 package org.jclouds.googlecomputeengine.features;
 
+import static 
org.jclouds.googlecomputeengine.options.ListOptions.Builder.maxResults;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
 
@@ -24,7 +25,6 @@ import java.util.Iterator;
 import org.jclouds.googlecomputeengine.domain.ListPage;
 import org.jclouds.googlecomputeengine.domain.Operation;
 import 
org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest;
-import org.jclouds.googlecomputeengine.options.ListOptions;
 import org.testng.SkipException;
 import org.testng.annotations.Test;
 
@@ -34,13 +34,11 @@ public class RegionOperationApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTe
    private Operation operation;
 
    private RegionOperationApi api() {
-      return api.getRegionOperationApi(userProject.get());
+      return api.getRegionOperationApi(userProject.get(), DEFAULT_REGION_NAME);
    }
 
    public void testListOperationsWithFiltersAndPagination() {
-      Iterator<ListPage<Operation>> operations = 
api().listInRegion(DEFAULT_REGION_NAME, new ListOptions.Builder()
-            //              .filter("operationType eq insert")
-            .maxResults(1));
+      Iterator<ListPage<Operation>> operations = api().list(maxResults(1));
 
       // make sure that in spite of having only one result per page we get at 
least two results
       int count = 0;
@@ -59,7 +57,7 @@ public class RegionOperationApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTe
 
    @Test(groups = "live", dependsOnMethods = 
"testListOperationsWithFiltersAndPagination")
    public void testGetOperation() {
-      Operation result = api().getInRegion(DEFAULT_REGION_NAME, 
operation.name());
+      Operation result = api().get(operation.name());
       assertNotNull(result);
       assertEquals(result.name(), operation.name()); // Checking state besides 
name can lead to flaky test.
    }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiLiveTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiLiveTest.java
index f38a7ea..8d478b6 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiLiveTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiLiveTest.java
@@ -17,6 +17,7 @@
 package org.jclouds.googlecomputeengine.features;
 
 import static 
org.jclouds.googlecomputeengine.features.DiskApiLiveTest.TIME_WAIT;
+import static 
org.jclouds.googlecomputeengine.options.ListOptions.Builder.filter;
 import static org.testng.Assert.assertEquals;
 
 import java.util.Iterator;
@@ -26,7 +27,6 @@ import org.jclouds.googlecomputeengine.domain.Disk;
 import org.jclouds.googlecomputeengine.domain.ListPage;
 import org.jclouds.googlecomputeengine.domain.Snapshot;
 import 
org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest;
-import org.jclouds.googlecomputeengine.options.ListOptions;
 import org.testng.annotations.Test;
 
 public class SnapshotApiLiveTest extends BaseGoogleComputeEngineApiLiveTest {
@@ -40,16 +40,15 @@ public class SnapshotApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
    }
 
    private DiskApi diskApi() {
-      return api.getDiskApi(userProject.get());
+      return api.getDiskApi(userProject.get(), DEFAULT_ZONE_NAME);
    }
 
    @Test(groups = "live")
    public void testCreateSnapshot() {
-      assertZoneOperationDoneSuccessfully(diskApi().createInZone(DISK_NAME, 1, 
DEFAULT_ZONE_NAME), TIME_WAIT);
-      disk = diskApi().getInZone(DEFAULT_ZONE_NAME, DISK_NAME);
+      assertZoneOperationDoneSuccessfully(diskApi().create(DISK_NAME, 1), 
TIME_WAIT);
+      disk = diskApi().get(DISK_NAME);
 
-      
assertZoneOperationDoneSuccessfully(diskApi().createSnapshotInZone(DEFAULT_ZONE_NAME,
 DISK_NAME, SNAPSHOT_NAME),
-            TIME_WAIT);
+      assertZoneOperationDoneSuccessfully(diskApi().createSnapshot(DISK_NAME, 
SNAPSHOT_NAME), TIME_WAIT);
    }
 
    @Test(groups = "live", dependsOnMethods = "testCreateSnapshot")
@@ -62,9 +61,7 @@ public class SnapshotApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
 
    @Test(groups = "live", dependsOnMethods = "testGetSnapshot")
    public void testListSnapshot() {
-
-      Iterator<ListPage<Snapshot>> snapshots = api().list(new 
ListOptions.Builder()
-              .filter("name eq " + SNAPSHOT_NAME));
+      Iterator<ListPage<Snapshot>> snapshots = api().list(filter("name eq " + 
SNAPSHOT_NAME));
 
       List<Snapshot> snapshotsAsList = snapshots.next();
 
@@ -75,8 +72,7 @@ public class SnapshotApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
 
    @Test(groups = "live", dependsOnMethods = "testListSnapshot")
    public void testDeleteDisk() {
-
-      
assertZoneOperationDoneSuccessfully(diskApi().deleteInZone(DEFAULT_ZONE_NAME, 
DISK_NAME), TIME_WAIT);
+      assertZoneOperationDoneSuccessfully(diskApi().delete(DISK_NAME), 
TIME_WAIT);
       assertGlobalOperationDoneSucessfully(api().delete(SNAPSHOT_NAME), 
TIME_WAIT);
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiExpectTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiExpectTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiExpectTest.java
index 631ca4a..26c016a 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiExpectTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiExpectTest.java
@@ -154,8 +154,7 @@ public class TargetPoolApiExpectTest extends 
BaseGoogleComputeEngineApiExpectTes
               TOKEN_RESPONSE, list, 
operationResponse).getTargetPoolApi("myproject", "us-central1");
 
       ListOptions options = new ListOptions();
-      assertEquals(api.list(options).toString(),
-              new ParseTargetPoolListTest().expected().toString());
+      assertEquals(api.list(options).next().toString(), new 
ParseTargetPoolListTest().expected().toString());
    }
 
    public void testListTargetPoolsResponseIs4xx() {

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiLiveTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiLiveTest.java
index 41d5fa3..753b81a 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiLiveTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiLiveTest.java
@@ -16,6 +16,7 @@
  */
 package org.jclouds.googlecomputeengine.features;
 
+import static 
org.jclouds.googlecomputeengine.options.ListOptions.Builder.filter;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotEquals;
 import static org.testng.Assert.assertNotNull;
@@ -33,7 +34,6 @@ import 
org.jclouds.googlecomputeengine.domain.templates.InstanceTemplate;
 import 
org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest;
 import org.jclouds.googlecomputeengine.options.DiskCreationOptions;
 import org.jclouds.googlecomputeengine.options.HttpHealthCheckCreationOptions;
-import org.jclouds.googlecomputeengine.options.ListOptions;
 import org.jclouds.googlecomputeengine.options.TargetPoolCreationOptions;
 import 
org.jclouds.googlecomputeengine.options.TargetPoolCreationOptions.SessionAffinityValue;
 import org.testng.annotations.AfterClass;
@@ -73,8 +73,7 @@ public class TargetPoolApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
       InstanceApi instanceApi = api.getInstanceApi(userProject.get(), 
DEFAULT_ZONE_NAME);
       HttpHealthCheckApi httpHealthCheckApi = 
api.getHttpHealthCheckApi(userProject.get());
 
-      ListPage<Image> list = api.getImageApi("centos-cloud").list(new 
ListOptions.Builder().filter("name eq centos.*"))
-            .next();
+      ListPage<Image> list = api.getImageApi("centos-cloud").list(filter("name 
eq centos.*")).next();
       // Get an imageUri
       URI imageUri = FluentIterable.from(list)
             .filter(new Predicate<Image>() {
@@ -104,9 +103,8 @@ public class TargetPoolApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
 
       // Create a disk.
       DiskCreationOptions diskCreationOptions = new 
DiskCreationOptions().sourceImage(instanceTemplate.image());
-      assertZoneOperationDoneSuccessfully(api.getDiskApi(userProject.get())
-                  .createInZone(BOOT_DISK_NAME, DEFAULT_DISK_SIZE_GB, 
DEFAULT_ZONE_NAME, diskCreationOptions),
-            TIME_WAIT_LONG);
+      assertZoneOperationDoneSuccessfully(api.getDiskApi(userProject.get(), 
DEFAULT_ZONE_NAME)
+                  .create(BOOT_DISK_NAME, DEFAULT_DISK_SIZE_GB, 
diskCreationOptions), TIME_WAIT_LONG);
 
       // Create an instance.
       assertZoneOperationDoneSuccessfully(instanceApi.create(INSTANCE_NAME, 
instanceTemplate),
@@ -205,8 +203,7 @@ public class TargetPoolApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
 
    @Test(groups = "live", dependsOnMethods = "testInsertTargetPool")
    public void testListTargetPool() {
-      ListPage<TargetPool> targetPool = api().list(new ListOptions.Builder()
-              .filter("name eq " + BACKUP_TARGETPOOL_NAME));
+      ListPage<TargetPool> targetPool = api().list(filter("name eq " + 
BACKUP_TARGETPOOL_NAME)).next();
       assertEquals(Iterables.size(targetPool), 1);
    }
 
@@ -249,11 +246,8 @@ public class TargetPoolApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
 
       try {
          waitZoneOperationDone(instanceApi.delete(INSTANCE_NAME), 
TIME_WAIT_LONG);
-
-         
waitZoneOperationDone(api.getDiskApi(userProject.get()).deleteInZone(DEFAULT_ZONE_NAME,
 BOOT_DISK_NAME),
-                               TIME_WAIT);
+         waitZoneOperationDone(api.getDiskApi(userProject.get(), 
DEFAULT_ZONE_NAME).delete(BOOT_DISK_NAME), TIME_WAIT);
          
waitGlobalOperationDone(api.getNetworkApi(userProject.get()).delete(INSTANCE_NETWORK_NAME),
 TIME_WAIT_LONG);
-
          waitGlobalOperationDone(httpHealthCheckApi.delete(HEALTHCHECK_NAME), 
TIME_WAIT);
       } catch (Exception e) {
          // we don't really care about any exception here, so just delete away.

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiLiveTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiLiveTest.java
index f4c885e..c1224d0 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiLiveTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiLiveTest.java
@@ -16,6 +16,7 @@
  */
 package org.jclouds.googlecomputeengine.features;
 
+import static 
org.jclouds.googlecomputeengine.options.ListOptions.Builder.maxResults;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertTrue;
@@ -26,7 +27,6 @@ import java.util.List;
 import org.jclouds.googlecomputeengine.domain.ListPage;
 import org.jclouds.googlecomputeengine.domain.Zone;
 import 
org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest;
-import org.jclouds.googlecomputeengine.options.ListOptions;
 import org.testng.annotations.Test;
 
 public class ZoneApiLiveTest extends BaseGoogleComputeEngineApiLiveTest {
@@ -39,8 +39,7 @@ public class ZoneApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
 
    @Test(groups = "live")
    public void testListZone() {
-
-      Iterator<ListPage<Zone>> pageIterator = api().list(new 
ListOptions.Builder().maxResults(1));
+      Iterator<ListPage<Zone>> pageIterator = api().list(maxResults(1));
       assertTrue(pageIterator.hasNext());
 
       List<Zone> zoneAsList = pageIterator.next();

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java
index 4d542ce..4a3136a 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java
@@ -18,6 +18,7 @@ package org.jclouds.googlecomputeengine.features;
 
 import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
 import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
+import static 
org.jclouds.googlecomputeengine.options.ListOptions.Builder.filter;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNull;
@@ -25,7 +26,6 @@ import static org.testng.Assert.assertNull;
 import org.jclouds.googlecomputeengine.domain.ListPage;
 import org.jclouds.googlecomputeengine.domain.Operation;
 import 
org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpectTest;
-import org.jclouds.googlecomputeengine.options.ListOptions;
 import org.jclouds.googlecomputeengine.parse.ParseZoneOperationTest;
 import org.jclouds.http.HttpRequest;
 import org.jclouds.http.HttpResponse;
@@ -51,9 +51,10 @@ public class ZoneOperationApiExpectTest extends 
BaseGoogleComputeEngineApiExpect
    public void testGetOperationResponseIs2xx() throws Exception {
 
       ZoneOperationApi zoneOperationApi = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, GET_ZONE_OPERATION_REQUEST, 
GET_ZONE_OPERATION_RESPONSE).getZoneOperationApi("myproject");
+            TOKEN_RESPONSE, GET_ZONE_OPERATION_REQUEST, 
GET_ZONE_OPERATION_RESPONSE)
+            .getZoneOperationApi("myproject", "us-central1-a");
 
-      assertEquals(zoneOperationApi.getInZone("us-central1-a", 
"operation-1354084865060-4cf88735faeb8-bbbb12cb"),
+      
assertEquals(zoneOperationApi.get("operation-1354084865060-4cf88735faeb8-bbbb12cb"),
             new ParseZoneOperationTest().expected());
    }
 
@@ -62,9 +63,10 @@ public class ZoneOperationApiExpectTest extends 
BaseGoogleComputeEngineApiExpect
       HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
 
       ZoneOperationApi zoneOperationApi = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, GET_ZONE_OPERATION_REQUEST, 
operationResponse).getZoneOperationApi("myproject");
+            TOKEN_RESPONSE, GET_ZONE_OPERATION_REQUEST, operationResponse)
+            .getZoneOperationApi("myproject", "us-central1-a");
 
-      assertNull(zoneOperationApi.getInZone("us-central1-a", 
"operation-1354084865060-4cf88735faeb8-bbbb12cb"));
+      
assertNull(zoneOperationApi.get("operation-1354084865060-4cf88735faeb8-bbbb12cb"));
    }
 
    public void testDeleteOperationResponseIs2xx() throws Exception {
@@ -72,14 +74,15 @@ public class ZoneOperationApiExpectTest extends 
BaseGoogleComputeEngineApiExpect
               .builder()
               .method("DELETE")
               .endpoint(OPERATIONS_URL_PREFIX + 
"/operation-1352178598164-4cdcc9d031510-4aa46279")
+              .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
       HttpResponse operationResponse = 
HttpResponse.builder().statusCode(204).build();
 
-      ZoneOperationApi zoneOperationApi = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-              TOKEN_RESPONSE, delete, 
operationResponse).getZoneOperationApi("myproject");
+      ZoneOperationApi zoneOperationApi = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE), TOKEN_RESPONSE, delete,
+            operationResponse).getZoneOperationApi("myproject", 
"us-central1-a");
 
-      zoneOperationApi.deleteInZone("us-central1-a", 
"operation-1352178598164-4cdcc9d031510-4aa46279");
+      
zoneOperationApi.delete("operation-1352178598164-4cdcc9d031510-4aa46279");
    }
 
    public void testDeleteOperationResponseIs4xx() throws Exception {
@@ -87,14 +90,15 @@ public class ZoneOperationApiExpectTest extends 
BaseGoogleComputeEngineApiExpect
               .builder()
               .method("DELETE")
               .endpoint(OPERATIONS_URL_PREFIX + 
"/operation-1352178598164-4cdcc9d031510-4aa46279")
+              .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
       HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
 
       ZoneOperationApi zoneOperationApi = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-              TOKEN_RESPONSE, delete, 
operationResponse).getZoneOperationApi("myproject");
+              TOKEN_RESPONSE, delete, 
operationResponse).getZoneOperationApi("myproject", "us-central1-a");
 
-      zoneOperationApi.deleteInZone("us-central1-a", 
"operation-1352178598164-4cdcc9d031510-4aa46279");
+      
zoneOperationApi.delete("operation-1352178598164-4cdcc9d031510-4aa46279");
    }
 
    private static ListPage<Operation> expectedList() {
@@ -116,9 +120,9 @@ public class ZoneOperationApiExpectTest extends 
BaseGoogleComputeEngineApiExpect
               
.payload(payloadFromResource("/zone_operation_list.json")).build();
 
       ZoneOperationApi zoneOperationApi = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, get, 
operationResponse).getZoneOperationApi("myproject");
+              TOKEN_RESPONSE, get, 
operationResponse).getZoneOperationApi("myproject", "us-central1-a");
 
-      
assertEquals(zoneOperationApi.listInZone("us-central1-a").next().toString(),
+      assertEquals(zoneOperationApi.list().next().toString(),
               expectedList().toString());
    }
 
@@ -139,12 +143,12 @@ public class ZoneOperationApiExpectTest extends 
BaseGoogleComputeEngineApiExpect
               
.payload(payloadFromResource("/zone_operation_list.json")).build();
 
       ZoneOperationApi zoneOperationApi = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, get, 
operationResponse).getZoneOperationApi("myproject");
+              TOKEN_RESPONSE, get, 
operationResponse).getZoneOperationApi("myproject", "us-central1-a");
 
-      assertEquals(zoneOperationApi.listAtMarkerInZone("us-central1-a",
+      assertEquals(zoneOperationApi.listPage(
               "CglPUEVSQVRJT04SOzU5MDQyMTQ4Nzg1Mi5vcGVyYXRpb24tMTM1Mj" +
                       "I0NDI1ODAzMC00Y2RkYmU2YTJkNmIwLWVkMzIyMzQz",
-              new ListOptions.Builder().filter("status eq 
done").maxResults(3)).toString(),
+              filter("status eq done").maxResults(3)).toString(),
               expectedList().toString());
    }
 
@@ -158,8 +162,9 @@ public class ZoneOperationApiExpectTest extends 
BaseGoogleComputeEngineApiExpect
 
       HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
 
-      ZoneOperationApi zoneOperationApi = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), TOKEN_RESPONSE, 
get, operationResponse).getZoneOperationApi("myproject");
+      ZoneOperationApi zoneOperationApi = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
+            TOKEN_RESPONSE, get, 
operationResponse).getZoneOperationApi("myproject", "us-central1-a");
 
-      assertFalse(zoneOperationApi.listInZone("us-central1-a").hasNext());
+      assertFalse(zoneOperationApi.list().hasNext());
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiLiveTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiLiveTest.java
index aafea3d..0d9422f 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiLiveTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiLiveTest.java
@@ -16,6 +16,7 @@
  */
 package org.jclouds.googlecomputeengine.features;
 
+import static 
org.jclouds.googlecomputeengine.options.ListOptions.Builder.maxResults;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
 
@@ -24,7 +25,6 @@ import java.util.Iterator;
 import org.jclouds.googlecomputeengine.domain.ListPage;
 import org.jclouds.googlecomputeengine.domain.Operation;
 import 
org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest;
-import org.jclouds.googlecomputeengine.options.ListOptions;
 import org.testng.SkipException;
 import org.testng.annotations.Test;
 
@@ -34,13 +34,11 @@ public class ZoneOperationApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest
    private Operation operation;
 
    private ZoneOperationApi api() {
-      return api.getZoneOperationApi(userProject.get());
+      return api.getZoneOperationApi(userProject.get(), DEFAULT_ZONE_NAME);
    }
 
    public void testListOperationsWithFiltersAndPagination() {
-      Iterator<ListPage<Operation>> operations = 
api().listInZone(DEFAULT_ZONE_NAME, new ListOptions.Builder()
-//              .filter("operationType eq insert")
-              .maxResults(1));
+      Iterator<ListPage<Operation>> operations = api().list(maxResults(1));
 
       // make sure that in spite of having only one result per page we get at 
least two results
       int count = 0;
@@ -59,7 +57,7 @@ public class ZoneOperationApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest
 
    @Test(groups = "live", dependsOnMethods = 
"testListOperationsWithFiltersAndPagination")
    public void testGetOperation() {
-      Operation result = api().getInZone(DEFAULT_ZONE_NAME, operation.name());
+      Operation result = api().get(operation.name());
       assertNotNull(result);
       assertEquals(result.name(), operation.name()); // Checking state besides 
name can lead to flaky test.
    }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d7403236/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/functions/internal/ToIteratorOfListPageExpectTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/functions/internal/ToIteratorOfListPageExpectTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/functions/internal/ToIteratorOfListPageExpectTest.java
new file mode 100644
index 0000000..2c961bf
--- /dev/null
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/functions/internal/ToIteratorOfListPageExpectTest.java
@@ -0,0 +1,185 @@
+/*
+ * 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.googlecomputeengine.functions.internal;
+
+import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
+import static 
org.jclouds.googlecomputeengine.options.ListOptions.Builder.maxResults;
+import static org.testng.Assert.assertEquals;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.jclouds.googlecomputeengine.config.GoogleComputeEngineParserModule;
+import org.jclouds.googlecomputeengine.domain.Address;
+import org.jclouds.googlecomputeengine.domain.Image;
+import org.jclouds.googlecomputeengine.domain.Instance;
+import org.jclouds.googlecomputeengine.domain.ListPage;
+import org.jclouds.googlecomputeengine.features.AddressApi;
+import org.jclouds.googlecomputeengine.features.ImageApi;
+import org.jclouds.googlecomputeengine.features.InstanceApi;
+import 
org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpectTest;
+import org.jclouds.googlecomputeengine.parse.ParseAddressTest;
+import org.jclouds.googlecomputeengine.parse.ParseImageTest;
+import org.jclouds.googlecomputeengine.parse.ParseInstanceTest;
+import org.jclouds.http.HttpRequest;
+import org.jclouds.http.HttpResponse;
+import org.jclouds.json.Json;
+import org.jclouds.json.config.GsonModule;
+import org.testng.annotations.Test;
+
+import com.google.common.collect.ImmutableList;
+import com.google.inject.Guice;
+
+@Test(groups = "unit", testName = "ToIteratorOfListPageTest")
+public class ToIteratorOfListPageExpectTest extends 
BaseGoogleComputeEngineApiExpectTest {
+
+   private final Json json = Guice.createInjector(new GsonModule(), new 
GoogleComputeEngineParserModule())
+         .getInstance(Json.class);
+
+   public void globalScope() {
+      HttpRequest list = HttpRequest
+              .builder()
+              .method("GET")
+              .endpoint(BASE_URL + "/myproject/global/images")
+              .addHeader("Accept", "application/json")
+              .addHeader("Authorization", "Bearer " + TOKEN).build();
+
+      HttpResponse operationResponse = HttpResponse.builder().statusCode(200)
+              
.payload(payloadFromResource("/image_list_single_page.json")).build();
+
+      ImageApi imageApi = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
+              TOKEN_RESPONSE, list, 
operationResponse).getImageApi("myproject");
+
+      Iterator<ListPage<Image>> images = imageApi.list();
+
+      assertEquals(images.next().size(), 3);
+   }
+
+   public void multiplePagesProjectScoped() {
+      HttpRequest list1 = HttpRequest
+              .builder()
+              .method("GET")
+              .endpoint(BASE_URL + "/myproject/global/images?maxResults=1")
+              .addHeader("Accept", "application/json")
+              .addHeader("Authorization", "Bearer " + TOKEN).build();
+
+      HttpRequest list2 = list1.toBuilder()
+               .endpoint(BASE_URL + 
"/myproject/global/images?pageToken=token1&maxResults=1").build();
+
+      HttpRequest list3 = list1.toBuilder()
+               .endpoint(BASE_URL + 
"/myproject/global/images?pageToken=token2&maxResults=1").build();
+
+      List<Image> items = ImmutableList.of(new ParseImageTest().expected());
+
+      HttpResponse list1Response = HttpResponse.builder().statusCode(200)
+              .payload(json.toJson(ListPage.create(items, "token1"))).build();
+
+      HttpResponse list2Response = HttpResponse.builder().statusCode(200)
+            .payload(json.toJson(ListPage.create(items, "token2"))).build();
+
+      HttpResponse list3Response = HttpResponse.builder().statusCode(200)
+            .payload(json.toJson(ListPage.create(items, null))).build();
+
+      ImageApi imageApi = 
orderedRequestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
+              TOKEN_RESPONSE, list1, list1Response, list2, list2Response, 
list3, list3Response)
+              .getImageApi("myproject");
+
+      Iterator<ListPage<Image>> images = imageApi.list(maxResults(1));
+
+      int imageCounter = 0;
+      while (images.hasNext()) {
+         imageCounter += images.next().size();
+      }
+      assertEquals(imageCounter, 3);
+   }
+
+   public void multiplePagesRegionScoped() {
+      HttpRequest list1 = HttpRequest
+            .builder()
+            .method("GET")
+            .endpoint(BASE_URL + 
"/myproject/regions/us-central1/addresses?maxResults=1")
+            .addHeader("Accept", "application/json")
+            .addHeader("Authorization", "Bearer " + TOKEN).build();
+
+      HttpRequest list2 = list1.toBuilder()
+            .endpoint(BASE_URL + 
"/myproject/regions/us-central1/addresses?pageToken=token1&maxResults=1").build();
+
+      HttpRequest list3 = list1.toBuilder()
+            .endpoint(BASE_URL + 
"/myproject/regions/us-central1/addresses?pageToken=token2&maxResults=1").build();
+
+      List<Address> items = ImmutableList.of(new 
ParseAddressTest().expected());
+
+      HttpResponse list1Response = HttpResponse.builder().statusCode(200)
+            .payload(json.toJson(ListPage.create(items, "token1"))).build();
+
+      HttpResponse list2Response = HttpResponse.builder().statusCode(200)
+            .payload(json.toJson(ListPage.create(items, "token2"))).build();
+
+      HttpResponse list3Response = HttpResponse.builder().statusCode(200)
+            .payload(json.toJson(ListPage.create(items, null))).build();
+
+      AddressApi addressApi = 
orderedRequestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
+            TOKEN_RESPONSE, list1, list1Response, list2, list2Response, list3, 
list3Response)
+            .getAddressApi("myproject", "us-central1");
+
+      Iterator<ListPage<Address>> addresses = addressApi.list(maxResults(1));
+
+      int addressCounter = 0;
+      while (addresses.hasNext()) {
+         addressCounter += addresses.next().size();
+      }
+      assertEquals(addressCounter, 3);
+   }
+
+   public void multiplePagesZoneScoped() {
+      HttpRequest list1 = HttpRequest
+            .builder()
+            .method("GET")
+            .endpoint(BASE_URL + 
"/myproject/zones/us-central1-a/instances?maxResults=1")
+            .addHeader("Accept", "application/json")
+            .addHeader("Authorization", "Bearer " + TOKEN).build();
+
+      HttpRequest list2 = list1.toBuilder()
+            .endpoint(BASE_URL + 
"/myproject/zones/us-central1-a/instances?pageToken=token1&maxResults=1").build();
+
+      HttpRequest list3 = list1.toBuilder()
+            .endpoint(BASE_URL + 
"/myproject/zones/us-central1-a/instances?pageToken=token2&maxResults=1").build();
+
+      List<Instance> items = ImmutableList.of(new 
ParseInstanceTest().expected());
+
+      HttpResponse list1Response = HttpResponse.builder().statusCode(200)
+            .payload(json.toJson(ListPage.create(items, "token1"))).build();
+
+      HttpResponse list2Response = HttpResponse.builder().statusCode(200)
+            .payload(json.toJson(ListPage.create(items, "token2"))).build();
+
+      HttpResponse list3Response = HttpResponse.builder().statusCode(200)
+            .payload(json.toJson(ListPage.create(items, null))).build();
+
+      InstanceApi instanceApi = 
orderedRequestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
+            TOKEN_RESPONSE, list1, list1Response, list2, list2Response, list3, 
list3Response)
+            .getInstanceApi("myproject", "us-central1-a");
+
+      Iterator<ListPage<Instance>> instances = instanceApi.list(maxResults(1));
+
+      int instanceCounter = 0;
+      while (instances.hasNext()) {
+         instanceCounter += instances.next().size();
+      }
+      assertEquals(instanceCounter, 3);
+   }
+}

Reply via email to