You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ga...@apache.org on 2014/10/06 19:26:37 UTC
git commit: Introduce BucketAccessControlTemplate
Repository: jclouds-labs-google
Updated Branches:
refs/heads/master 44e841132 -> fda802a50
Introduce BucketAccessControlTemplate
Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/commit/fda802a5
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/tree/fda802a5
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/diff/fda802a5
Branch: refs/heads/master
Commit: fda802a506d14cf6c22881a0d5912b6c4a816a1f
Parents: 44e8411
Author: hsbhathiya <hs...@gmail.com>
Authored: Mon Oct 6 07:37:02 2014 +0530
Committer: Andrew Gaul <ga...@apache.org>
Committed: Sun Oct 5 22:52:15 2014 -0700
----------------------------------------------------------------------
.../binders/BucketAccessControlsBinder.java | 5 +-
.../templates/BucketAccessControlsTemplate.java | 65 ++++++++++++++++++++
.../features/BucketAccessControlsApi.java | 19 +++---
.../BucketAccessControlsApiExpectTest.java | 38 +++++-------
.../BucketAccessControlsApiLiveTest.java | 14 ++---
.../resources/bucket_acl_insert_initial.json | 4 ++
.../resources/bucket_acl_update_initial.json | 9 +--
.../bucket_insert_request_payload.json | 2 +-
8 files changed, 105 insertions(+), 51 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/fda802a5/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketAccessControlsBinder.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketAccessControlsBinder.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketAccessControlsBinder.java
index ffa9959..94cd73f 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketAccessControlsBinder.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketAccessControlsBinder.java
@@ -19,7 +19,8 @@ package org.jclouds.googlecloudstorage.binders;
import java.util.Map;
import javax.inject.Inject;
-import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
+
+import org.jclouds.googlecloudstorage.domain.templates.BucketAccessControlsTemplate;
import org.jclouds.http.HttpRequest;
import org.jclouds.rest.MapBinder;
import org.jclouds.rest.binders.BindToJsonPayload;
@@ -31,7 +32,7 @@ public class BucketAccessControlsBinder implements MapBinder {
@Override
public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) {
- BucketAccessControls postBucket = (BucketAccessControls) postParams.get("BACLInsert");
+ BucketAccessControlsTemplate postBucket = (BucketAccessControlsTemplate) postParams.get("template");
return bindToRequest(request, postBucket);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/fda802a5/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketAccessControlsTemplate.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketAccessControlsTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketAccessControlsTemplate.java
new file mode 100644
index 0000000..3d62b76
--- /dev/null
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketAccessControlsTemplate.java
@@ -0,0 +1,65 @@
+/*
+ * 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.googlecloudstorage.domain.templates;
+
+import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
+
+/**
+ * Represents a Object Access Control Resource.
+ *
+ * @see <a href= "https://developers.google.com/storage/docs/json_api/v1/objectAccessControls"/>
+ */
+public class BucketAccessControlsTemplate {
+
+ protected String entity;
+ protected Role role;
+
+ public BucketAccessControlsTemplate role(Role role) {
+ this.role = role;
+ return this;
+ }
+
+ public BucketAccessControlsTemplate entity(String entity) {
+ this.entity = entity;
+ return this;
+ }
+
+ public String getEntity() {
+ return entity;
+ }
+
+ public Role getRole() {
+ return role;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static BucketAccessControlsTemplate fromObjectAccessControlsTemplate(
+ BucketAccessControlsTemplate objectAccessControlsTemplate) {
+ return Builder.fromObjectAccessControlsTemplate(objectAccessControlsTemplate);
+ }
+
+ public static class Builder {
+
+ public static BucketAccessControlsTemplate fromObjectAccessControlsTemplate(BucketAccessControlsTemplate in) {
+ return new BucketAccessControlsTemplate().role(in.getRole()).entity(in.getEntity());
+ }
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/fda802a5/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java
index 007073c..34d090c 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java
@@ -33,6 +33,7 @@ import org.jclouds.Fallbacks.NullOnNotFoundOr404;
import org.jclouds.googlecloudstorage.binders.BucketAccessControlsBinder;
import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
import org.jclouds.googlecloudstorage.domain.ListBucketAccessControls;
+import org.jclouds.googlecloudstorage.domain.templates.BucketAccessControlsTemplate;
import org.jclouds.http.HttpResponse;
import org.jclouds.javax.annotation.Nullable;
import org.jclouds.oauth.v2.config.OAuthScopes;
@@ -84,8 +85,8 @@ public interface BucketAccessControlsApi {
* @param bucketName
* Name of the bucket of which ACL to be created
*
- * @param bucketAccessControls
- * In the request body,supply a BucketAccessControls resource with role and entity
+ * @param template
+ * In the request body,supply a {@link BucketAccessControlsTemplate} resource with role and entity
*
* @return If successful, this method returns a BucketAccessControls resource in the response body
*/
@@ -97,7 +98,7 @@ public interface BucketAccessControlsApi {
@OAuthScopes(STORAGE_FULLCONTROL_SCOPE)
@MapBinder(BucketAccessControlsBinder.class)
BucketAccessControls createBucketAccessControls(@PathParam("bucket") String bucketName,
- @PayloadParam("BACLInsert") BucketAccessControls bucketAccessControls);
+ @PayloadParam("template") BucketAccessControlsTemplate template);
/**
* Permanently deletes the ACL entry for the specified entity on the specified bucket.
@@ -143,9 +144,9 @@ public interface BucketAccessControlsApi {
* @param entity
* The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId,
* group-emailAddress, allUsers, or allAuthenticatedUsers. In the request body, supply a
- * BucketAccessControls resource with role
+ * {@link BucketAccessControlsTemplate} resource with role
*
- * @return If successful, this method returns a BucketAccessControls resource in the response body
+ * @return If successful, this method returns a {@link BucketAccessControlsTemplate} resource in the response body
*/
@Named("BucketAccessControls:update")
@@ -157,7 +158,7 @@ public interface BucketAccessControlsApi {
@Fallback(NullOnNotFoundOr404.class)
BucketAccessControls updateBucketAccessControls(@PathParam("bucket") String bucketName,
@PathParam("entity") String entity,
- @BinderParam(BindToJsonPayload.class) BucketAccessControls bucketAccessControls);
+ @BinderParam(BindToJsonPayload.class) BucketAccessControlsTemplate template);
/**
* Updates an ACL entry on the specified bucket.
@@ -168,8 +169,8 @@ public interface BucketAccessControlsApi {
* The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId,
* group-emailAddress, allUsers, or allAuthenticatedUsers
*
- * @param bucketAccessControls
- * In the request body, supply a BucketAccessControls resource with role
+ * @param template
+ * In the request body, supply a {@link BucketAccessControlsTemplate} resource with role
*
* @return If successful, this method returns a BucketAccessControls resource in the response body
*/
@@ -183,5 +184,5 @@ public interface BucketAccessControlsApi {
@Fallback(NullOnNotFoundOr404.class)
BucketAccessControls patchBucketAccessControls(@PathParam("bucket") String bucketName,
@PathParam("entity") String entity,
- @BinderParam(BindToJsonPayload.class) BucketAccessControls bucketAccessControls);
+ @BinderParam(BindToJsonPayload.class) BucketAccessControlsTemplate template);
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/fda802a5/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java
index 1638832..da61901 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java
@@ -21,12 +21,10 @@ import static org.jclouds.googlecloudstorage.reference.GoogleCloudStorageConstan
import static org.testng.Assert.assertEquals;
import static org.testng.AssertJUnit.assertNull;
-import java.net.URI;
-
import javax.ws.rs.core.MediaType;
-import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
+import org.jclouds.googlecloudstorage.domain.templates.BucketAccessControlsTemplate;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiExpectTest;
import org.jclouds.googlecloudstorage.parse.BucketAclGetTest;
import org.jclouds.googlecloudstorage.parse.BucketAclInsertTest;
@@ -48,7 +46,7 @@ public class BucketAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
private final HttpResponse GET_BUCKETACL_RESPONSE = HttpResponse.builder().statusCode(200)
.payload(staticPayloadFromResource("/bucket_acl_get.json")).build();
- private final HttpResponse CREATE_BUCKETACL_RESPONSE = HttpResponse.builder().statusCode(200)
+ private final HttpResponse CREATE_BUCKETACL_RESPONSE = HttpResponse.builder().statusCode(200)
.payload(staticPayloadFromResource("/bucket_acl_insert_response.json")).build();
private final HttpRequest LIST_BUCKETACL_REQUEST = HttpRequest.builder().method("GET")
@@ -105,20 +103,16 @@ public class BucketAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
.endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/acl")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
- .payload(payloadFromResourceWithContentType("/bucket_acl_insert_response.json",
+ .payload(payloadFromResourceWithContentType("/bucket_acl_insert_initial.json",
MediaType.APPLICATION_JSON)).build();
BucketAccessControlsApi api = requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), TOKEN_RESPONSE,
insertRequest, CREATE_BUCKETACL_RESPONSE).getBucketAccessControlsApi();
- BucketAccessControls options = BucketAccessControls
- .builder()
- .id("jcloudtestbucket/allAuthenticatedUsers")
- .selfLink(
- URI.create("https://content.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allAuthenticatedUsers"))
- .bucket(EXPECTED_TEST_BUCKET).entity("allAuthenticatedUsers").role(Role.WRITER).etag("CAQ=").build();
+ BucketAccessControlsTemplate template = new BucketAccessControlsTemplate().entity("allAuthenticatedUsers").role(
+ Role.WRITER);
- assertEquals(api.createBucketAccessControls(EXPECTED_TEST_BUCKET, options), new BucketAclInsertTest().expected());
+ assertEquals(api.createBucketAccessControls(EXPECTED_TEST_BUCKET, template), new BucketAclInsertTest().expected());
}
@@ -157,20 +151,18 @@ public class BucketAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
.endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allUsers")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
- .payload(payloadFromResourceWithContentType("/bucket_acl_update_response.json",
+ .payload(payloadFromResourceWithContentType("/bucket_acl_update_initial.json",
MediaType.APPLICATION_JSON)).build();
HttpResponse updateResponse = HttpResponse.builder().statusCode(200)
- .payload(staticPayloadFromResource("/bucket_acl_update_initial.json")).build();
+ .payload(staticPayloadFromResource("/bucket_acl_update_response.json")).build();
BucketAccessControlsApi api = requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), TOKEN_RESPONSE,
update, updateResponse).getBucketAccessControlsApi();
- BucketAccessControls options = BucketAccessControls.builder().id("jcloudtestbucket/allUsers")
- .selfLink(URI.create("https://content.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allUsers"))
- .bucket(EXPECTED_TEST_BUCKET).entity("allUsers").role(Role.OWNER).etag("CAg=").build();
+ BucketAccessControlsTemplate template = new BucketAccessControlsTemplate().entity("allUsers").role(Role.OWNER);
- assertEquals(api.updateBucketAccessControls(EXPECTED_TEST_BUCKET, "allUsers", options),
+ assertEquals(api.updateBucketAccessControls(EXPECTED_TEST_BUCKET, "allUsers", template),
new BucketAclUpdateTest().expected());
}
@@ -182,20 +174,18 @@ public class BucketAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
.endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allUsers")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
- .payload(payloadFromResourceWithContentType("/bucket_acl_update_response.json",
+ .payload(payloadFromResourceWithContentType("/bucket_acl_update_initial.json",
MediaType.APPLICATION_JSON)).build();
HttpResponse patchResponse = HttpResponse.builder().statusCode(200)
- .payload(staticPayloadFromResource("/bucket_acl_update_initial.json")).build();
+ .payload(staticPayloadFromResource("/bucket_acl_update_response.json")).build();
BucketAccessControlsApi api = requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), TOKEN_RESPONSE,
patchRequest, patchResponse).getBucketAccessControlsApi();
- BucketAccessControls options = BucketAccessControls.builder().id("jcloudtestbucket/allUsers")
- .selfLink(URI.create("https://content.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allUsers"))
- .bucket(EXPECTED_TEST_BUCKET).entity("allUsers").role(Role.OWNER).etag("CAg=").build();
+ BucketAccessControlsTemplate template = new BucketAccessControlsTemplate().entity("allUsers").role(Role.OWNER);
- assertEquals(api.patchBucketAccessControls(EXPECTED_TEST_BUCKET, "allUsers", options),
+ assertEquals(api.patchBucketAccessControls(EXPECTED_TEST_BUCKET, "allUsers", template),
new BucketAclUpdateTest().expected());
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/fda802a5/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java
index 3fe7fa8..93b2268 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java
@@ -26,6 +26,7 @@ import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Role;
import org.jclouds.googlecloudstorage.domain.ListBucketAccessControls;
import org.jclouds.googlecloudstorage.domain.Resource.Kind;
+import org.jclouds.googlecloudstorage.domain.templates.BucketAccessControlsTemplate;
import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiLiveTest;
import org.testng.annotations.Test;
@@ -47,8 +48,7 @@ public class BucketAccessControlsApiLiveTest extends BaseGoogleCloudStorageApiLi
@Test(groups = "live")
public void testCreateBucketAcl() {
createBucket(BUCKET_NAME);
- BucketAccessControls bucketAcl = BucketAccessControls.builder().bucket(BUCKET_NAME).entity("allUsers")
- .role(Role.READER).build();
+ BucketAccessControlsTemplate bucketAcl = new BucketAccessControlsTemplate().entity("allUsers").role(Role.READER);
BucketAccessControls response = api().createBucketAccessControls(BUCKET_NAME, bucketAcl);
assertNotNull(response);
@@ -57,9 +57,8 @@ public class BucketAccessControlsApiLiveTest extends BaseGoogleCloudStorageApiLi
@Test(groups = "live", dependsOnMethods = "testCreateBucketAcl")
public void testUpdateBucketAcl() {
- BucketAccessControls bucketAcl = BucketAccessControls.builder().bucket(BUCKET_NAME).entity("allUsers")
- .role(Role.WRITER).build();
- BucketAccessControls response = api().updateBucketAccessControls(BUCKET_NAME, "allUsers", bucketAcl);
+ BucketAccessControlsTemplate template = new BucketAccessControlsTemplate().entity("allUsers").role(Role.WRITER);
+ BucketAccessControls response = api().updateBucketAccessControls(BUCKET_NAME, "allUsers", template);
assertNotNull(response);
assertEquals(response.getId(), BUCKET_NAME + "/allUsers");
@@ -86,9 +85,8 @@ public class BucketAccessControlsApiLiveTest extends BaseGoogleCloudStorageApiLi
@Test(groups = "live", dependsOnMethods = "testUpdateBucketAcl")
public void testPatchBucketAcl() {
- BucketAccessControls bucketAcl = BucketAccessControls.builder().bucket(BUCKET_NAME).entity("allUsers")
- .role(Role.READER).build();
- BucketAccessControls response = api().patchBucketAccessControls(BUCKET_NAME, "allUsers", bucketAcl);
+ BucketAccessControlsTemplate template = new BucketAccessControlsTemplate().entity("allUsers").role(Role.READER);
+ BucketAccessControls response = api().patchBucketAccessControls(BUCKET_NAME, "allUsers", template);
assertNotNull(response);
assertEquals(response.getId(), BUCKET_NAME + "/allUsers");
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/fda802a5/google-cloud-storage/src/test/resources/bucket_acl_insert_initial.json
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/resources/bucket_acl_insert_initial.json b/google-cloud-storage/src/test/resources/bucket_acl_insert_initial.json
new file mode 100644
index 0000000..d0389bc
--- /dev/null
+++ b/google-cloud-storage/src/test/resources/bucket_acl_insert_initial.json
@@ -0,0 +1,4 @@
+{
+ "entity": "allAuthenticatedUsers",
+ "role": "WRITER"
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/fda802a5/google-cloud-storage/src/test/resources/bucket_acl_update_initial.json
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/resources/bucket_acl_update_initial.json b/google-cloud-storage/src/test/resources/bucket_acl_update_initial.json
index 1df3d84..6bb3630 100644
--- a/google-cloud-storage/src/test/resources/bucket_acl_update_initial.json
+++ b/google-cloud-storage/src/test/resources/bucket_acl_update_initial.json
@@ -1,9 +1,4 @@
{
- "kind": "storage#bucketAccessControl",
- "id": "jcloudtestbucket/allUsers",
- "selfLink": "https://content.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allUsers",
- "bucket": "jcloudtestbucket",
"entity": "allUsers",
- "role": "READER",
- "etag": "CAM="
-}
\ No newline at end of file
+ "role": "OWNER"
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/fda802a5/google-cloud-storage/src/test/resources/bucket_insert_request_payload.json
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/resources/bucket_insert_request_payload.json b/google-cloud-storage/src/test/resources/bucket_insert_request_payload.json
index 0ebf517..b3a042c 100644
--- a/google-cloud-storage/src/test/resources/bucket_insert_request_payload.json
+++ b/google-cloud-storage/src/test/resources/bucket_insert_request_payload.json
@@ -1,3 +1,3 @@
{
- "name": "bhashbucket"
+ "name":"bhashbucket"
}