You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jclouds.apache.org by Adrian Cole <no...@github.com> on 2014/11/07 03:17:40 UTC

[jclouds-labs-google] Consolidate operation state management. (#83)

Before, tracking state of operations was really confusing. This change makes a break with the documentation, which calls out region, global, and zone ops separately. Using one api for all operations makes it easier to grok what the code is doing, as well keep things more organized.
You can merge this Pull Request by running:

  git pull https://github.com/adriancole/jclouds-labs-google adrian.one-op

Or you can view, comment on it, or merge it online at:

  https://github.com/jclouds/jclouds-labs-google/pull/83

-- Commit Summary --

  * Consolidate operation state management.

-- File Changes --

    M google-compute-engine/pom.xml (1)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineApi.java (51)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineService.java (34)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceAdapter.java (71)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/config/GoogleComputeEngineServiceContextModule.java (23)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/extensions/GoogleComputeEngineSecurityGroupExtension.java (41)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/functions/CreateNetworkIfNeeded.java (31)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/functions/FirewallTagNamingConvention.java (8)
    A google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/functions/ResourceFunctions.java (55)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/predicates/AllNodesInGroupTerminated.java (13)
    R google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/predicates/AtomicInstanceVisible.java (31)
    R google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/predicates/AtomicOperationDone.java (27)
    R google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/predicates/NetworkFirewallPredicates.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/strategy/CreateNodesWithGroupEncodedIntoNameThenAddToSet.java (26)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/config/GoogleComputeEngineHttpApiModule.java (21)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Tags.java (4)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/AddressApi.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/FirewallApi.java (6)
    D google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/GlobalOperationApi.java (110)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/InstanceApi.java (4)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java (4)
    A google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/OperationApi.java (198)
    D google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionOperationApi.java (110)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RouteApi.java (2)
    D google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneOperationApi.java (110)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseWithRegionToIteratorOfListPage.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseWithZoneToIteratorOfListPage.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseGlobalOperations.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseRegionOperations.java (23)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseZoneOperations.java (23)
    D google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/RegionOperationDonePredicate.java (62)
    D google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/ZoneOperationDonePredicate.java (65)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceExpectTest.java (32)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/CreateNetworkIfNeededTest.java (53)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FindNetworkOrCreateTest.java (60)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/GoogleComputeEngineImageToImageTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroupTest.java (8)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/OrphanedGroupsFromDeadNodesTest.java (22)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AddressApiLiveTest.java (8)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiLiveTest.java (9)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/FirewallApiLiveTest.java (29)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ForwardingRuleApiLiveTest.java (19)
    D google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/GlobalOperationApiExpectTest.java (157)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/HttpHealthCheckApiLiveTest.java (10)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ImageApiLiveTest.java (9)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/InstanceApiLiveTest.java (54)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/NetworkApiLiveTest.java (5)
    A google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/OperationApiExpectTest.java (294)
    R google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/OperationApiLiveTest.java (46)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ProjectApiLiveTest.java (12)
    D google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiExpectTest.java (168)
    D google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiLiveTest.java (64)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RouteApiLiveTest.java (15)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiLiveTest.java (9)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiExpectTest.java (15)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiLiveTest.java (45)
    D google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java (170)
    D google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiLiveTest.java (64)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiLiveTest.java (62)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseOperationTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneOperationTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/predicates/NetworkFirewallPredicatesTest.java (10)
    M google-compute-engine/src/test/resources/operation.json (2)
    M google-compute-engine/src/test/resources/operation_error.json (4)
    M google-compute-engine/src/test/resources/operation_list.json (2)
    M google-compute-engine/src/test/resources/zone_operation.json (2)
    M google-compute-engine/src/test/resources/zone_operation_error.json (4)
    M google-compute-engine/src/test/resources/zone_operation_list.json (2)

-- Patch Links --

https://github.com/jclouds/jclouds-labs-google/pull/83.patch
https://github.com/jclouds/jclouds-labs-google/pull/83.diff

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-google/pull/83

Re: [jclouds-labs-google] Consolidate operation state management. (#83)

Posted by Adrian Cole <no...@github.com>.
Closed #83.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-google/pull/83#event-189991824

Re: [jclouds-labs-google] Consolidate operation state management. (#83)

Posted by Adrian Cole <no...@github.com>.
going to merge, as this is important work I need to finish the core infra stuff I'm on (and stop thrashing)

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-google/pull/83#issuecomment-62165170

Re: [jclouds-labs-google] Consolidate operation state management. (#83)

Posted by BuildHive <no...@github.com>.
[jclouds » jclouds-labs-google #1653](https://buildhive.cloudbees.com/job/jclouds/job/jclouds-labs-google/1653/) SUCCESS
This pull request looks good
[(what's this?)](https://www.cloudbees.com/what-is-buildhive)

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-google/pull/83#issuecomment-62087216

Re: [jclouds-labs-google] Consolidate operation state management. (#83)

Posted by BuildHive <no...@github.com>.
[jclouds » jclouds-labs-google #1654](https://buildhive.cloudbees.com/job/jclouds/job/jclouds-labs-google/1654/) SUCCESS
This pull request looks good
[(what's this?)](https://www.cloudbees.com/what-is-buildhive)

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-google/pull/83#issuecomment-62096377

Re: [jclouds-labs-google] Consolidate operation state management. (#83)

Posted by CloudBees pull request builder plugin <no...@github.com>.
[jclouds-labs-google-pull-requests #242](https://jclouds.ci.cloudbees.com/job/jclouds-labs-google-pull-requests/242/) SUCCESS
This pull request looks good

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-google/pull/83#issuecomment-62086695

Re: [jclouds-labs-google] Consolidate operation state management. (#83)

Posted by CloudBees pull request builder plugin <no...@github.com>.
[jclouds-labs-google-pull-requests #241](https://jclouds.ci.cloudbees.com/job/jclouds-labs-google-pull-requests/241/) SUCCESS
This pull request looks good

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-google/pull/83#issuecomment-62086469

Re: [jclouds-labs-google] Consolidate operation state management. (#83)

Posted by BuildHive <no...@github.com>.
[jclouds » jclouds-labs-google #1652](https://buildhive.cloudbees.com/job/jclouds/job/jclouds-labs-google/1652/) SUCCESS
This pull request looks good
[(what's this?)](https://www.cloudbees.com/what-is-buildhive)

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-google/pull/83#issuecomment-62086851

Re: [jclouds-labs-google] Consolidate operation state management. (#83)

Posted by Adrian Cole <no...@github.com>.
Live test results are best I've seen.

```java
Results :

Failed tests: 
  GoogleComputeEngineServiceLiveTest>BaseComputeServiceLiveTest.testCreateAndRunAService:706->BaseComputeServiceLiveTest.createAndRunAServiceInGroup:723 » RunNodes
  GoogleComputeEngineServiceLiveTest>BaseComputeServiceLiveTest.testAScriptExecutionAfterBootWithBasicTemplate:223 » RunNodes
  GoogleComputeEngineServiceLiveTest>BaseComputeServiceLiveTest.testConcurrentUseOfComputeServiceToCreateNodes:475 » Execution

Tests run: 116, Failures: 3, Errors: 0, Skipped: 17
```

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-google/pull/83#issuecomment-62088959

Re: [jclouds-labs-google] Consolidate operation state management. (#83)

Posted by Adrian Cole <no...@github.com>.
> @@ -125,6 +125,7 @@
>                                      <goal>test</goal>
>                                  </goals>
>                                  <configuration>
> +                                    <threadCount>1</threadCount>

this should help folks not get confused as much with parallel live tests.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-google/pull/83/files#r19991553

Re: [jclouds-labs-google] Consolidate operation state management. (#83)

Posted by Adrian Cole <no...@github.com>.
>     }
>  
>     @Override public boolean apply(AtomicReference<Operation> input) {
> -      checkNotNull(input, "input");
> -      Operation current = api.getGlobalOperationApi(project.get()).get(input.get().name());
> +      checkNotNull(input.get(), "operation");
> +      Operation current = resources.operation(input.get().selfLink());
> +      input.set(current);
> +      checkState(current.errors().isEmpty(), "Task ended in error %s", current); // ISE will break the loop.

this will break the retry loop!

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-google/pull/83/files#r19991579

Re: [jclouds-labs-google] Consolidate operation state management. (#83)

Posted by Chris Custine <no...@github.com>.
I checked this all out last night but forgot to +1 it.  LGTM, and I will take a look at these last 3 tests today when I get a chance.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-google/pull/83#issuecomment-62173651

Re: [jclouds-labs-google] Consolidate operation state management. (#83)

Posted by CloudBees pull request builder plugin <no...@github.com>.
[jclouds-labs-google-pull-requests #243](https://jclouds.ci.cloudbees.com/job/jclouds-labs-google-pull-requests/243/) SUCCESS
This pull request looks good

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-google/pull/83#issuecomment-62096193