adoroszlai commented on code in PR #7599:
URL: https://github.com/apache/ozone/pull/7599#discussion_r1891230666
##########
hadoop-ozone/dist/src/main/smoketest/compatibility/write.robot:
##########
@@ -68,7 +68,7 @@ File Can Be Deleted
FSO Bucket Can Be Created and Used
Pass Execution If '${CLIENT_VERSION}' < '${FSO_VERSION}' Client does
not support FSO
Pass Execution If '${CLUSTER_VERSION}' < '${FSO_VERSION}' Cluster
does not support FSO
- Execute ozone sh bucket create --layout FILE_SYSTEM_OPTIMIZED
/vol1/fso-bucket-${CLIENT_VERSION}
+ Execute ozone sh bucket create --layout fso
/vol1/fso-bucket-${CLIENT_VERSION}
Review Comment:
Compatibility test should not be changed, since this command is supposed to
work on existing versions that support FSO.
##########
hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/shell/bucket/CreateBucketHandler.java:
##########
Review Comment:
Suggested change:
```diff
diff --git
hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/shell/bucket/CreateBucketHandler.java
hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/shell/bucket/CreateBucketHandler.java
index 79bf316619..e30c78d581 100644
---
hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/shell/bucket/CreateBucketHandler.java
+++
hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/shell/bucket/CreateBucketHandler.java
@@ -59,31 +59,32 @@ public class CreateBucketHandler extends BucketHandler {
" user if not specified")
private String ownerName;
- enum AllowedBucketLayouts {
- FILE_SYSTEM_OPTIMIZED,
- fso,
- OBJECT_STORE,
- obs,
- LEGACY;
-
- public static AllowedBucketLayouts fromString(String value) {
- if (value.equals("FILE_SYSTEM_OPTIMIZED") ||
value.equalsIgnoreCase("fso")) {
- return FILE_SYSTEM_OPTIMIZED;
+ private static class LayoutConverter implements
CommandLine.ITypeConverter<BucketLayout> {
+ @Override
+ public BucketLayout convert(String value) {
+ if (value == null) {
+ return null;
}
- if (value.equals("OBJECT_STORE") || value.equalsIgnoreCase("obs")) {
- return OBJECT_STORE;
+ switch (value) {
+ case "fso":
+ return BucketLayout.FILE_SYSTEM_OPTIMIZED;
+ case "obs":
+ return BucketLayout.OBJECT_STORE;
+ default:
+ for (BucketLayout candidate : BucketLayout.values()) {
+ if (candidate.name().equalsIgnoreCase(value)) {
+ return candidate;
+ }
+ }
+ throw new IllegalArgumentException("Unknown bucket layout: " +
value);
}
- if (value.equals("LEGACY") || value.equalsIgnoreCase("legacy")) {
- return LEGACY;
- }
- return valueOf(value); // throws IllegalArgumentException if not
mapped to an enum, better than returning null
}
}
- @Option(names = { "--layout", "-l" },
+ @Option(names = { "--layout", "-l" }, converter = LayoutConverter.class,
description = "Allowed Bucket Layouts: fso (for file system optimized
buckets FILE_SYSTEM_OPTIMIZED), " +
"obs (for object store optimized OBJECT_STORE) and legacy (LEGACY
is Deprecated)")
- private String allowedBucketLayout;
+ private BucketLayout bucketLayout;
@CommandLine.Mixin
private ShellReplicationOptions replication;
@@ -105,9 +106,7 @@ public void execute(OzoneClient client, OzoneAddress
address)
BucketArgs.Builder bb =
new BucketArgs.Builder().setStorageType(StorageType.DEFAULT)
.setVersioning(false).setOwner(ownerName);
- if (allowedBucketLayout != null) {
- BucketLayout bucketLayout =
-
BucketLayout.fromString(AllowedBucketLayouts.fromString(allowedBucketLayout).toString());
+ if (bucketLayout != null) {
bb.setBucketLayout(bucketLayout);
}
// TODO: New Client talking to old server, will it create a LEGACY
bucket?
```
--
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]