You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ad...@apache.org on 2014/11/07 17:08:02 UTC
[2/5] jclouds-labs-google git commit: Consolidate operation state
management.
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/8895953d/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 1a19bcf..07ac7e0 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
@@ -16,15 +16,16 @@
*/
package org.jclouds.googlecomputeengine.internal;
-import static java.util.concurrent.TimeUnit.SECONDS;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
import static org.jclouds.oauth.v2.OAuthTestUtils.setCredential;
-import static org.jclouds.util.Predicates2.retry;
import static org.testng.Assert.assertEquals;
import static org.testng.AssertJUnit.assertTrue;
import java.net.URI;
import java.util.Properties;
import java.util.concurrent.atomic.AtomicReference;
+import java.util.logging.Logger;
import org.jclouds.apis.BaseApiLiveTest;
import org.jclouds.googlecomputeengine.GoogleComputeEngineApi;
@@ -39,7 +40,6 @@ 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;
public class BaseGoogleComputeEngineApiLiveTest extends BaseApiLiveTest<GoogleComputeEngineApi> {
@@ -57,9 +57,7 @@ public class BaseGoogleComputeEngineApiLiveTest extends BaseApiLiveTest<GoogleCo
protected static final String DISK_TYPE_API_URL_SUFFIX = "/diskTypes/";
protected Supplier<String> userProject;
- protected Predicate<AtomicReference<Operation>> globalOperationDonePredicate;
- protected Predicate<AtomicReference<Operation>> regionOperationDonePredicate;
- protected Predicate<AtomicReference<Operation>> zoneOperationDonePredicate;
+ protected Predicate<AtomicReference<Operation>> operationDone;
public BaseGoogleComputeEngineApiLiveTest() {
provider = "google-compute-engine";
@@ -76,39 +74,25 @@ 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));
- globalOperationDonePredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<AtomicReference<Operation>>>() {
- }, Names.named("global")));
- regionOperationDonePredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<AtomicReference<Operation>>>() {
- }, Names.named("region")));
- zoneOperationDonePredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<AtomicReference<Operation>>>() {
- }, Names.named("zone")));
+ operationDone = injector.getInstance(Key.get(new TypeLiteral<Predicate<AtomicReference<Operation>>>() {
+ }));
return injector.getInstance(GoogleComputeEngineApi.class);
}
- protected void assertGlobalOperationDoneSucessfully(Operation operation, long maxWaitSeconds) {
- operation = waitOperationDone(globalOperationDonePredicate, operation, maxWaitSeconds);
- assertEquals(operation.status(), Operation.Status.DONE);
- assertTrue(operation.errors().isEmpty());
+ protected void assertOperationDoneSuccessfully(Operation operation) {
+ AtomicReference<Operation> ref = Atomics.newReference(checkNotNull(operation, "operation"));
+ checkState(operationDone.apply(ref), "Timeout waiting for operation: %s", operation);
+ assertEquals(ref.get().status(), Operation.Status.DONE);
+ assertTrue(ref.get().errors().isEmpty());
}
- protected void waitGlobalOperationDone(Operation operation, long maxWaitSeconds) {
- waitOperationDone(globalOperationDonePredicate, operation, maxWaitSeconds);
- }
-
- protected void assertRegionOperationDoneSucessfully(Operation operation, long maxWaitSeconds) {
- operation = waitOperationDone(regionOperationDonePredicate, operation, maxWaitSeconds);
- assertEquals(operation.status(), Operation.Status.DONE);
- assertTrue(operation.errors().isEmpty());
- }
-
- protected void assertZoneOperationDoneSuccessfully(@Nullable Operation operation, long maxWaitSeconds) {
- operation = waitOperationDone(zoneOperationDonePredicate, operation, maxWaitSeconds);
- assertEquals(operation.status(), Operation.Status.DONE);
- assertTrue(operation.errors().isEmpty());
- }
-
- protected void waitZoneOperationDone(@Nullable Operation operation, long maxWaitSeconds) {
- waitOperationDone(zoneOperationDonePredicate, operation, maxWaitSeconds);
+ protected void waitOperationDone(@Nullable Operation operation) {
+ if (operation == null) {
+ return;
+ }
+ if (!operationDone.apply(Atomics.newReference(operation))) {
+ Logger.getAnonymousLogger().warning("Timeout waiting for operation: " + operation);
+ }
}
protected URI getDiskTypeUrl(String project, String zone, String diskType){
@@ -147,15 +131,5 @@ public class BaseGoogleComputeEngineApiLiveTest extends BaseApiLiveTest<GoogleCo
protected URI getDiskUrl(String project, String diskName) {
return URI.create(API_URL_PREFIX + project + ZONE_API_URL_SUFFIX + DEFAULT_ZONE_NAME + "/disks/" + diskName);
}
-
- private static Operation waitOperationDone(Predicate<AtomicReference<Operation>> operationDonePredicate,
- @Nullable Operation operation, long maxWaitSeconds) {
- if (operation == null) { // Null can mean a delete op didn't need to occur.
- return null;
- }
- AtomicReference<Operation> operationReference = Atomics.newReference(operation);
- retry(operationDonePredicate, maxWaitSeconds, 1, SECONDS).apply(operationReference);
- return operationReference.get();
- }
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/8895953d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseOperationTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseOperationTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseOperationTest.java
index 75a1d92..4b85a01 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseOperationTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseOperationTest.java
@@ -41,7 +41,7 @@ public class ParseOperationTest extends BaseGoogleComputeEngineParseTest<Operati
URI.create(BASE_URL + "/myproject/zones/us-central1-a/operations/operation-1354084865060-4cf88735faeb8-bbbb12cb"),
"operation-1354084865060-4cf88735faeb8-bbbb12cb", // name
null, // description
- URI.create(BASE_URL + "/myproject/zones/us-central1-a/instances/instance-api-live-test-instance"), // targetLink
+ URI.create(BASE_URL + "/myproject/zones/us-central1-a/instances/test-1"), // targetLink
"13053094017547040099", // targetId
null, // clientOperationId
Operation.Status.DONE, // status
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/8895953d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneOperationTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneOperationTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneOperationTest.java
index 0e5418d..8c2e006 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneOperationTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneOperationTest.java
@@ -41,7 +41,7 @@ public class ParseZoneOperationTest extends BaseGoogleComputeEngineParseTest<Ope
URI.create(BASE_URL + "/myproject/zones/us-central1-a/operations/operation-1354084865060-4cf88735faeb8-bbbb12cb"),
"operation-1354084865060-4cf88735faeb8-bbbb12cb", // name
null, // description
- URI.create(BASE_URL + "/myproject/zones/us-central1-a/instances/instance-api-live-test-instance"),
+ URI.create(BASE_URL + "/myproject/zones/us-central1-a/instances/test-1"),
"13053094017547040099", // targetId
null, // clientOperationId
Operation.Status.DONE, // status
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/8895953d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/predicates/NetworkFirewallPredicatesTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/predicates/NetworkFirewallPredicatesTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/predicates/NetworkFirewallPredicatesTest.java
index f01bdab..52e09d1 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/predicates/NetworkFirewallPredicatesTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/predicates/NetworkFirewallPredicatesTest.java
@@ -17,11 +17,11 @@
package org.jclouds.googlecomputeengine.predicates;
import static org.jclouds.googlecomputeengine.compute.functions.FirewallToIpPermissionTest.fwForTest;
-import static org.jclouds.googlecomputeengine.predicates.NetworkFirewallPredicates.equalsIpPermission;
-import static org.jclouds.googlecomputeengine.predicates.NetworkFirewallPredicates.hasPortRange;
-import static org.jclouds.googlecomputeengine.predicates.NetworkFirewallPredicates.hasSourceRange;
-import static org.jclouds.googlecomputeengine.predicates.NetworkFirewallPredicates.hasSourceTag;
-import static org.jclouds.googlecomputeengine.predicates.NetworkFirewallPredicates.providesIpPermission;
+import static org.jclouds.googlecomputeengine.compute.predicates.NetworkFirewallPredicates.equalsIpPermission;
+import static org.jclouds.googlecomputeengine.compute.predicates.NetworkFirewallPredicates.hasPortRange;
+import static org.jclouds.googlecomputeengine.compute.predicates.NetworkFirewallPredicates.hasSourceRange;
+import static org.jclouds.googlecomputeengine.compute.predicates.NetworkFirewallPredicates.hasSourceTag;
+import static org.jclouds.googlecomputeengine.compute.predicates.NetworkFirewallPredicates.providesIpPermission;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/8895953d/google-compute-engine/src/test/resources/operation.json
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/resources/operation.json b/google-compute-engine/src/test/resources/operation.json
index 7ca83c8..421fb2f 100644
--- a/google-compute-engine/src/test/resources/operation.json
+++ b/google-compute-engine/src/test/resources/operation.json
@@ -3,7 +3,7 @@
"id": "13053095055850848306",
"selfLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/operations/operation-1354084865060-4cf88735faeb8-bbbb12cb",
"name": "operation-1354084865060-4cf88735faeb8-bbbb12cb",
- "targetLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/instance-api-live-test-instance",
+ "targetLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/test-1",
"targetId": "13053094017547040099",
"status": "DONE",
"user": "user@developer.gserviceaccount.com",
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/8895953d/google-compute-engine/src/test/resources/operation_error.json
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/resources/operation_error.json b/google-compute-engine/src/test/resources/operation_error.json
index 157f786..f72e18c 100644
--- a/google-compute-engine/src/test/resources/operation_error.json
+++ b/google-compute-engine/src/test/resources/operation_error.json
@@ -3,7 +3,7 @@
"id": "13053095055850848306",
"selfLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/operations/operation-1354084865060-4cf88735faeb8-bbbb12cb",
"name": "operation-1354084865060-4cf88735faeb8-bbbb12cb",
- "targetLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/instance-api-live-test-instance",
+ "targetLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/test-1",
"targetId": "13053094017547040099",
"status": "DONE",
"user": "user@developer.gserviceaccount.com",
@@ -16,7 +16,7 @@
"errors": [
{
"code": "RESOURCE_ALREADY_EXISTS",
- "message": "The resource 'projects/myproject/zones/us-central1-a/instances/instance-api-live-test-instance' already exists"
+ "message": "The resource 'projects/myproject/zones/us-central1-a/instances/test-1' already exists"
}
]
},
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/8895953d/google-compute-engine/src/test/resources/operation_list.json
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/resources/operation_list.json b/google-compute-engine/src/test/resources/operation_list.json
index c83980d..fd30768 100644
--- a/google-compute-engine/src/test/resources/operation_list.json
+++ b/google-compute-engine/src/test/resources/operation_list.json
@@ -8,7 +8,7 @@
"id": "13053095055850848306",
"selfLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/operations/operation-1354084865060-4cf88735faeb8-bbbb12cb",
"name": "operation-1354084865060-4cf88735faeb8-bbbb12cb",
- "targetLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/instance-api-live-test-instance",
+ "targetLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/test-1",
"targetId": "13053094017547040099",
"status": "DONE",
"user": "user@developer.gserviceaccount.com",
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/8895953d/google-compute-engine/src/test/resources/zone_operation.json
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/resources/zone_operation.json b/google-compute-engine/src/test/resources/zone_operation.json
index c0c5b56..d942086 100644
--- a/google-compute-engine/src/test/resources/zone_operation.json
+++ b/google-compute-engine/src/test/resources/zone_operation.json
@@ -3,7 +3,7 @@
"id": "13053095055850848306",
"selfLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/operations/operation-1354084865060-4cf88735faeb8-bbbb12cb",
"name": "operation-1354084865060-4cf88735faeb8-bbbb12cb",
- "targetLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/instance-api-live-test-instance",
+ "targetLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/test-1",
"targetId": "13053094017547040099",
"status": "DONE",
"user": "user@developer.gserviceaccount.com",
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/8895953d/google-compute-engine/src/test/resources/zone_operation_error.json
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/resources/zone_operation_error.json b/google-compute-engine/src/test/resources/zone_operation_error.json
index d6d054a..a0e6464 100644
--- a/google-compute-engine/src/test/resources/zone_operation_error.json
+++ b/google-compute-engine/src/test/resources/zone_operation_error.json
@@ -3,7 +3,7 @@
"id": "13053095055850848306",
"selfLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/operations/operation-1354084865060-4cf88735faeb8-bbbb12cb",
"name": "operation-1354084865060-4cf88735faeb8-bbbb12cb",
- "targetLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/instance-api-live-test-instance",
+ "targetLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/test-1",
"targetId": "13053094017547040099",
"status": "DONE",
"user": "user@developer.gserviceaccount.com",
@@ -16,7 +16,7 @@
"errors": [
{
"code": "RESOURCE_ALREADY_EXISTS",
- "message": "The resource 'projects/myproject/zones/us-central1-a/instances/instance-api-live-test-instance' already exists"
+ "message": "The resource 'projects/myproject/zones/us-central1-a/instances/test-1' already exists"
}
]
},
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/8895953d/google-compute-engine/src/test/resources/zone_operation_list.json
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/resources/zone_operation_list.json b/google-compute-engine/src/test/resources/zone_operation_list.json
index 77f1656..212c755 100644
--- a/google-compute-engine/src/test/resources/zone_operation_list.json
+++ b/google-compute-engine/src/test/resources/zone_operation_list.json
@@ -8,7 +8,7 @@
"id": "13053095055850848306",
"selfLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/operations/operation-1354084865060-4cf88735faeb8-bbbb12cb",
"name": "operation-1354084865060-4cf88735faeb8-bbbb12cb",
- "targetLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/instance-api-live-test-instance",
+ "targetLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/test-1",
"targetId": "13053094017547040099",
"status": "DONE",
"user": "user@developer.gserviceaccount.com",