smengcl commented on a change in pull request #547: HDDS-2928. Implement
ofs://: listStatus
URL: https://github.com/apache/hadoop-ozone/pull/547#discussion_r382687859
##########
File path:
hadoop-ozone/ozonefs/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java
##########
@@ -664,17 +732,73 @@ private FileStatusAdapter
toFileStatusAdapter(OzoneFileStatus status) {
);
}
+ /**
+ * Generate a FileStatusAdapter for a volume.
+ * @param ozoneVolume OzoneVolume object
+ * @param uri Full URI to OFS root.
+ * @return FileStatusAdapter for a volume.
+ */
+ private static FileStatusAdapter getFileStatusAdapterForVolume(
+ OzoneVolume ozoneVolume, URI uri) {
+ String pathStr = uri.toString() +
+ OZONE_URI_DELIMITER + ozoneVolume.getName();
+ LOG.debug("getFileStatusAdapterForVolume(pathStr=" + pathStr);
+ Path path = new Path(pathStr);
+ return new FileStatusAdapter(
+ 0L,
+ path,
+ true,
+ (short)0,
+ 0L,
+ ozoneVolume.getCreationTime().getEpochSecond() * 1000,
+ 0L,
+ (short)00755, // Default directory permission, derive from ACLs later?
+ ozoneVolume.getOwner(),
+ ozoneVolume.getAdmin(), // TODO: Get group of whom?
+ path
+ );
+ }
+
+ /**
+ * Generate a FileStatusAdapter for a bucket.
+ * @param ozoneBucket OzoneBucket object.
+ * @param uri Full URI to OFS root.
+ * @return FileStatusAdapter for a bucket.
+ */
+ private static FileStatusAdapter getFileStatusAdapterForBucket(
+ OzoneBucket ozoneBucket, URI uri, String username) {
+ String pathStr = uri.toString() +
+ OZONE_URI_DELIMITER + ozoneBucket.getVolumeName() +
+ OZONE_URI_DELIMITER + ozoneBucket.getName();
+ LOG.debug("getFileStatusAdapterForBucket(pathStr=" + pathStr);
+ Path path = new Path(pathStr);
+ return new FileStatusAdapter(
+ 0L,
+ path,
+ true,
+ (short)0,
+ 0L,
+ ozoneBucket.getCreationTime().getEpochSecond() * 1000,
+ 0L,
+ (short)00755, // Default directory permission, derive from ACLs later?
+ username, // TODO: owner and group.
+ username,
+ path
+ );
+ }
+
/**
* Generate a FileStatusAdapter for OFS root.
+ * @param uri Full URI to OFS root.
* @return FileStatusAdapter for root.
*/
- private static FileStatusAdapter rootFileStatusAdapter() {
+ private static FileStatusAdapter getFileStatusAdapterForRoot(URI uri) {
// Note that most fields are mimicked from HDFS FileStatus for root,
// except modification time, permission, owner and group.
- // TODO: Revisit the return value.
+ Path path = new Path(uri.toString() + OZONE_URI_DELIMITER);
return new FileStatusAdapter(
Review comment:
The URI part (`ofs://localhost:54607`) can differ each time the client
application initializes FileSystem. So I'd say we can't have a static
`RootFileStatusAdapter` with the current impl.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]