You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ab...@apache.org on 2013/07/29 19:36:47 UTC
[3/8] JCLOUDS-192. Move GCE to API v1beta15 - no new APIs added other
than Zone/GlobalOperations, which are needed for zone-scoping changes.
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/1b30e222/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/InstanceApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/InstanceApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/InstanceApiExpectTest.java
index 05a2034..3cde1e8 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/InstanceApiExpectTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/InstanceApiExpectTest.java
@@ -16,6 +16,19 @@
*/
package org.jclouds.googlecomputeengine.features;
+import static java.net.URI.create;
+import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
+import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
+import static org.jclouds.googlecomputeengine.features.ProjectApiExpectTest.GET_PROJECT_REQUEST;
+import static org.jclouds.googlecomputeengine.features.ProjectApiExpectTest.GET_PROJECT_RESPONSE;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+import static org.testng.AssertJUnit.assertNull;
+
+import java.net.URI;
+
+import javax.ws.rs.core.MediaType;
+
import org.jclouds.googlecomputeengine.domain.Instance;
import org.jclouds.googlecomputeengine.domain.InstanceTemplate;
import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpectTest;
@@ -27,15 +40,7 @@ import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
import org.testng.annotations.Test;
-import javax.ws.rs.core.MediaType;
-import java.net.URI;
-
-import static java.net.URI.create;
-import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
-import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-import static org.testng.AssertJUnit.assertNull;
+import com.google.common.collect.ImmutableMap;
/**
* @author David Alves
@@ -47,7 +52,7 @@ public class InstanceApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
.builder()
.method("GET")
.endpoint("https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/instances/test-1")
+ ".com/compute/v1beta15/projects/myproject/zones/us-central1-a/instances/test-1")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
@@ -59,15 +64,26 @@ public class InstanceApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
.builder()
.method("GET")
.endpoint("https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/instances")
+ ".com/compute/v1beta15/projects/myproject/zones/us-central1-a/instances")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
public static final HttpResponse LIST_INSTANCES_RESPONSE = HttpResponse.builder().statusCode(200)
.payload(staticPayloadFromResource("/instance_list.json")).build();
+ public static final HttpRequest LIST_CENTRAL1B_INSTANCES_REQUEST = HttpRequest
+ .builder()
+ .method("GET")
+ .endpoint("https://www.googleapis" +
+ ".com/compute/v1beta15/projects/myproject/zones/us-central1-b/instances")
+ .addHeader("Accept", "application/json")
+ .addHeader("Authorization", "Bearer " + TOKEN).build();
+
+ public static final HttpResponse LIST_CENTRAL1B_INSTANCES_RESPONSE = HttpResponse.builder().statusCode(200)
+ .payload(staticPayloadFromResource("/instance_list_central1b_empty.json")).build();
+
public static final HttpResponse CREATE_INSTANCE_RESPONSE = HttpResponse.builder().statusCode(200)
- .payload(staticPayloadFromResource("/operation.json")).build();
+ .payload(staticPayloadFromResource("/zone_operation.json")).build();
public void testGetInstanceResponseIs2xx() throws Exception {
@@ -76,7 +92,7 @@ public class InstanceApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
requestForScopes(COMPUTE_READONLY_SCOPE), TOKEN_RESPONSE,
GET_INSTANCE_REQUEST, GET_INSTANCE_RESPONSE).getInstanceApiForProject("myproject");
- assertEquals(api.get("test-1"), new ParseInstanceTest().expected());
+ assertEquals(api.getInZone("us-central1-a", "test-1"), new ParseInstanceTest().expected());
}
public void testGetInstanceResponseIs4xx() throws Exception {
@@ -86,7 +102,7 @@ public class InstanceApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
InstanceApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
TOKEN_RESPONSE, GET_INSTANCE_REQUEST, operationResponse).getInstanceApiForProject("myproject");
- assertNull(api.get("test-1"));
+ assertNull(api.getInZone("us-central1-a", "test-1"));
}
public void testGetInstanceSerialPortOutput() throws Exception {
@@ -94,7 +110,7 @@ public class InstanceApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
.builder()
.method("GET")
.endpoint("https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/instances/test-1/serialPort")
+ ".com/compute/v1beta15/projects/myproject/zones/us-central1-a/instances/test-1/serialPort")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
@@ -105,59 +121,63 @@ public class InstanceApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
InstanceApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
TOKEN_RESPONSE, get, operationResponse).getInstanceApiForProject("myproject");
- assertEquals(api.getSerialPortOutput("test-1"), new ParseInstanceSerialOutputTest().expected());
+ assertEquals(api.getSerialPortOutputInZone("us-central1-a", "test-1"), new ParseInstanceSerialOutputTest().expected());
}
public void testInsertInstanceResponseIs2xxNoOptions() {
HttpRequest insert = HttpRequest
.builder()
.method("POST")
- .endpoint("https://www.googleapis.com/compute/v1beta13/projects/myproject/instances")
+ .endpoint("https://www.googleapis.com/compute/v1beta15/projects/myproject/zones/us-central1-a/instances")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
.payload(payloadFromResourceWithContentType("/instance_insert_simple.json", MediaType.APPLICATION_JSON))
.build();
- InstanceApi api = requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
+ InstanceApi api = requestsSendResponses(ImmutableMap.of(requestForScopes(COMPUTE_READONLY_SCOPE),
+ TOKEN_RESPONSE, GET_PROJECT_REQUEST, GET_PROJECT_RESPONSE,
+ requestForScopes(COMPUTE_SCOPE),
TOKEN_RESPONSE, insert,
- CREATE_INSTANCE_RESPONSE).getInstanceApiForProject("myproject");
+ CREATE_INSTANCE_RESPONSE)).getInstanceApiForProject("myproject");
- InstanceTemplate options = InstanceTemplate.builder().forMachineType("n1-standard-1")
+ InstanceTemplate options = InstanceTemplate.builder().forMachineType("us-central1-a/n1-standard-1")
+ .image(URI.create("https://www.googleapis.com/compute/v1beta15/projects/google/global/images/gcel-12-04-v20121106"))
.addNetworkInterface(URI.create("https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/networks/default"));
+ ".com/compute/v1beta15/projects/myproject/global/networks/default"));
- assertEquals(api.createInZone("test-1", options, "us-central1-a"), new ParseOperationTest().expected());
+ assertEquals(api.createInZone("test-1", "us-central1-a", options), new ParseOperationTest().expected());
}
public void testInsertInstanceResponseIs2xxAllOptions() {
HttpRequest insert = HttpRequest
.builder()
.method("POST")
- .endpoint("https://www.googleapis.com/compute/v1beta13/projects/myproject/instances")
+ .endpoint("https://www.googleapis.com/compute/v1beta15/projects/myproject/zones/us-central1-a/instances")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
.payload(payloadFromResourceWithContentType("/instance_insert.json", MediaType.APPLICATION_JSON))
.build();
HttpResponse insertInstanceResponse = HttpResponse.builder().statusCode(200)
- .payload(payloadFromResource("/operation.json")).build();
+ .payload(payloadFromResource("/zone_operation.json")).build();
- InstanceApi api = requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
- TOKEN_RESPONSE, insert, insertInstanceResponse).getInstanceApiForProject("myproject");
+ InstanceApi api = requestsSendResponses(ImmutableMap.of(requestForScopes(COMPUTE_READONLY_SCOPE),
+ TOKEN_RESPONSE, GET_PROJECT_REQUEST, GET_PROJECT_RESPONSE,
+ requestForScopes(COMPUTE_SCOPE),
+ TOKEN_RESPONSE, insert, insertInstanceResponse)).getInstanceApiForProject("myproject");
- InstanceTemplate options = InstanceTemplate.builder().forMachineType("n1-standard-1")
+ InstanceTemplate options = InstanceTemplate.builder().forMachineType("us-central1-a/n1-standard-1")
.addNetworkInterface(URI.create("https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/networks/default"), Instance.NetworkInterface.AccessConfig.Type.ONE_TO_ONE_NAT)
+ ".com/compute/v1beta15/projects/myproject/global/networks/default"), Instance.NetworkInterface.AccessConfig.Type.ONE_TO_ONE_NAT)
.description("desc")
.image(URI.create("https://www.googleapis" +
- ".com/compute/v1beta13/projects/google/images/gcel-12-04-v20121106"))
+ ".com/compute/v1beta15/projects/google/global/images/gcel-12-04-v20121106"))
.addDisk(InstanceTemplate.PersistentDisk.Mode.READ_WRITE,
- create("https://www.googleapis.com/compute/v1beta13/projects/myproject/disks/test"))
- .addTag("aTag")
+ create("https://www.googleapis.com/compute/v1beta15/projects/myproject/zones/us-central1-a/disks/test"))
.addServiceAccount(Instance.ServiceAccount.builder().email("default").addScopes("myscope").build())
.addMetadata("aKey", "aValue");
- assertEquals(api.createInZone("test-0", options, "us-central1-a"),
+ assertEquals(api.createInZone("test-0", "us-central1-a", options),
new ParseOperationTest().expected());
}
@@ -166,17 +186,17 @@ public class InstanceApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
.builder()
.method("DELETE")
.endpoint("https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/instances/test-1")
+ ".com/compute/v1beta15/projects/myproject/zones/us-central1-a/instances/test-1")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
HttpResponse deleteResponse = HttpResponse.builder().statusCode(200)
- .payload(payloadFromResource("/operation.json")).build();
+ .payload(payloadFromResource("/zone_operation.json")).build();
InstanceApi api = requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
TOKEN_RESPONSE, delete, deleteResponse).getInstanceApiForProject("myproject");
- assertEquals(api.delete("test-1"),
+ assertEquals(api.deleteInZone("us-central1-a", "test-1"),
new ParseOperationTest().expected());
}
@@ -185,7 +205,7 @@ public class InstanceApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
.builder()
.method("DELETE")
.endpoint("https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/instances/test-1")
+ ".com/compute/v1beta15/projects/myproject/zones/us-central1-a/instances/test-1")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
@@ -194,7 +214,7 @@ public class InstanceApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
InstanceApi api = requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
TOKEN_RESPONSE, delete, deleteResponse).getInstanceApiForProject("myproject");
- assertNull(api.delete("test-1"));
+ assertNull(api.deleteInZone("us-central1-a", "test-1"));
}
public void testListInstancesResponseIs2xx() {
@@ -203,7 +223,7 @@ public class InstanceApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
requestForScopes(COMPUTE_READONLY_SCOPE), TOKEN_RESPONSE,
LIST_INSTANCES_REQUEST, LIST_INSTANCES_RESPONSE).getInstanceApiForProject("myproject");
- assertEquals(api.listFirstPage().toString(),
+ assertEquals(api.listFirstPageInZone("us-central1-a").toString(),
new ParseInstanceListTest().expected().toString());
}
@@ -212,7 +232,7 @@ public class InstanceApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
.builder()
.method("GET")
.endpoint("https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/instances")
+ ".com/compute/v1beta15/projects/myproject/zones/us-central1-a/instances")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
@@ -221,7 +241,7 @@ public class InstanceApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
InstanceApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
TOKEN_RESPONSE, list, operationResponse).getInstanceApiForProject("myproject");
- assertTrue(api.list().concat().isEmpty());
+ assertTrue(api.listInZone("us-central1-a").concat().isEmpty());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/1b30e222/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 e4ea6f7..c6b2571 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
@@ -19,17 +19,20 @@ package org.jclouds.googlecomputeengine.features;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
+import java.net.URI;
import java.util.List;
import java.util.Properties;
import org.jclouds.collect.PagedIterable;
import org.jclouds.googlecomputeengine.GoogleComputeEngineApi;
+import org.jclouds.googlecomputeengine.domain.Image;
import org.jclouds.googlecomputeengine.domain.Instance;
import org.jclouds.googlecomputeengine.domain.InstanceTemplate;
import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest;
import org.jclouds.googlecomputeengine.options.ListOptions;
import org.testng.annotations.Test;
+import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.inject.Module;
@@ -46,19 +49,35 @@ public class InstanceApiLiveTest extends BaseGoogleComputeEngineApiLiveTest {
private static final int TIME_WAIT = 600;
private InstanceTemplate instance;
-
+
@Override
protected GoogleComputeEngineApi create(Properties props, Iterable<Module> modules) {
GoogleComputeEngineApi api = super.create(props, modules);
+ URI imageUri = api.getImageApiForProject("google")
+ .list(new ListOptions.Builder().filter("name eq gcel.*"))
+ .concat()
+ .filter(new Predicate<Image>() {
+ @Override
+ public boolean apply(Image input) {
+ // filter out only images with deprecation state that isn't "DEPRECATED"
+ if (input.getDeprecated().isPresent() && input.getDeprecated().get().getState().isPresent()) {
+ return input.getDeprecated().get().getState().get().equals("DEPRECATED");
+ }
+ return true;
+ }
+ })
+ .first()
+ .get()
+ .getSelfLink();
instance = InstanceTemplate.builder()
- .forMachineType(getDefaultMachineTypekUrl(userProject.get()))
- .addNetworkInterface(getNetworkUrl(userProject.get(), INSTANCE_NETWORK_NAME),
- Instance.NetworkInterface.AccessConfig.Type.ONE_TO_ONE_NAT)
- .addMetadata("mykey", "myvalue")
- .addTag("atag")
- .description("a description")
- .addDisk(InstanceTemplate.PersistentDisk.Mode.READ_WRITE, getDiskUrl(userProject.get(), DISK_NAME))
- .zone(getDefaultZoneUrl(userProject.get()));
+ .forMachineType(getDefaultMachineTypeUrl(userProject.get()))
+ .addNetworkInterface(getNetworkUrl(userProject.get(), INSTANCE_NETWORK_NAME),
+ Instance.NetworkInterface.AccessConfig.Type.ONE_TO_ONE_NAT)
+ .addMetadata("mykey", "myvalue")
+ .description("a description")
+ .addDisk(InstanceTemplate.PersistentDisk.Mode.READ_WRITE, getDiskUrl(userProject.get(), DISK_NAME))
+ .image(imageUri);
+
return api;
}
@@ -70,20 +89,20 @@ public class InstanceApiLiveTest extends BaseGoogleComputeEngineApiLiveTest {
public void testInsertInstance() {
// need to create the network first
- assertOperationDoneSucessfully(api.getNetworkApiForProject(userProject.get()).createInIPv4Range
+ assertGlobalOperationDoneSucessfully(api.getNetworkApiForProject(userProject.get()).createInIPv4Range
(INSTANCE_NETWORK_NAME, IPV4_RANGE), TIME_WAIT);
- assertOperationDoneSucessfully(api.getDiskApiForProject(userProject.get()).createInZone
- ("instance-live-test-disk", 1, getDefaultZoneUrl(userProject.get())), TIME_WAIT);
+ assertZoneOperationDoneSucessfully(api.getDiskApiForProject(userProject.get()).createInZone
+ ("instance-live-test-disk", 10, DEFAULT_ZONE_NAME), TIME_WAIT);
- assertOperationDoneSucessfully(api().createInZone(INSTANCE_NAME, instance, DEFAULT_ZONE_NAME), TIME_WAIT);
+ assertZoneOperationDoneSucessfully(api().createInZone(INSTANCE_NAME, DEFAULT_ZONE_NAME, instance), TIME_WAIT);
}
@Test(groups = "live", dependsOnMethods = "testInsertInstance")
public void testGetInstance() {
- Instance instance = api().get(INSTANCE_NAME);
+ Instance instance = api().getInZone(DEFAULT_ZONE_NAME, INSTANCE_NAME);
assertNotNull(instance);
assertInstanceEquals(instance, this.instance);
}
@@ -91,7 +110,7 @@ public class InstanceApiLiveTest extends BaseGoogleComputeEngineApiLiveTest {
@Test(groups = "live", dependsOnMethods = "testInsertInstance")
public void testListInstance() {
- PagedIterable<Instance> instances = api().list(new ListOptions.Builder()
+ PagedIterable<Instance> instances = api().listInZone(DEFAULT_ZONE_NAME, new ListOptions.Builder()
.filter("name eq " + INSTANCE_NAME));
List<Instance> instancesAsList = Lists.newArrayList(instances.concat());
@@ -105,16 +124,15 @@ public class InstanceApiLiveTest extends BaseGoogleComputeEngineApiLiveTest {
@Test(groups = "live", dependsOnMethods = "testListInstance")
public void testDeleteInstance() {
- assertOperationDoneSucessfully(api().delete(INSTANCE_NAME), TIME_WAIT);
- assertOperationDoneSucessfully(api.getDiskApiForProject(userProject.get()).delete(DISK_NAME),
+ assertZoneOperationDoneSucessfully(api().deleteInZone(DEFAULT_ZONE_NAME, INSTANCE_NAME), TIME_WAIT);
+ assertZoneOperationDoneSucessfully(api.getDiskApiForProject(userProject.get()).deleteInZone(DEFAULT_ZONE_NAME, DISK_NAME),
TIME_WAIT);
- assertOperationDoneSucessfully(api.getNetworkApiForProject(userProject.get()).delete
+ assertGlobalOperationDoneSucessfully(api.getNetworkApiForProject(userProject.get()).delete
(INSTANCE_NETWORK_NAME), TIME_WAIT);
}
private void assertInstanceEquals(Instance result, InstanceTemplate expected) {
assertEquals(result.getName(), expected.getName());
- assertEquals(result.getTags(), expected.getTags());
assertEquals(result.getMetadata(), expected.getMetadata());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/1b30e222/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/KernelApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/KernelApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/KernelApiExpectTest.java
index 89e3958..d6f2f5c 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/KernelApiExpectTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/KernelApiExpectTest.java
@@ -16,6 +16,11 @@
*/
package org.jclouds.googlecomputeengine.features;
+import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+
import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpectTest;
import org.jclouds.googlecomputeengine.parse.ParseKernelListTest;
import org.jclouds.googlecomputeengine.parse.ParseKernelTest;
@@ -23,11 +28,6 @@ import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
import org.testng.annotations.Test;
-import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
/**
* @author David Alves
*/
@@ -39,7 +39,7 @@ public class KernelApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
.builder()
.method("GET")
.endpoint("https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/kernels/12941177846308850718")
+ ".com/compute/v1beta15/projects/myproject/global/kernels/12941177846308850718")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
@@ -58,7 +58,7 @@ public class KernelApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
.builder()
.method("GET")
.endpoint("https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/kernels/12941177846308850718")
+ ".com/compute/v1beta15/projects/myproject/global/kernels/12941177846308850718")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
@@ -75,7 +75,7 @@ public class KernelApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
.builder()
.method("GET")
.endpoint("https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/kernels")
+ ".com/compute/v1beta15/projects/myproject/global/kernels")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
@@ -94,7 +94,7 @@ public class KernelApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
.builder()
.method("GET")
.endpoint("https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/kernels")
+ ".com/compute/v1beta15/projects/myproject/global/kernels")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/1b30e222/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/KernelApiLiveTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/KernelApiLiveTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/KernelApiLiveTest.java
index f1476f8..8e9f971 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/KernelApiLiveTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/KernelApiLiveTest.java
@@ -16,8 +16,14 @@
*/
package org.jclouds.googlecomputeengine.features;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertSame;
+import static org.testng.Assert.assertTrue;
+
+import java.util.Iterator;
+import java.util.List;
+
import org.jclouds.collect.IterableWithMarker;
import org.jclouds.collect.PagedIterable;
import org.jclouds.googlecomputeengine.domain.Kernel;
@@ -25,13 +31,8 @@ import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTe
import org.jclouds.googlecomputeengine.options.ListOptions;
import org.testng.annotations.Test;
-import java.util.Iterator;
-import java.util.List;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertSame;
-import static org.testng.Assert.assertTrue;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
/**
* @author David Alves
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/1b30e222/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 3526efd..702f995 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
@@ -16,6 +16,11 @@
*/
package org.jclouds.googlecomputeengine.features;
+import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+
import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpectTest;
import org.jclouds.googlecomputeengine.parse.ParseMachineTypeListTest;
import org.jclouds.googlecomputeengine.parse.ParseMachineTypeTest;
@@ -23,11 +28,6 @@ import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
import org.testng.annotations.Test;
-import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
/**
* @author David Alves
*/
@@ -37,7 +37,7 @@ public class MachineTypeApiExpectTest extends BaseGoogleComputeEngineApiExpectTe
public static final HttpRequest LIST_MACHINE_TYPES_REQUEST = HttpRequest
.builder()
.method("GET")
- .endpoint("https://www.googleapis.com/compute/v1beta13/projects/myproject/machineTypes")
+ .endpoint("https://www.googleapis.com/compute/v1beta15/projects/myproject/zones/us-central1-a/machineTypes")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
@@ -46,12 +46,24 @@ public class MachineTypeApiExpectTest extends BaseGoogleComputeEngineApiExpectTe
.payload(staticPayloadFromResource("/machinetype_list.json"))
.build();
+ public static final HttpRequest LIST_CENTRAL1B_MACHINE_TYPES_REQUEST = HttpRequest
+ .builder()
+ .method("GET")
+ .endpoint("https://www.googleapis.com/compute/v1beta15/projects/myproject/zones/us-central1-b/machineTypes")
+ .addHeader("Accept", "application/json")
+ .addHeader("Authorization", "Bearer " + TOKEN).build();
+
+ public static final HttpResponse LIST_CENTRAL1B_MACHINE_TYPES_RESPONSE = HttpResponse.builder()
+ .statusCode(200)
+ .payload(staticPayloadFromResource("/machinetype_list_central1b.json"))
+ .build();
+
public void testGetMachineTypeResponseIs2xx() throws Exception {
HttpRequest get = HttpRequest
.builder()
.method("GET")
.endpoint("https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/machineTypes/n1-standard-1")
+ ".com/compute/v1beta15/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
@@ -61,7 +73,7 @@ public class MachineTypeApiExpectTest extends BaseGoogleComputeEngineApiExpectTe
MachineTypeApi machineTypeApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
TOKEN_RESPONSE, get, operationResponse).getMachineTypeApiForProject("myproject");
- assertEquals(machineTypeApi.get("n1-standard-1"),
+ assertEquals(machineTypeApi.getInZone("us-central1-a", "n1-standard-1"),
new ParseMachineTypeTest().expected());
}
@@ -70,7 +82,7 @@ public class MachineTypeApiExpectTest extends BaseGoogleComputeEngineApiExpectTe
.builder()
.method("GET")
.endpoint("https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/machineTypes/n1-standard-1")
+ ".com/compute/v1beta15/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
@@ -79,7 +91,7 @@ public class MachineTypeApiExpectTest extends BaseGoogleComputeEngineApiExpectTe
MachineTypeApi machineTypeApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
TOKEN_RESPONSE, get, operationResponse).getMachineTypeApiForProject("myproject");
- assertNull(machineTypeApi.get("n1-standard-1"));
+ assertNull(machineTypeApi.getInZone("us-central1-a", "n1-standard-1"));
}
public void testListMachineTypeNoOptionsResponseIs2xx() throws Exception {
@@ -88,7 +100,7 @@ public class MachineTypeApiExpectTest extends BaseGoogleComputeEngineApiExpectTe
TOKEN_RESPONSE, LIST_MACHINE_TYPES_REQUEST, LIST_MACHINE_TYPES_RESPONSE).getMachineTypeApiForProject
("myproject");
- assertEquals(machineTypeApi.listFirstPage().toString(),
+ assertEquals(machineTypeApi.listFirstPageInZone("us-central1-a").toString(),
new ParseMachineTypeListTest().expected().toString());
}
@@ -99,6 +111,6 @@ public class MachineTypeApiExpectTest extends BaseGoogleComputeEngineApiExpectTe
MachineTypeApi machineTypeApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
TOKEN_RESPONSE, LIST_MACHINE_TYPES_REQUEST, operationResponse).getMachineTypeApiForProject("myproject");
- assertTrue(machineTypeApi.list().concat().isEmpty());
+ assertTrue(machineTypeApi.listInZone("us-central1-a").concat().isEmpty());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/1b30e222/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 2a75366..af2b780 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,8 +16,14 @@
*/
package org.jclouds.googlecomputeengine.features;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertSame;
+import static org.testng.Assert.assertTrue;
+
+import java.util.Iterator;
+import java.util.List;
+
import org.jclouds.collect.IterableWithMarker;
import org.jclouds.collect.PagedIterable;
import org.jclouds.googlecomputeengine.domain.MachineType;
@@ -25,13 +31,8 @@ import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTe
import org.jclouds.googlecomputeengine.options.ListOptions;
import org.testng.annotations.Test;
-import java.util.Iterator;
-import java.util.List;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertSame;
-import static org.testng.Assert.assertTrue;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
/**
* @author David Alves
@@ -47,7 +48,7 @@ public class MachineTypeApiLiveTest extends BaseGoogleComputeEngineApiLiveTest {
@Test(groups = "live")
public void testListMachineType() {
- PagedIterable<MachineType> machineTypes = api().list(new ListOptions.Builder()
+ PagedIterable<MachineType> machineTypes = api().listInZone(DEFAULT_ZONE_NAME, new ListOptions.Builder()
.maxResults(1));
Iterator<IterableWithMarker<MachineType>> pageIterator = machineTypes.iterator();
@@ -64,7 +65,7 @@ public class MachineTypeApiLiveTest extends BaseGoogleComputeEngineApiLiveTest {
@Test(groups = "live", dependsOnMethods = "testListMachineType")
public void testGetMachineType() {
- MachineType machineType = api().get(this.machineType.getName());
+ MachineType machineType = api().getInZone(DEFAULT_ZONE_NAME, this.machineType.getName());
assertNotNull(machineType);
assertMachineTypeEquals(machineType, this.machineType);
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/1b30e222/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/NetworkApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/NetworkApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/NetworkApiExpectTest.java
index 2b46e0a..0198644 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/NetworkApiExpectTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/NetworkApiExpectTest.java
@@ -16,6 +16,14 @@
*/
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.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+import static org.testng.AssertJUnit.assertNull;
+
+import javax.ws.rs.core.MediaType;
+
import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpectTest;
import org.jclouds.googlecomputeengine.parse.ParseNetworkListTest;
import org.jclouds.googlecomputeengine.parse.ParseNetworkTest;
@@ -24,14 +32,6 @@ import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
import org.testng.annotations.Test;
-import javax.ws.rs.core.MediaType;
-
-import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
-import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-import static org.testng.AssertJUnit.assertNull;
-
/**
* @author David Alves
*/
@@ -41,7 +41,7 @@ public class NetworkApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
public static final HttpRequest GET_NETWORK_REQUEST = HttpRequest
.builder()
.method("GET")
- .endpoint("https://www.googleapis.com/compute/v1beta13/projects/myproject/networks/jclouds-test")
+ .endpoint("https://www.googleapis.com/compute/v1beta15/projects/myproject/global/networks/jclouds-test")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
@@ -61,7 +61,7 @@ public class NetworkApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
HttpRequest get = HttpRequest
.builder()
.method("GET")
- .endpoint("https://www.googleapis.com/compute/v1beta13/projects/myproject/networks/jclouds-test")
+ .endpoint("https://www.googleapis.com/compute/v1beta15/projects/myproject/global/networks/jclouds-test")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
@@ -77,7 +77,7 @@ public class NetworkApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
HttpRequest insert = HttpRequest
.builder()
.method("POST")
- .endpoint("https://www.googleapis.com/compute/v1beta13/projects/myproject/networks")
+ .endpoint("https://www.googleapis.com/compute/v1beta15/projects/myproject/global/networks")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
.payload(payloadFromResourceWithContentType("/network_insert.json", MediaType.APPLICATION_JSON))
@@ -98,7 +98,7 @@ public class NetworkApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
.builder()
.method("DELETE")
.endpoint("https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/networks/jclouds-test")
+ ".com/compute/v1beta15/projects/myproject/global/networks/jclouds-test")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
@@ -117,7 +117,7 @@ public class NetworkApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
.builder()
.method("DELETE")
.endpoint("https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/networks/jclouds-test")
+ ".com/compute/v1beta15/projects/myproject/global/networks/jclouds-test")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
@@ -134,7 +134,7 @@ public class NetworkApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
.builder()
.method("GET")
.endpoint("https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/networks")
+ ".com/compute/v1beta15/projects/myproject/global/networks")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
@@ -153,7 +153,7 @@ public class NetworkApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
.builder()
.method("GET")
.endpoint("https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/networks")
+ ".com/compute/v1beta15/projects/myproject/global/networks")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/1b30e222/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 b8c676c..b826e5f 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
@@ -46,7 +46,7 @@ public class NetworkApiLiveTest extends BaseGoogleComputeEngineApiLiveTest {
@Test(groups = "live")
public void testInsertNetwork() {
- assertOperationDoneSucessfully(api().createInIPv4Range(NETWORK_NAME, IPV4_RANGE), TIME_WAIT);
+ assertGlobalOperationDoneSucessfully(api().createInIPv4Range(NETWORK_NAME, IPV4_RANGE), TIME_WAIT);
}
@@ -75,7 +75,7 @@ public class NetworkApiLiveTest extends BaseGoogleComputeEngineApiLiveTest {
@Test(groups = "live", dependsOnMethods = "testListNetwork")
public void testDeleteNetwork() {
- assertOperationDoneSucessfully(api().delete(NETWORK_NAME), TIME_WAIT);
+ assertGlobalOperationDoneSucessfully(api().delete(NETWORK_NAME), TIME_WAIT);
}
private void assertNetworkEquals(Network result) {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/1b30e222/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/OperationApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/OperationApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/OperationApiExpectTest.java
deleted file mode 100644
index 7fefa48..0000000
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/OperationApiExpectTest.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecomputeengine.features;
-
-import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpectTest;
-import org.jclouds.googlecomputeengine.options.ListOptions;
-import org.jclouds.googlecomputeengine.parse.ParseOperationListTest;
-import org.jclouds.googlecomputeengine.parse.ParseOperationTest;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.http.HttpResponse;
-import org.testng.annotations.Test;
-
-import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
-import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-/**
- * @author David Alves
- */
-@Test(groups = "unit")
-public class OperationApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
-
- private static final String OPERATIONS_URL_PREFIX = "https://www.googleapis" +
- ".com/compute/v1beta13/projects/myproject/operations";
-
- public static final HttpRequest GET_OPERATION_REQUEST = HttpRequest
- .builder()
- .method("GET")
- .endpoint(OPERATIONS_URL_PREFIX + "/operation-1354084865060-4cf88735faeb8-bbbb12cb")
- .addHeader("Accept", "application/json")
- .addHeader("Authorization", "Bearer " + TOKEN).build();
-
- public static final HttpResponse GET_OPERATION_RESPONSE = HttpResponse.builder().statusCode(200)
- .payload(staticPayloadFromResource("/operation.json")).build();
-
- public void testGetOperationResponseIs2xx() throws Exception {
-
- OperationApi operationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
- TOKEN_RESPONSE, GET_OPERATION_REQUEST, GET_OPERATION_RESPONSE).getOperationApiForProject("myproject");
-
- assertEquals(operationApi.get("operation-1354084865060-4cf88735faeb8-bbbb12cb"),
- new ParseOperationTest().expected());
- }
-
- public void testGetOperationResponseIs4xx() throws Exception {
-
- HttpResponse operationResponse = HttpResponse.builder().statusCode(404).build();
-
- OperationApi operationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
- TOKEN_RESPONSE, GET_OPERATION_REQUEST, operationResponse).getOperationApiForProject("myproject");
-
- assertNull(operationApi.get("operation-1354084865060-4cf88735faeb8-bbbb12cb"));
- }
-
- public void testDeleteOperationResponseIs2xx() throws Exception {
- HttpRequest delete = HttpRequest
- .builder()
- .method("DELETE")
- .endpoint(OPERATIONS_URL_PREFIX + "/operation-1352178598164-4cdcc9d031510-4aa46279")
- .addHeader("Authorization", "Bearer " + TOKEN).build();
-
- HttpResponse operationResponse = HttpResponse.builder().statusCode(204).build();
-
- OperationApi operationApi = requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
- TOKEN_RESPONSE, delete, operationResponse).getOperationApiForProject("myproject");
-
- operationApi.delete("operation-1352178598164-4cdcc9d031510-4aa46279");
- }
-
- public void testDeleteOperationResponseIs4xx() throws Exception {
- HttpRequest delete = HttpRequest
- .builder()
- .method("DELETE")
- .endpoint(OPERATIONS_URL_PREFIX + "/operation-1352178598164-4cdcc9d031510-4aa46279")
- .addHeader("Authorization", "Bearer " + TOKEN).build();
-
- HttpResponse operationResponse = HttpResponse.builder().statusCode(404).build();
-
- OperationApi operationApi = requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
- TOKEN_RESPONSE, delete, operationResponse).getOperationApiForProject("myproject");
-
- operationApi.delete("operation-1352178598164-4cdcc9d031510-4aa46279");
- }
-
- public void testLisOperationWithNoOptionsResponseIs2xx() {
- HttpRequest get = HttpRequest
- .builder()
- .method("GET")
- .endpoint(OPERATIONS_URL_PREFIX)
- .addHeader("Accept", "application/json")
- .addHeader("Authorization", "Bearer " + TOKEN).build();
-
- HttpResponse operationResponse = HttpResponse.builder().statusCode(200)
- .payload(payloadFromResource("/operation_list.json")).build();
-
- OperationApi operationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
- TOKEN_RESPONSE, get, operationResponse).getOperationApiForProject("myproject");
-
- assertEquals(operationApi.listFirstPage().toString(),
- new ParseOperationListTest().expected().toString());
- }
-
- public void testListOperationWithPaginationOptionsResponseIs2xx() {
- HttpRequest get = HttpRequest
- .builder()
- .method("GET")
- .endpoint(OPERATIONS_URL_PREFIX +
- "?pageToken=CglPUEVSQVRJT04SOzU5MDQyMTQ4Nzg1Mi5vcG" +
- "VyYXRpb24tMTM1MjI0NDI1ODAzMC00Y2RkYmU2YTJkNmIwLWVkMzIyMzQz&" +
- "filter=" +
- "status%20eq%20done&" +
- "maxResults=3")
- .addHeader("Accept", "application/json")
- .addHeader("Authorization", "Bearer " + TOKEN).build();
-
- HttpResponse operationResponse = HttpResponse.builder().statusCode(200)
- .payload(payloadFromResource("/operation_list.json")).build();
-
- OperationApi operationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
- TOKEN_RESPONSE, get, operationResponse).getOperationApiForProject("myproject");
-
- assertEquals(operationApi.listAtMarker("CglPUEVSQVRJT04SOzU5MDQyMTQ4Nzg1Mi5vcGVyYXRpb24tMTM1Mj" +
- "I0NDI1ODAzMC00Y2RkYmU2YTJkNmIwLWVkMzIyMzQz",
- new ListOptions.Builder().filter("status eq done").maxResults(3)).toString(),
- new ParseOperationListTest().expected().toString());
- }
-
- public void testListOperationWithPaginationOptionsResponseIs4xx() {
- HttpRequest get = HttpRequest
- .builder()
- .method("GET")
- .endpoint(OPERATIONS_URL_PREFIX)
- .addHeader("Accept", "application/json")
- .addHeader("Authorization", "Bearer " + TOKEN).build();
-
- HttpResponse operationResponse = HttpResponse.builder().statusCode(404).build();
-
- OperationApi operationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
- TOKEN_RESPONSE, get, operationResponse).getOperationApiForProject("myproject");
-
- assertTrue(operationApi.list().concat().isEmpty());
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/1b30e222/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/OperationApiLiveTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/OperationApiLiveTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/OperationApiLiveTest.java
deleted file mode 100644
index 982a6ba..0000000
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/OperationApiLiveTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecomputeengine.features;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
-import org.jclouds.collect.IterableWithMarker;
-import org.jclouds.collect.PagedIterable;
-import org.jclouds.googlecomputeengine.domain.Operation;
-import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest;
-import org.jclouds.googlecomputeengine.options.ListOptions;
-import org.testng.annotations.Test;
-
-import java.util.concurrent.atomic.AtomicInteger;
-
-import static org.jclouds.googlecomputeengine.features.ProjectApiLiveTest.addItemToMetadata;
-import static org.jclouds.googlecomputeengine.features.ProjectApiLiveTest.deleteItemFromMetadata;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-
-/**
- * @author David Alves
- */
-public class OperationApiLiveTest extends BaseGoogleComputeEngineApiLiveTest {
-
- private static final String METADATA_ITEM_KEY = "operationLiveTestTestProp";
- private static final String METADATA_ITEM_VALUE = "operationLiveTestTestValue";
- private Operation addOperation;
- private Operation deleteOperation;
-
- private OperationApi api() {
- return api.getOperationApiForProject(userProject.get());
- }
-
-
- @Test(groups = "live")
- public void testCreateOperations() {
- //create some operations by adding and deleting metadata items
- // this will make sure there is stuff to listFirstPage
- addOperation = assertOperationDoneSucessfully(addItemToMetadata(api.getProjectApi(),
- userProject.get(), METADATA_ITEM_KEY, METADATA_ITEM_VALUE), 20);
- deleteOperation = assertOperationDoneSucessfully(deleteItemFromMetadata(api
- .getProjectApi(), userProject.get(), METADATA_ITEM_KEY), 20);
-
- assertNotNull(addOperation);
- assertNotNull(deleteOperation);
- }
-
- @Test(groups = "live", dependsOnMethods = "testCreateOperations")
- public void testGetOperation() {
- Operation operation = api().get(addOperation.getName());
- assertNotNull(operation);
- assertOperationEquals(operation, this.addOperation);
- }
-
- @Test(groups = "live", dependsOnMethods = "testCreateOperations")
- public void testListOperationsWithFiltersAndPagination() {
- PagedIterable<Operation> operations = api().list(new ListOptions.Builder()
- .filter("operationType eq setMetadata")
- .maxResults(1));
-
- // make sure that in spite of having only one result per page we get at least two results
- final AtomicInteger counter = new AtomicInteger();
- operations.firstMatch(new Predicate<IterableWithMarker<Operation>>() {
-
- @Override
- public boolean apply(IterableWithMarker<Operation> input) {
- counter.addAndGet(Iterables.size(input));
- return counter.get() == 2;
- }
- });
- }
-
- private void assertOperationEquals(Operation result, Operation expected) {
- assertEquals(result.getName(), expected.getName());
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/1b30e222/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ProjectApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ProjectApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ProjectApiExpectTest.java
index 83c8360..ebcbdfb 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ProjectApiExpectTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ProjectApiExpectTest.java
@@ -16,6 +16,11 @@
*/
package org.jclouds.googlecomputeengine.features;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNull;
+
+import javax.ws.rs.core.MediaType;
+
import org.jclouds.googlecomputeengine.GoogleComputeEngineConstants;
import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpectTest;
import org.jclouds.googlecomputeengine.parse.ParseMetadataTest;
@@ -25,11 +30,6 @@ import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
import org.testng.annotations.Test;
-import javax.ws.rs.core.MediaType;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-
/**
* @author David Alves
@@ -37,22 +37,22 @@ import static org.testng.Assert.assertNull;
@Test(groups = "unit")
public class ProjectApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
- public static final String PROJECTS_URL_PREFIX = "https://www.googleapis.com/compute/v1beta13/projects";
+ public static final String PROJECTS_URL_PREFIX = "https://www.googleapis.com/compute/v1beta15/projects";
- public void testGetProjectResponseIs2xx() throws Exception {
- HttpRequest getProjectRequest = HttpRequest
- .builder()
- .method("GET")
- .endpoint(PROJECTS_URL_PREFIX + "/myproject")
- .addHeader("Accept", "application/json")
- .addHeader("Authorization", "Bearer " + TOKEN).build();
+ public static final HttpRequest GET_PROJECT_REQUEST = HttpRequest
+ .builder()
+ .method("GET")
+ .endpoint(PROJECTS_URL_PREFIX + "/myproject")
+ .addHeader("Accept", "application/json")
+ .addHeader("Authorization", "Bearer " + TOKEN).build();
- HttpResponse getProjectResponse = HttpResponse.builder().statusCode(200)
- .payload(payloadFromResource("/project.json")).build();
+ public static final HttpResponse GET_PROJECT_RESPONSE = HttpResponse.builder().statusCode(200)
+ .payload(staticPayloadFromResource("/project.json")).build();
+ public void testGetProjectResponseIs2xx() throws Exception {
ProjectApi api = requestsSendResponses(requestForScopes(GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE),
- TOKEN_RESPONSE, getProjectRequest,
- getProjectResponse).getProjectApi();
+ TOKEN_RESPONSE, GET_PROJECT_REQUEST,
+ GET_PROJECT_RESPONSE).getProjectApi();
assertEquals(api.get("myproject"), new ParseProjectTest().expected());
}
@@ -85,7 +85,7 @@ public class ProjectApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
.build();
HttpResponse setMetadataResponse = HttpResponse.builder().statusCode(200)
- .payload(payloadFromResource("/operation.json")).build();
+ .payload(payloadFromResource("/global_operation.json")).build();
ProjectApi api = requestsSendResponses(requestForScopes(GoogleComputeEngineConstants.COMPUTE_SCOPE),
TOKEN_RESPONSE, setMetadata,
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/1b30e222/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ProjectApiLiveTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ProjectApiLiveTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ProjectApiLiveTest.java
index 7d24724..eeaaa7f 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ProjectApiLiveTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ProjectApiLiveTest.java
@@ -20,13 +20,6 @@ package org.jclouds.googlecomputeengine.features;
* @author David Alves
*/
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Maps;
-import org.jclouds.googlecomputeengine.domain.Operation;
-import org.jclouds.googlecomputeengine.domain.Project;
-import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest;
-import org.testng.annotations.Test;
-
import static com.google.common.base.Predicates.equalTo;
import static com.google.common.base.Predicates.not;
import static org.testng.Assert.assertEquals;
@@ -36,6 +29,14 @@ import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertSame;
import static org.testng.Assert.assertTrue;
+import org.jclouds.googlecomputeengine.domain.Operation;
+import org.jclouds.googlecomputeengine.domain.Project;
+import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest;
+import org.testng.annotations.Test;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Maps;
+
/**
* @author David Alves
*/
@@ -68,7 +69,7 @@ public class ProjectApiLiveTest extends BaseGoogleComputeEngineApiLiveTest {
@Test(groups = "live", dependsOnMethods = "testGetProjectWhenExists")
public void addItemToMetadata() {
this.initialMetadataSize = project.getCommonInstanceMetadata().size();
- assertOperationDoneSucessfully(addItemToMetadata(projectApi(), userProject.get(), METADATA_ITEM_KEY,
+ assertGlobalOperationDoneSucessfully(addItemToMetadata(projectApi(), userProject.get(), METADATA_ITEM_KEY,
METADATA_ITEM_VALUE), 20);
this.project = projectApi().get(userProject.get());
assertNotNull(project);
@@ -80,7 +81,7 @@ public class ProjectApiLiveTest extends BaseGoogleComputeEngineApiLiveTest {
@Test(groups = "live", dependsOnMethods = "addItemToMetadata")
public void testDeleteItemFromMetadata() {
- assertOperationDoneSucessfully(deleteItemFromMetadata(projectApi(), userProject.get(), METADATA_ITEM_KEY), 20);
+ assertGlobalOperationDoneSucessfully(deleteItemFromMetadata(projectApi(), userProject.get(), METADATA_ITEM_KEY), 20);
this.project = projectApi().get(userProject.get());
assertNotNull(project);
assertFalse(project.getCommonInstanceMetadata().containsKey(METADATA_ITEM_KEY));
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/1b30e222/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiExpectTest.java
index 9cd516c..aecfcab 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiExpectTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiExpectTest.java
@@ -16,6 +16,11 @@
*/
package org.jclouds.googlecomputeengine.features;
+import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+
import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpectTest;
import org.jclouds.googlecomputeengine.parse.ParseZoneListTest;
import org.jclouds.googlecomputeengine.parse.ParseZoneTest;
@@ -23,18 +28,13 @@ import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
import org.testng.annotations.Test;
-import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
/**
* @author David Alves
*/
@Test(groups = "unit")
public class ZoneApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
- public static final String ZONES_URL_PREFIX = "https://www.googleapis.com/compute/v1beta13/projects/myproject/zones";
+ public static final String ZONES_URL_PREFIX = "https://www.googleapis.com/compute/v1beta15/projects/myproject/zones";
public static final HttpRequest GET_ZONE_REQ = HttpRequest
.builder()
@@ -50,10 +50,12 @@ public class ZoneApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
+ public static final HttpResponse LIST_ZONES_SHORT_RESPONSE = HttpResponse.builder().statusCode(200)
+ .payload(staticPayloadFromResource("/zone_list_short.json")).build();
+
public static final HttpResponse LIST_ZONES_RESPONSE = HttpResponse.builder().statusCode(200)
.payload(staticPayloadFromResource("/zone_list.json")).build();
-
public void testGetZoneResponseIs2xx() throws Exception {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/1b30e222/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 73fd9ec..612ba8d 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,8 +16,14 @@
*/
package org.jclouds.googlecomputeengine.features;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertSame;
+import static org.testng.Assert.assertTrue;
+
+import java.util.Iterator;
+import java.util.List;
+
import org.jclouds.collect.IterableWithMarker;
import org.jclouds.collect.PagedIterable;
import org.jclouds.googlecomputeengine.domain.Zone;
@@ -25,13 +31,8 @@ import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTe
import org.jclouds.googlecomputeengine.options.ListOptions;
import org.testng.annotations.Test;
-import java.util.Iterator;
-import java.util.List;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertSame;
-import static org.testng.Assert.assertTrue;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
/**
* @author David Alves
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/1b30e222/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
new file mode 100644
index 0000000..d5d5362
--- /dev/null
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java
@@ -0,0 +1,196 @@
+/*
+ * 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.features;
+
+import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
+import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+
+import java.net.URI;
+
+import org.jclouds.date.internal.SimpleDateFormatDateService;
+import org.jclouds.googlecomputeengine.domain.ListPage;
+import org.jclouds.googlecomputeengine.domain.Operation;
+import org.jclouds.googlecomputeengine.domain.Resource;
+import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpectTest;
+import org.jclouds.googlecomputeengine.options.ListOptions;
+import org.jclouds.http.HttpRequest;
+import org.jclouds.http.HttpResponse;
+import org.testng.annotations.Test;
+
+/**
+ * @author David Alves
+ */
+@Test(groups = "unit")
+public class ZoneOperationApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
+
+ private static final String OPERATIONS_URL_PREFIX = "https://www.googleapis" +
+ ".com/compute/v1beta15/projects/myproject/zones/us-central1-a/operations";
+
+ public static final HttpRequest GET_ZONE_OPERATION_REQUEST = HttpRequest
+ .builder()
+ .method("GET")
+ .endpoint(OPERATIONS_URL_PREFIX + "/operation-1354084865060-4cf88735faeb8-bbbb12cb")
+ .addHeader("Accept", "application/json")
+ .addHeader("Authorization", "Bearer " + TOKEN).build();
+
+ public static final HttpResponse GET_ZONE_OPERATION_RESPONSE = HttpResponse.builder().statusCode(200)
+ .payload(staticPayloadFromResource("/zone_operation.json")).build();
+
+ private Operation expected() {
+ SimpleDateFormatDateService dateService = new SimpleDateFormatDateService();
+ return Operation.builder().id("13053095055850848306")
+ .selfLink(URI.create("https://www.googleapis" +
+ ".com/compute/v1beta15/projects/myproject/zones/us-central1-a/operations/operation-1354084865060-4cf88735faeb8" +
+ "-bbbb12cb"))
+ .name("operation-1354084865060-4cf88735faeb8-bbbb12cb")
+ .targetLink(URI.create("https://www.googleapis" +
+ ".com/compute/v1beta15/projects/myproject/zones/us-central1-a/instances/instance-api-live-test-instance"))
+ .targetId("13053094017547040099")
+ .status(Operation.Status.DONE)
+ .user("user@developer.gserviceaccount.com")
+ .progress(100)
+ .insertTime(dateService.iso8601DateParse("2012-11-28T06:41:05.060"))
+ .startTime(dateService.iso8601DateParse("2012-11-28T06:41:05.142"))
+ .endTime(dateService.iso8601DateParse("2012-11-28T06:41:06.142"))
+ .operationType("insert")
+ .zone(URI.create("https://www.googleapis.com/compute/v1beta15/projects/myproject/zones/us-central1-a"))
+ .build();
+ }
+
+ private ListPage<Operation> expectedList() {
+ return ListPage.<Operation>builder()
+ .kind(Resource.Kind.OPERATION_LIST)
+ .id("projects/myproject/zones/us-central1-a/operations")
+ .selfLink(URI.create("https://www.googleapis.com/compute/v1beta15/projects/myproject/zones/us-central1-a/operations"))
+ .addItem(expected())
+ .build();
+ }
+
+ public void testGetOperationResponseIs2xx() throws Exception {
+
+ ZoneOperationApi zoneOperationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
+ TOKEN_RESPONSE, GET_ZONE_OPERATION_REQUEST, GET_ZONE_OPERATION_RESPONSE).getZoneOperationApiForProject("myproject");
+
+ assertEquals(zoneOperationApi.getInZone("us-central1-a", "operation-1354084865060-4cf88735faeb8-bbbb12cb"),
+ expected());
+ }
+
+ public void testGetOperationResponseIs4xx() throws Exception {
+
+ HttpResponse operationResponse = HttpResponse.builder().statusCode(404).build();
+
+ ZoneOperationApi zoneOperationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
+ TOKEN_RESPONSE, GET_ZONE_OPERATION_REQUEST, operationResponse).getZoneOperationApiForProject("myproject");
+
+ assertNull(zoneOperationApi.getInZone("us-central1-a", "operation-1354084865060-4cf88735faeb8-bbbb12cb"));
+ }
+
+ public void testDeleteOperationResponseIs2xx() throws Exception {
+ HttpRequest delete = HttpRequest
+ .builder()
+ .method("DELETE")
+ .endpoint(OPERATIONS_URL_PREFIX + "/operation-1352178598164-4cdcc9d031510-4aa46279")
+ .addHeader("Authorization", "Bearer " + TOKEN).build();
+
+ HttpResponse operationResponse = HttpResponse.builder().statusCode(204).build();
+
+ ZoneOperationApi zoneOperationApi = requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
+ TOKEN_RESPONSE, delete, operationResponse).getZoneOperationApiForProject("myproject");
+
+ zoneOperationApi.deleteInZone("us-central1-a", "operation-1352178598164-4cdcc9d031510-4aa46279");
+ }
+
+ public void testDeleteOperationResponseIs4xx() throws Exception {
+ HttpRequest delete = HttpRequest
+ .builder()
+ .method("DELETE")
+ .endpoint(OPERATIONS_URL_PREFIX + "/operation-1352178598164-4cdcc9d031510-4aa46279")
+ .addHeader("Authorization", "Bearer " + TOKEN).build();
+
+ HttpResponse operationResponse = HttpResponse.builder().statusCode(404).build();
+
+ ZoneOperationApi zoneOperationApi = requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
+ TOKEN_RESPONSE, delete, operationResponse).getZoneOperationApiForProject("myproject");
+
+ zoneOperationApi.deleteInZone("us-central1-a", "operation-1352178598164-4cdcc9d031510-4aa46279");
+ }
+
+ public void testListOperationWithNoOptionsResponseIs2xx() {
+ HttpRequest get = HttpRequest
+ .builder()
+ .method("GET")
+ .endpoint(OPERATIONS_URL_PREFIX)
+ .addHeader("Accept", "application/json")
+ .addHeader("Authorization", "Bearer " + TOKEN).build();
+
+ HttpResponse operationResponse = HttpResponse.builder().statusCode(200)
+ .payload(payloadFromResource("/zone_operation_list.json")).build();
+
+ ZoneOperationApi zoneOperationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
+ TOKEN_RESPONSE, get, operationResponse).getZoneOperationApiForProject("myproject");
+
+ assertEquals(zoneOperationApi.listFirstPageInZone("us-central1-a").toString(),
+ expectedList().toString());
+ }
+
+ public void testListOperationWithPaginationOptionsResponseIs2xx() {
+ HttpRequest get = HttpRequest
+ .builder()
+ .method("GET")
+ .endpoint(OPERATIONS_URL_PREFIX +
+ "?pageToken=CglPUEVSQVRJT04SOzU5MDQyMTQ4Nzg1Mi5vcG" +
+ "VyYXRpb24tMTM1MjI0NDI1ODAzMC00Y2RkYmU2YTJkNmIwLWVkMzIyMzQz&" +
+ "filter=" +
+ "status%20eq%20done&" +
+ "maxResults=3")
+ .addHeader("Accept", "application/json")
+ .addHeader("Authorization", "Bearer " + TOKEN).build();
+
+ HttpResponse operationResponse = HttpResponse.builder().statusCode(200)
+ .payload(payloadFromResource("/zone_operation_list.json")).build();
+
+ ZoneOperationApi zoneOperationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
+ TOKEN_RESPONSE, get, operationResponse).getZoneOperationApiForProject("myproject");
+
+ assertEquals(zoneOperationApi.listAtMarkerInZone("us-central1-a",
+ "CglPUEVSQVRJT04SOzU5MDQyMTQ4Nzg1Mi5vcGVyYXRpb24tMTM1Mj" +
+ "I0NDI1ODAzMC00Y2RkYmU2YTJkNmIwLWVkMzIyMzQz",
+ new ListOptions.Builder().filter("status eq done").maxResults(3)).toString(),
+ expectedList().toString());
+ }
+
+ public void testListOperationWithPaginationOptionsResponseIs4xx() {
+ HttpRequest get = HttpRequest
+ .builder()
+ .method("GET")
+ .endpoint(OPERATIONS_URL_PREFIX)
+ .addHeader("Accept", "application/json")
+ .addHeader("Authorization", "Bearer " + TOKEN).build();
+
+ HttpResponse operationResponse = HttpResponse.builder().statusCode(404).build();
+
+ ZoneOperationApi zoneOperationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
+ TOKEN_RESPONSE, get, operationResponse).getZoneOperationApiForProject("myproject");
+
+ assertTrue(zoneOperationApi.listInZone("us-central1-a").concat().isEmpty());
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/1b30e222/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/handlers/GoogleComputeEngineErrorHandlerTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/handlers/GoogleComputeEngineErrorHandlerTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/handlers/GoogleComputeEngineErrorHandlerTest.java
index e4f4cbb..ccad321 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/handlers/GoogleComputeEngineErrorHandlerTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/handlers/GoogleComputeEngineErrorHandlerTest.java
@@ -16,20 +16,20 @@
*/
package org.jclouds.googlecomputeengine.handlers;
-import org.easymock.IArgumentMatcher;
-import org.jclouds.http.HttpCommand;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.http.HttpResponse;
-import org.testng.annotations.Test;
-
-import java.net.URI;
-
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.reportMatcher;
import static org.easymock.EasyMock.verify;
+import java.net.URI;
+
+import org.easymock.IArgumentMatcher;
+import org.jclouds.http.HttpCommand;
+import org.jclouds.http.HttpRequest;
+import org.jclouds.http.HttpResponse;
+import org.testng.annotations.Test;
+
/**
* @author Adrian Cole
*/
@@ -40,7 +40,7 @@ public class GoogleComputeEngineErrorHandlerTest {
public void test409MakesIllegalStateException() {
assertCodeMakes(
"POST",
- URI.create("https://www.googleapis.com/compute/v1beta13"),
+ URI.create("https://www.googleapis.com/compute/v1beta15"),
409,
"HTTP/1.1 409 Conflict",
"\"{\"code\":\"InvalidState\",\"message\":\"An incompatible transition has already been queued for this" +
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/1b30e222/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiExpectTest.java
index f6760fb..ae7be6a 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiExpectTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiExpectTest.java
@@ -16,10 +16,10 @@
*/
package org.jclouds.googlecomputeengine.internal;
-import org.jclouds.googlecomputeengine.GoogleComputeEngineApi;
-
import java.util.Properties;
+import org.jclouds.googlecomputeengine.GoogleComputeEngineApi;
+
/**
* @author Adrian Cole
*/
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/1b30e222/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiLiveTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiLiveTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiLiveTest.java
index 07a8fab..e76699b 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiLiveTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiLiveTest.java
@@ -36,6 +36,7 @@ import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.Module;
import com.google.inject.TypeLiteral;
+import com.google.inject.name.Names;
/**
@@ -43,11 +44,14 @@ import com.google.inject.TypeLiteral;
*/
public class BaseGoogleComputeEngineApiLiveTest extends BaseApiLiveTest<GoogleComputeEngineApi> {
- protected static final String API_URL_PREFIX = "https://www.googleapis.com/compute/v1beta13/projects/";
+ protected static final String API_URL_PREFIX = "https://www.googleapis.com/compute/v1beta15/projects/";
protected static final String ZONE_API_URL_SUFFIX = "/zones/";
protected static final String DEFAULT_ZONE_NAME = "us-central1-a";
- protected static final String NETWORK_API_URL_SUFFIX = "/networks/";
+ protected static final String REGION_API_URL_SUFFIX = "/region/";
+ protected static final String DEFAULT_REGION_NAME = "us-central1";
+
+ protected static final String NETWORK_API_URL_SUFFIX = "/global/networks/";
protected static final String DEFAULT_NETWORK_NAME = "live-test-network";
protected static final String MACHINE_TYPE_API_URL_SUFFIX = "/machineTypes/";
@@ -56,7 +60,8 @@ public class BaseGoogleComputeEngineApiLiveTest extends BaseApiLiveTest<GoogleCo
protected static final String GOOGLE_PROJECT = "google";
protected Supplier<String> userProject;
- protected Predicate<AtomicReference<Operation>> operationDonePredicate;
+ protected Predicate<AtomicReference<Operation>> globalOperationDonePredicate;
+ protected Predicate<AtomicReference<Operation>> zoneOperationDonePredicate;
public BaseGoogleComputeEngineApiLiveTest() {
@@ -67,20 +72,33 @@ public class BaseGoogleComputeEngineApiLiveTest extends BaseApiLiveTest<GoogleCo
Injector injector = newBuilder().modules(modules).overrides(props).buildInjector();
userProject = injector.getInstance(Key.get(new TypeLiteral<Supplier<String>>() {
}, UserProject.class));
- operationDonePredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<AtomicReference<Operation>>>() {
- }));
+ globalOperationDonePredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<AtomicReference<Operation>>>() {
+ }, Names.named("global")));
+ zoneOperationDonePredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<AtomicReference<Operation>>>() {
+ }, Names.named("zone")));
return injector.getInstance(GoogleComputeEngineApi.class);
}
- protected Operation assertOperationDoneSucessfully(Operation operation, long maxWaitSeconds) {
- operation = waitOperationDone(operation, maxWaitSeconds);
+ protected Operation assertGlobalOperationDoneSucessfully(Operation operation, long maxWaitSeconds) {
+ operation = waitGlobalOperationDone(operation, maxWaitSeconds);
+ assertEquals(operation.getStatus(), Operation.Status.DONE);
+ assertTrue(operation.getErrors().isEmpty());
+ return operation;
+ }
+
+ protected Operation waitGlobalOperationDone(Operation operation, long maxWaitSeconds) {
+ return waitOperationDone(globalOperationDonePredicate, operation, maxWaitSeconds);
+ }
+
+ protected Operation assertZoneOperationDoneSucessfully(Operation operation, long maxWaitSeconds) {
+ operation = waitZoneOperationDone(operation, maxWaitSeconds);
assertEquals(operation.getStatus(), Operation.Status.DONE);
assertTrue(operation.getErrors().isEmpty());
return operation;
}
- protected Operation waitOperationDone(Operation operation, long maxWaitSeconds) {
- return waitOperationDone(operationDonePredicate, operation, maxWaitSeconds);
+ protected Operation waitZoneOperationDone(Operation operation, long maxWaitSeconds) {
+ return waitOperationDone(zoneOperationDonePredicate, operation, maxWaitSeconds);
}
protected URI getDefaultZoneUrl(String project) {
@@ -99,22 +117,24 @@ public class BaseGoogleComputeEngineApiLiveTest extends BaseApiLiveTest<GoogleCo
return URI.create(API_URL_PREFIX + project + NETWORK_API_URL_SUFFIX + network);
}
- protected URI getDefaultMachineTypekUrl(String project) {
- return gettMachineTypeUrl(project, DEFAULT_MACHINE_TYPE_NAME);
+ protected URI getDefaultMachineTypeUrl(String project) {
+ return getMachineTypeUrl(project, DEFAULT_MACHINE_TYPE_NAME);
}
- protected URI gettMachineTypeUrl(String project, String machineType) {
- return URI.create(API_URL_PREFIX + project + MACHINE_TYPE_API_URL_SUFFIX + machineType);
+ protected URI getMachineTypeUrl(String project, String machineType) {
+ return URI.create(API_URL_PREFIX + project + ZONE_API_URL_SUFFIX
+ + DEFAULT_ZONE_NAME + MACHINE_TYPE_API_URL_SUFFIX + machineType);
}
protected URI getDiskUrl(String project, String diskName) {
- return URI.create(API_URL_PREFIX + project + "/disks/" + diskName);
+ return URI.create(API_URL_PREFIX + project + ZONE_API_URL_SUFFIX
+ + DEFAULT_ZONE_NAME + "/disks/" + diskName);
}
protected static Operation waitOperationDone(Predicate<AtomicReference<Operation>> operationDonePredicate,
Operation operation, long maxWaitSeconds) {
AtomicReference<Operation> operationReference = new AtomicReference<Operation>(operation);
- retry(operationDonePredicate, maxWaitSeconds, 1, SECONDS).apply(operationReference);
+ retry(operationDonePredicate, maxWaitSeconds, 1, SECONDS).apply(operationReference);
return operationReference.get();
}
}