adoroszlai opened a new pull request, #6691:
URL: https://github.com/apache/ozone/pull/6691

   ## What changes were proposed in this pull request?
   
   Allow rewriting a key via CLI:
   
   1. with new content via `ozone sh key put --expectedGeneration ...` command. 
 Generation value needs to be supplied manually.
   2. with existing content via `ozone sh key rewrite` command.  Generation is 
used from current version of the key.  Replication can be specified via usual 
options.  If omitted, replication is toggled between RATIS/3 and EC/3,2 (this 
is intended as a temporary behavior for easier testing.)
   
   https://issues.apache.org/jira/browse/HDDS-10872
   
   ## How was this patch tested?
   
   ```
   $ ozone sh volume create /vol1
   $ ozone sh bucket create --layout OBJECT_STORE /vol1/obs
   $ k=/vol1/obs/key
   $ ozone sh key put $k share/ozone/lib/rocksdbjni-7.7.3.jar
   
   $ ozone sh key put --expectedGeneration 555 $k 
share/ozone/lib/rocksdbjni-7.7.3.jar
   KEY_NOT_FOUND Generation mismatch during expected rewrite
   
   $ ozone sh key put --expectedGeneration $(ozone sh key info $k | jq -r 
'.generation') $k /etc/passwd
   $ ozone sh key info $k | jq -r '.generation'
   15
   
   $ ozone sh key put --expectedGeneration $(ozone sh key info $k | jq -r 
'.generation') $k share/ozone/lib/rocksdbjni-7.7.3.jar
   $ ozone sh key info $k | jq -r '.generation'
   21
   
   $ ozone sh key put --expectedGeneration $(ozone sh key info $k | jq -r 
'.generation') $k /etc/passwd
   $ ozone sh key info $k | jq -r '.generation'
   25
   
   $ ozone sh key rewrite $k 
   $ ozone sh key info $k | jq -r '.generation'
   29
   
   $ ozone sh key rewrite $k 
   $ ozone sh key info $k | jq -r '.generation'
   33
   
   $ ozone sh key rewrite --type EC --replication rs-3-2-1024k $k 
   $ ozone sh key rewrite --type EC --replication rs-3-2-1024k $k 
   Replication unchanged: EC{rs-3-2-1024k}
   
   $ ozone sh key put --expectedGeneration 555 /vol1/obs/no-such-key 
share/ozone/lib/rocksdbjni-7.7.3.jar
   KEY_NOT_FOUND Key not found during expected rewrite
   ```


-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to