This is an automated email from the ASF dual-hosted git repository.

weichiu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 1ad1b2d58ad HDDS-13409. Add supported operations for Ofs. (#8763)
1ad1b2d58ad is described below

commit 1ad1b2d58ad49f08b2202f6106853a97c1eefb41
Author: Wei-Chiu Chuang <weic...@apache.org>
AuthorDate: Wed Jul 9 22:31:24 2025 -0700

    HDDS-13409. Add supported operations for Ofs. (#8763)
    
    Generated-by: Google Gemini 2.5 Pro, Gemini Cli
---
 hadoop-hdds/docs/content/interface/Ofs.md | 118 ++++++++++++++++++++++++++++++
 1 file changed, 118 insertions(+)

diff --git a/hadoop-hdds/docs/content/interface/Ofs.md 
b/hadoop-hdds/docs/content/interface/Ofs.md
index d37e2421d0c..78ba4210a27 100644
--- a/hadoop-hdds/docs/content/interface/Ofs.md
+++ b/hadoop-hdds/docs/content/interface/Ofs.md
@@ -273,3 +273,121 @@ This feature wouldn't degrade server performance as the 
loop is on the client.
 Think it as a client is issuing multiple requests to the server to get all the
 information.
 
+## Operation Support
+
+lists the support status of Ofs operations
+
+### Supported
+
+| Operation              | Description                               | Support 
       |
+|------------------------|-------------------------------------------|----------------|
+| `create`               | Creates a new file.                       | 
Supported      |
+| `open`                 | Opens a file for reading.                 | 
Supported      |
+| `rename`               | Renames a file or directory.              | 
Supported [1]  |
+| `delete`               | Deletes a file or directory.              | 
Supported [2]  |
+| `listStatus`           | Lists the status of files in a directory. | 
Supported [3]  |
+| `mkdirs`               | Creates a directory and its parents.      | 
Supported      |
+| `getFileStatus`        | Gets the status of a file.                | 
Supported      |
+| `setTimes`             | Sets the modification and access times.   | 
Supported      |
+| `getLinkTarget`        | Gets the target of a symbolic link.       | 
Supported [4]  |
+| `getFileChecksum`      | Gets the checksum of a file.              | 
Supported      |
+| `setSafeMode`          | Enters or leaves safe mode.               | 
Supported      |
+| `recoverLease`         | Recovers a file lease.                    | 
Supported      |
+| `isFileClosed`         | Checks if a file is closed.               | 
Supported      |
+| `createSnapshot`       | Creates a snapshot.                       | 
Supported [5]  |
+| `deleteSnapshot`       | Deletes a snapshot.                       | 
Supported [5]  |
+| `renameSnapshot`       | Renames a snapshot.                       | 
Supported [5]  |
+| `getSnapshotDiffReport`| Gets a snapshot diff report.              | 
Supported [5]  |
+| `copyFromLocalFile`    | Copies a file from the local filesystem.  | 
Supported      |
+| `exists`               | Checks if a path exists.                  | 
Supported      |
+| `getContentSummary`    | Gets the content summary of a path.       | 
Supported      |
+| `getDefaultBlockSize`  | Gets the default block size.              | 
Supported      |
+| `getDefaultReplication`| Gets the default replication factor.      | 
Supported      |
+| `getDelegationToken`   | Gets a delegation token.                  | 
Supported      |
+| `getFileBlockLocations`| Gets file block locations.                | 
Supported      |
+| `getHomeDirectory`     | Gets the user's home directory.           | 
Supported      |
+| `getServerDefaults`    | Gets the server default values.           | 
Supported      |
+| `getTrashRoot`         | Gets the trash root for a path.           | 
Supported      |
+| `getTrashRoots`        | Gets all trash roots.                     | 
Supported      |
+| `getWorkingDirectory`  | Gets the current working directory.       | 
Supported      |
+| `globStatus`           | Finds files matching a pattern.           | 
Supported      |
+| `hasPathCapability`    | Queries for a path capability.            | 
Supported      |
+| `isDirectory`          | Checks if a path is a directory.          | 
Supported      |
+| `isFile`               | Checks if a path is a file.               | 
Supported      |
+| `listFiles`            | Returns a remote iterator for files.      | 
Supported      |
+| `listLocatedStatus`    | Returns a remote iterator for located file 
statuses. | Supported |
+| `listStatusIterator`   | Returns a remote iterator for file statuses. | 
Supported |
+| `setWorkingDirectory`  | Sets the current working directory.       | 
Supported      |
+| `supportsSymlinks`     | Checks if symbolic links are supported.   | 
Supported      |
+
+### Unsupported
+
+| Operation              | Description                               |
+|------------------------|-------------------------------------------|
+| `append`               | Appends to an existing file.              |
+| `setPermission`        | Sets the permission of a file.            |
+| `setOwner`             | Sets the owner of a file.                 |
+| `setReplication`       | Sets the replication factor of a file.    |
+| `createSymlink`        | Creates a symbolic link.                  |
+| `resolveLink`          | Resolves a symbolic link.                 |
+| `setXAttr`             | Sets an extended attribute.               |
+| `getXAttr`             | Gets an extended attribute.               |
+| `listXAttrs`           | Lists extended attributes.                |
+| `removeXAttr`          | Removes an extended attribute.            |
+| `setAcl`               | Sets an ACL.                              |
+| `getAclStatus`         | Gets an ACL status.                       |
+| `modifyAclEntries`     | Modifies ACL entries.                     |
+| `removeAclEntries`     | Removes ACL entries.                      |
+| `removeDefaultAcl`     | Removes the default ACL.                  |
+| `removeAcl`            | Removes an ACL.                           |
+| `truncate`             | Truncates a file.                         |
+| `concat`               | Concatenates files.                       |
+
+**Footnotes:**
+
+[1] Renaming across buckets is not supported. For File System Optimized (FSO) 
buckets, rename is an atomic metadata operation. For legacy buckets, renaming a 
directory is non-atomic, as it is implemented by renaming each file and 
subdirectory individually.
+
+[2] Deleting the root of the filesystem is not allowed. Recursive volume 
deletion is not supported.
+
+[3] Recursive listing at the root or volume level is not supported.
+
+[4] OFS supports 'linked buckets', where one bucket acts as a link to another. 
General-purpose symbolic links for files or directories are not supported.
+
+[5] Snapshots are only supported at the bucket level.
+
+### Unsupported HDFS-Specific Operations
+
+The following operations are specific to HDFS and are not supported by Ofs.
+
+| Operation                 | Description                                      
   | Support     |
+|---------------------------|-----------------------------------------------------|-------------|
+| `setStoragePolicy`        | Sets a storage policy on a file or directory.    
   | Unsupported |
+| `getStoragePolicy`        | Gets the storage policy of a file or directory.  
   | Unsupported |
+| `getErasureCodingPolicy`  | Gets the erasure coding policy of a file or 
directory.| Unsupported |
+| `setErasureCodingPolicy`  | Sets an erasure coding policy on a directory.    
   | Unsupported |
+| `unsetErasureCodingPolicy`| Unsets an erasure coding policy on a directory.  
   | Unsupported |
+| `addCachePool`            | Adds a cache pool.                               
   | Unsupported |
+| `modifyCachePool`         | Modifies a cache pool.                           
   | Unsupported |
+| `removeCachePool`         | Removes a cache pool.                            
   | Unsupported |
+| `listCachePools`          | Lists all cache pools.                           
   | Unsupported |
+| `addCacheDirective`       | Adds a cache directive.                          
   | Unsupported |
+| `modifyCacheDirective`    | Modifies a cache directive.                      
   | Unsupported |
+| `removeCacheDirective`    | Removes a cache directive.                       
   | Unsupported |
+| `listCacheDirectives`     | Lists cache directives.                          
   | Unsupported |
+| `allowSnapshot`           | Allows snapshots to be taken on a directory.     
   | Unsupported |
+| `disallowSnapshot`        | Disallows snapshots to be taken on a directory.  
   | Unsupported |
+| `addErasureCodingPolicies`| Adds erasure coding policies.                    
   | Unsupported |
+| `getErasureCodingPolicies`| Gets the available erasure coding policies.      
   | Unsupported |
+| `removeErasureCodingPolicy`| Removes an erasure coding policy.               
   | Unsupported |
+| `enableErasureCodingPolicy`| Enables an erasure coding policy.               
    | Unsupported |
+| `disableErasureCodingPolicy`| Disables an erasure coding policy.             
     | Unsupported |
+| `getEZForPath`            | Gets the encryption zone for a path.             
   | Unsupported |
+| `listErasureCodingPolicies`| Lists all erasure coding policies.              
    | Unsupported |
+| `listErasureCodingCodecs` | Lists all erasure coding codecs.                 
   | Unsupported |
+| `getQuotaUsage`           | Gets the quota usage for a path.                 
   | Unsupported |
+| `setQuotaByStorageType`   | Sets the quota by storage type for a path.       
   | Unsupported |
+| `getQuotaByStorageType`   | Gets the quota by storage type for a path.       
   | Unsupported |
+| `msync`                   | Flushes out the data in client's user buffer.    
   | Unsupported |
+| `satisfyStoragePolicy`    | Satisfies the storage policy of a file.          
   | Unsupported |
+
+


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@ozone.apache.org
For additional commands, e-mail: commits-h...@ozone.apache.org

Reply via email to