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/13 19:01:50 UTC

[jclouds-labs-google] Dedupe code between google cloud products. (#93)

There were a lot of copy/paste errors between google cloud storage and google compute engine. This change extracts the items common between the apis, particularly aspects such as how to specify the default project, and how list page works.
You can merge this Pull Request by running:

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

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

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

-- Commit Summary --

  * Dedupe code between google cloud products.

-- File Changes --

    M google-cloud-storage/README.md (38)
    M google-cloud-storage/pom.xml (253)
    M google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/GoogleCloudStorageApiMetadata.java (35)
    M google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/GoogleCloudStorageFallbacks.java (18)
    A google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/GoogleCloudStorageProviderMetadata.java (72)
    M google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GCSBlobStore.java (13)
    R google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/config/GoogleCloudStorageBlobStoreContextModule.java (7)
    M google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectListToStorageMetadata.java (9)
    M google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/MultipartUploadSlicingAlgorithm.java (9)
    M google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/GoogleCloudStorageHttpApiModule.java (40)
    M google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/GoogleCloudStorageParserModule.java (9)
    D google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/UserProject.java (33)
    M google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/Bucket.java (4)
    M google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/GCSObject.java (2)
    R google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ListPageWithPrefixes.java (13)
    M google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java (5)
    M google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java (13)
    M google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/GoogleCloudStorageRedirectRetryHandler.java (1)
    D google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/internal/NullSafeCopies.java (39)
    M google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/options/ListOptions.java (8)
    M google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/parser/ParseToPayloadEnclosing.java (1)
    M google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/reference/GoogleCloudStorageConstants.java (2)
    R google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/GoogleCloudStorageProviderMetadataTest.java (24)
    M google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GCSBlobIntegrationLiveTest.java (16)
    M google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GCSBlobLiveTest.java (6)
    M google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GCSContainerIntegrationLiveTest.java (7)
    M google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GCSContainerLiveTest.java (7)
    M google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java (5)
    M google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java (3)
    M google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java (6)
    M google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/internal/BaseGoogleCloudStorageApiExpectTest.java (3)
    M google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/internal/BaseGoogleCloudStorageApiLiveTest.java (17)
    M google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/internal/BaseGoogleCloudStorageExpectTest.java (21)
    M google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/internal/BaseGoogleCloudStorageParseTest.java (3)
    M google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/FullBucketGetTest.java (2)
    M google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketListTest.java (5)
    A google-cloud-storage/src/test/resources/logback.xml (83)
    M google-compute-engine/pom.xml (8)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineApi.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineApiMetadata.java (6)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineService.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceAdapter.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/extensions/GoogleComputeEngineSecurityGroupExtension.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroup.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/config/GoogleComputeEngineHttpApiModule.java (12)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/config/GoogleComputeEngineParserModule.java (86)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/config/GoogleComputeEngineProperties.java (21)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Firewall.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Instance.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/MachineType.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Operation.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Project.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Region.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Route.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/TargetPool.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/Zone.java (2)
    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/AggregatedListApi.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/DiskApi.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/DiskTypeApi.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/FirewallApi.java (4)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ForwardingRuleApi.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/HttpHealthCheckApi.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ImageApi.java (4)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/InstanceApi.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/OperationApi.java (4)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RouteApi.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/SnapshotApi.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/TargetPoolApi.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneApi.java (2)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/internal/BaseArg0ToIteratorOfListPage.java (42)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/internal/BaseCallerArg0ToIteratorOfListPage.java (42)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/internal/BaseToIteratorOfListPage.java (33)
    M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/options/ListOptions.java (11)
    D google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/GoogleComputeEngineAuthenticatedRestContextLiveTest.java (40)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/GoogleComputeEngineProviderMetadataTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceLiveTest.java (4)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/extensions/GoogleComputeEngineSecurityGroupExtensionLiveTest.java (4)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroupTest.java (4)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/config/UseApiToResolveProjectNameMockTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AddressApiLiveTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AggregatedListApiLiveTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiLiveTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskTypeApiLiveTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/FirewallApiLiveTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ForwardingRuleApiLiveTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/HttpHealthCheckApiLiveTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ImageApiLiveTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/InstanceApiLiveTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/MachineTypeApiLiveTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/NetworkApiLiveTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/OperationApiExpectTest.java (7)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/OperationApiLiveTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionApiLiveTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RouteApiLiveTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiLiveTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiLiveTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiLiveTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiLiveTest.java (8)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiMockTest.java (4)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineExpectTest.java (2)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/ToIteratorOfListPageExpectTest.java (21)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseAddressListTest.java (5)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskListTest.java (5)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskTypeListTest.java (5)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseFirewallListTest.java (5)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseForwardingRuleListTest.java (5)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseGlobalOperationListTest.java (5)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseHttpHealthCheckListTest.java (5)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageListTest.java (5)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceListTest.java (5)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeListTest.java (5)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkListTest.java (5)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionListTest.java (5)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteListTest.java (5)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotListTest.java (5)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetPoolListTest.java (5)
    M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneListTest.java (5)
    A googlecloud/pom.xml (62)
    R googlecloud/src/main/java/org/jclouds/googlecloud/config/CurrentProject.java (21)
    A googlecloud/src/main/java/org/jclouds/googlecloud/config/GoogleCloudProperties.java (40)
    A googlecloud/src/main/java/org/jclouds/googlecloud/config/ListPageAdapterFactory.java (109)
    R googlecloud/src/main/java/org/jclouds/googlecloud/domain/ForwardingListPage.java (22)
    R googlecloud/src/main/java/org/jclouds/googlecloud/domain/ListPage.java (23)
    R googlecloud/src/main/java/org/jclouds/googlecloud/internal/AdvancingIterator.java (4)
    A googlecloud/src/main/java/org/jclouds/googlecloud/internal/BaseArg0ToIteratorOfListPage.java (58)
    A googlecloud/src/main/java/org/jclouds/googlecloud/internal/BaseCallerArg0ToIteratorOfListPage.java (58)
    A googlecloud/src/main/java/org/jclouds/googlecloud/internal/BaseToIteratorOfListPage.java (49)
    R googlecloud/src/main/java/org/jclouds/googlecloud/internal/ListPages.java (11)
    R googlecloud/src/main/java/org/jclouds/googlecloud/internal/NullSafeCopies.java (2)
    R googlecloud/src/main/java/org/jclouds/googlecloud/options/ListOptions.java (19)
    R googlecloud/src/test/java/org/jclouds/googlecloud/internal/TestProperties.java (44)
    M oauth/src/test/java/org/jclouds/oauth/v2/OAuthTestUtils.java (1)
    M pom.xml (1)

-- Patch Links --

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

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

Re: [jclouds-labs-google] Dedupe code between google cloud products. (#93)

Posted by Adrian Cole <no...@github.com>.
new lines are largely due to another pom.xml and logback file, and license header from an extracted class. Logic-wise, there's less.

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

Re: [jclouds-labs-google] Dedupe code between google cloud products. (#93)

Posted by Adrian Cole <no...@github.com>.
@nacx @ccustine @danbroudy heads up; I need this to finish up google storage without wanting to fork my eyes

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

Re: [jclouds-labs-google] Dedupe code between google cloud products. (#93)

Posted by BuildHive <no...@github.com>.
[jclouds » jclouds-labs-google #1712](https://buildhive.cloudbees.com/job/jclouds/job/jclouds-labs-google/1712/) 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/93#issuecomment-62939055

Re: [jclouds-labs-google] Dedupe code between google cloud products. (#93)

Posted by Adrian Cole <no...@github.com>.
thx for the look, @ccustine.

OK, I think I can work on cloud storage without disrupting GCE now.

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

Re: [jclouds-labs-google] Dedupe code between google cloud products. (#93)

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

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

Re: [jclouds-labs-google] Dedupe code between google cloud products. (#93)

Posted by Adrian Cole <no...@github.com>.
same live tests results in GCE as before:

```
Results :

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

Tests run: 115, Failures: 3, Errors: 0, Skipped: 13
```

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

Re: [jclouds-labs-google] Dedupe code between google cloud products. (#93)

Posted by BuildHive <no...@github.com>.
[jclouds » jclouds-labs-google #1711](https://buildhive.cloudbees.com/job/jclouds/job/jclouds-labs-google/1711/) 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/93#issuecomment-62938148

Re: [jclouds-labs-google] Dedupe code between google cloud products. (#93)

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

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

Re: [jclouds-labs-google] Dedupe code between google cloud products. (#93)

Posted by Adrian Cole <no...@github.com>.
> @@ -61,25 +52,12 @@ protected void bindErrorHandlers() {
>     }
>  
>     @Provides
> -   @Singleton
> -   @UserProject
> -   public Supplier<String> supplyProject(@Provider final Supplier<Credentials> creds, final GoogleCloudStorageApi api,
> -            AtomicReference<AuthorizationException> authException, @Named(PROPERTY_SESSION_INTERVAL) long seconds) {
> -      return MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException,

this was absolutely senseless. we don't need to guard authorization errors when only parsing a string!

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

Re: [jclouds-labs-google] Dedupe code between google cloud products. (#93)

Posted by Adrian Cole <no...@github.com>.
GCS has a similar amount of live test errors as before. As soon as this is in, I'll get to the bottom of them.

{code}
Results :

Failed tests: 
  GCSBlobIntegrationLiveTest>BaseBlobIntegrationTest.testPutIncorrectContentMD5:271 null
  BucketAccessControlsApiLiveTest.testCreateBucketAcl:49->createBucket:43 » NullPointer
  BucketApiLiveTest.testCreateBucket:69 » NullPointer param{project} for invocat...
  BucketApiLiveTest.testCreateBucketWithOptions:119 » NullPointer param{project}...
  DefaultObjectAccessControlsApiLiveTest.testCreateDefaultObjectAcl:49->createBucket:43 » NullPointer
  ObjectApiLiveTest.createBucket:94 » NullPointer param{project} for invocation ...
  GCSContainerIntegrationLiveTest>BaseContainerIntegrationTest.deleteContainerWithoutContents:292->BaseBlobStoreIntegrationTest.recycleContainerAndAddToPool:494->BaseBlobStoreIntegrationTest.recycleContainer:500->BaseBlobStoreIntegrationTest.createContainerAndEnsureEmpty:260->BaseBlobStoreIntegrationTest.createContainerAndEnsureEmpty:253 » HttpResponse
  GCSContainerIntegrationLiveTest>BaseContainerIntegrationTest.deleteContainerIfEmptyWithoutContents:315 » ResourceNotFound

Tests run: 101, Failures: 8, Errors: 0, Skipped: 55
{code}

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