Eventhough we had an implicit project name supplier, we still ask users to supply a project name for every command. This made operations that are simple require parameters, and was incongruent with existing GCE tools, all of which allow you to specify a current project.
Now, simple usage is very clean and easy to understand. Ex. ```java api.instances().create(NewInstance.create("foo", machineType, network, sourceImage)); // or api.instancesInZone("us-central1-f").list(); ``` While implementing this, I also found a way to remove looking up the project name via the api. As an alternative similar to keystone tenant. You can simply supply a property when creating the context, saying your project name. For example, ours is `jclouds-dev`, so I'd set it like below. ```java overrides.setProperty("jclouds.google-compute-engine.project-name", "jclouds-dev"); ``` Finally, I noticed our test setup was rather screwed up, as there are several places we have to remember to add Bearer token support or similar. That's now fixed. You can merge this Pull Request by running: git pull https://github.com/adriancole/jclouds-labs-google adrian.gce-default-project Or you can view, comment on it, or merge it online at: https://github.com/jclouds/jclouds-labs-google/pull/88 -- Commit Summary -- * Removed the need for users to manually specify the current project name everywhere. Adjusted test configuration to allow bearer token properly. -- File Changes -- R google-compute-engine/README.md (9) M google-compute-engine/pom.xml (26) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineApi.java (215) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineApiMetadata.java (26) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineService.java (11) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceAdapter.java (23) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/config/GoogleComputeEngineServiceContextModule.java (4) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/extensions/GoogleComputeEngineSecurityGroupExtension.java (36) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/functions/CreateNetworkIfNeeded.java (15) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/functions/FindNetworkOrCreate.java (9) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroup.java (13) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/functions/Resources.java (4) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/compute/strategy/CreateNodesWithGroupEncodedIntoNameThenAddToSet.java (8) R google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/config/CurrentProject.java (6) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/config/GoogleComputeEngineHttpApiModule.java (106) A google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/config/GoogleComputeEngineProperties.java (52) R google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/config/GoogleComputeEngineScopes.java (21) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/domain/NewInstance.java (22) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/AddressApi.java (4) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/AggregatedListApi.java (6) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/DiskApi.java (4) 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 (4) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/HttpHealthCheckApi.java (4) 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 (4) 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 (4) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/OperationApi.java (33) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ProjectApi.java (19) 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 (4) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/SnapshotApi.java (4) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/TargetPoolApi.java (4) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneApi.java (2) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseWithRegionToIteratorOfListPage.java (14) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/BaseWithZoneToIteratorOfListPage.java (14) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseAddresses.java (6) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseDiskTypes.java (6) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseDisks.java (4) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseFirewalls.java (2) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseForwardingRules.java (5) 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/ParseHttpHealthChecks.java (2) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseImages.java (45) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseInstances.java (4) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseMachineTypes.java (6) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseNetworks.java (2) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseRegionOperations.java (10) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseRegions.java (2) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseRoutes.java (2) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseSnapshots.java (2) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseTargetPools.java (7) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseZoneOperations.java (8) M google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseZones.java (2) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/GoogleComputeEngineAuthenticatedRestContextLiveTest.java (10) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceLiveTest.java (22) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceMockTest.java (19) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/extensions/GoogleComputeEngineSecurityGroupExtensionLiveTest.java (7) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/CreateNetworkIfNeededTest.java (20) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FindNetworkOrCreateTest.java (15) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroupTest.java (9) A google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/config/UseApiToResolveProjectNameMockTest.java (76) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AddressApiExpectTest.java (18) 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/AggregatedListApiMockTest.java (8) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiExpectTest.java (26) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiLiveTest.java (10) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskTypeApiExpectTest.java (11) 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/FirewallApiExpectTest.java (22) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/FirewallApiLiveTest.java (14) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ForwardingRuleApiExpectTest.java (20) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ForwardingRuleApiLiveTest.java (6) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/HttpHealthCheckApiExpectTest.java (28) 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/ImageApiExpectTest.java (91) 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/InstanceApiExpectTest.java (53) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/InstanceApiLiveTest.java (20) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/MachineTypeApiExpectTest.java (12) 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/NetworkApiExpectTest.java (18) 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 (30) 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/ProjectApiExpectTest.java (17) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ProjectApiLiveTest.java (70) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionApiExpectTest.java (10) 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/RouteApiExpectTest.java (18) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RouteApiLiveTest.java (12) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiExpectTest.java (10) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiLiveTest.java (4) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiExpectTest.java (40) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiLiveTest.java (25) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiExpectTest.java (10) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiLiveTest.java (2) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/functions/internal/ToIteratorOfListPageExpectTest.java (11) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiLiveTest.java (61) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiMockTest.java (17) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineExpectTest.java (21) A google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/TestProperties.java (58) M google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseProjectTest.java (2) M google-compute-engine/src/test/resources/instance_insert_simple.json (2) M google-compute-engine/src/test/resources/project.json (2) -- Patch Links -- https://github.com/jclouds/jclouds-labs-google/pull/88.patch https://github.com/jclouds/jclouds-labs-google/pull/88.diff --- Reply to this email directly or view it on GitHub: https://github.com/jclouds/jclouds-labs-google/pull/88