Browse Source

HCFS: chmod

pull/781/head
Chris Lu 6 years ago
parent
commit
5f8c8caec6
  1. 19
      other/java/hdfs/src/main/java/seaweed/hdfs/SeaweedFileSystem.java
  2. 28
      other/java/hdfs/src/main/java/seaweed/hdfs/SeaweedFileSystemStore.java

19
other/java/hdfs/src/main/java/seaweed/hdfs/SeaweedFileSystem.java

@ -233,7 +233,26 @@ public class SeaweedFileSystem extends org.apache.hadoop.fs.FileSystem {
path = qualify(path); path = qualify(path);
seaweedFileSystemStore.setOwner(path, owner, group); seaweedFileSystemStore.setOwner(path, owner, group);
}
/**
* Set permission of a path.
*
* @param path The path
* @param permission Access permission
*/
@Override
public void setPermission(Path path, final FsPermission permission) throws IOException {
LOG.debug("setPermission path: {}", path);
if (permission == null) {
throw new IllegalArgumentException("The permission can't be null");
}
path = qualify(path);
seaweedFileSystemStore.setPermission(path, permission);
} }
Path qualify(Path path) { Path qualify(Path path) {

28
other/java/hdfs/src/main/java/seaweed/hdfs/SeaweedFileSystemStore.java

@ -297,7 +297,33 @@ public class SeaweedFileSystemStore {
entryBuilder.setAttributes(attributesBuilder); entryBuilder.setAttributes(attributesBuilder);
LOG.debug("setOwner path:{} entry:{}", path, entryBuilder, owner, group);
LOG.debug("setOwner path:{} entry:{}", path, entryBuilder);
filerGrpcClient.getBlockingStub().updateEntry(FilerProto.UpdateEntryRequest.newBuilder()
.setDirectory(getParentDirectory(path))
.setEntry(entryBuilder)
.build());
}
public void setPermission(Path path, FsPermission permission) {
LOG.debug("setPermission path:{} permission:{}", path, permission);
FilerProto.Entry entry = lookupEntry(path);
if (entry == null) {
LOG.debug("setPermission path:{} entry:{}", path, entry);
return;
}
FilerProto.Entry.Builder entryBuilder = entry.toBuilder();
FilerProto.FuseAttributes.Builder attributesBuilder = entry.getAttributes().toBuilder();
attributesBuilder.setFileMode(permissionToMode(permission, entry.getIsDirectory()));
entryBuilder.setAttributes(attributesBuilder);
LOG.debug("setPermission path:{} entry:{}", path, entryBuilder);
filerGrpcClient.getBlockingStub().updateEntry(FilerProto.UpdateEntryRequest.newBuilder() filerGrpcClient.getBlockingStub().updateEntry(FilerProto.UpdateEntryRequest.newBuilder()
.setDirectory(getParentDirectory(path)) .setDirectory(getParentDirectory(path))

Loading…
Cancel
Save