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 2015/02/13 02:42:31 UTC
jclouds-labs-google git commit: JCLOUDS-660: GCS portable container
ACL support
Repository: jclouds-labs-google
Updated Branches:
refs/heads/master c9b3845af -> a1f28f98b
JCLOUDS-660: GCS portable container ACL support
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/a1f28f98
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/tree/a1f28f98
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/diff/a1f28f98
Branch: refs/heads/master
Commit: a1f28f98bad60ffb6cf8dd7efe85d7fc08ee8841
Parents: c9b3845
Author: Andrew Gaul <ga...@apache.org>
Authored: Sun Feb 8 21:46:06 2015 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Thu Feb 12 17:24:38 2015 -0800
----------------------------------------------------------------------
.../blobstore/GoogleCloudStorageBlobStore.java | 23 ++++++++++++++++++++
1 file changed, 23 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/a1f28f98/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
index c3f2fd8..7319086 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
@@ -29,6 +29,7 @@ import javax.inject.Inject;
import org.jclouds.blobstore.BlobStoreContext;
import org.jclouds.blobstore.domain.Blob;
import org.jclouds.blobstore.domain.BlobMetadata;
+import org.jclouds.blobstore.domain.ContainerAccess;
import org.jclouds.blobstore.domain.MutableBlobMetadata;
import org.jclouds.blobstore.domain.PageSet;
import org.jclouds.blobstore.domain.StorageMetadata;
@@ -56,6 +57,7 @@ import org.jclouds.googlecloudstorage.domain.Bucket;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences;
import org.jclouds.googlecloudstorage.domain.GoogleCloudStorageObject;
import org.jclouds.googlecloudstorage.domain.ListPageWithPrefixes;
+import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
import org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate;
import org.jclouds.googlecloudstorage.domain.templates.ObjectTemplate;
@@ -150,6 +152,27 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
return bucket != null;
}
+ @Override
+ public ContainerAccess getContainerAccess(String container) {
+ ObjectAccessControls controls = api.getDefaultObjectAccessControlsApi().getDefaultObjectAccessControls(container, "allUsers");
+ if (controls == null || controls.role() == DomainResourceReferences.ObjectRole.OWNER) {
+ return ContainerAccess.PRIVATE;
+ } else {
+ return ContainerAccess.PUBLIC_READ;
+ }
+ }
+
+ @Override
+ public void setContainerAccess(String container, ContainerAccess access) {
+ ObjectAccessControlsTemplate doAclTemplate;
+ if (access == ContainerAccess.PUBLIC_READ) {
+ doAclTemplate = ObjectAccessControlsTemplate.create("allUsers", READER);
+ api.getDefaultObjectAccessControlsApi().createDefaultObjectAccessControls(container, doAclTemplate);
+ } else {
+ api.getDefaultObjectAccessControlsApi().deleteDefaultObjectAccessControls(container, "allUsers");
+ }
+ }
+
/** Returns list of of all the objects */
@Override
public PageSet<? extends StorageMetadata> list(String container) {