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/04/01 02:24:16 UTC
[4/4] jclouds git commit: JCLOUDS-732: Filesystem portable object ACLs
JCLOUDS-732: Filesystem portable object ACLs
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/fadbbad8
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/fadbbad8
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/fadbbad8
Branch: refs/heads/master
Commit: fadbbad8acbcc18dcaa3c0cd25382006012e1f14
Parents: 279a984
Author: Andrew Gaul <ga...@apache.org>
Authored: Tue Mar 31 15:24:29 2015 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Tue Mar 31 15:33:34 2015 -0700
----------------------------------------------------------------------
.../internal/FilesystemStorageStrategyImpl.java | 32 ++++++++++++++++++++
.../FilesystemBlobIntegrationTest.java | 6 ----
2 files changed, 32 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/fadbbad8/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java
----------------------------------------------------------------------
diff --git a/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java b/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java
index 004d2e0..2f9f14b 100644
--- a/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java
+++ b/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java
@@ -45,6 +45,7 @@ import javax.inject.Provider;
import org.jclouds.blobstore.LocalStorageStrategy;
import org.jclouds.blobstore.domain.Blob;
+import org.jclouds.blobstore.domain.BlobAccess;
import org.jclouds.blobstore.domain.BlobBuilder;
import org.jclouds.blobstore.domain.ContainerAccess;
import org.jclouds.blobstore.domain.MutableStorageMetadata;
@@ -430,6 +431,7 @@ public class FilesystemStorageStrategyImpl implements LocalStorageStrategy {
logger.debug("xattrs not supported on %s", outputPath);
}
}
+ setBlobAccess(containerName, blobKey, BlobAccess.PRIVATE);
return base16().lowerCase().encode(actualHashCode.asBytes());
} catch (IOException ex) {
if (outputFile != null) {
@@ -476,6 +478,36 @@ public class FilesystemStorageStrategyImpl implements LocalStorageStrategy {
}
@Override
+ public BlobAccess getBlobAccess(String containerName, String blobName) {
+ Path path = new File(buildPathStartingFromBaseDir(containerName, blobName)).toPath();
+ Set<PosixFilePermission> permissions;
+ try {
+ permissions = getPosixFilePermissions(path);
+ } catch (IOException ioe) {
+ throw Throwables.propagate(ioe);
+ }
+ return permissions.contains(PosixFilePermission.OTHERS_READ)
+ ? BlobAccess.PUBLIC_READ : BlobAccess.PRIVATE;
+ }
+
+ @Override
+ public void setBlobAccess(String container, String name, BlobAccess access) {
+ Path path = new File(buildPathStartingFromBaseDir(container, name)).toPath();
+ Set<PosixFilePermission> permissions;
+ try {
+ permissions = getPosixFilePermissions(path);
+ if (access == BlobAccess.PRIVATE) {
+ permissions.remove(PosixFilePermission.OTHERS_READ);
+ } else if (access == BlobAccess.PUBLIC_READ) {
+ permissions.add(PosixFilePermission.OTHERS_READ);
+ }
+ setPosixFilePermissions(path, permissions);
+ } catch (IOException ioe) {
+ throw Throwables.propagate(ioe);
+ }
+ }
+
+ @Override
public Location getLocation(final String containerName) {
return null;
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/fadbbad8/apis/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemBlobIntegrationTest.java
----------------------------------------------------------------------
diff --git a/apis/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemBlobIntegrationTest.java b/apis/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemBlobIntegrationTest.java
index 417a4d9..0452389 100644
--- a/apis/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemBlobIntegrationTest.java
+++ b/apis/filesystem/src/test/java/org/jclouds/filesystem/integration/FilesystemBlobIntegrationTest.java
@@ -27,7 +27,6 @@ import org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest;
import org.jclouds.filesystem.reference.FilesystemConstants;
import org.jclouds.filesystem.utils.TestUtils;
import org.testng.annotations.Test;
-import org.testng.SkipException;
@Test(groups = { "integration" }, singleThreaded = true, testName = "blobstore.FilesystemBlobIntegrationTest")
public class FilesystemBlobIntegrationTest extends BaseBlobIntegrationTest {
@@ -86,9 +85,4 @@ public class FilesystemBlobIntegrationTest extends BaseBlobIntegrationTest {
super.checkUserMetadata(userMetadata1, userMetadata2);
}
}
-
- @Override
- public void testSetBlobAccess() throws Exception {
- throw new SkipException("Intentionally not implemented for the transient provider");
- }
}