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) {