|
@@ -17,18 +17,16 @@
|
|
|
*/
|
|
|
package org.apache.hadoop.ksm.helpers;
|
|
|
|
|
|
-import java.util.LinkedList;
|
|
|
import java.util.List;
|
|
|
|
|
|
-import org.apache.hadoop.fs.StorageType;
|
|
|
-import org.apache.hadoop.hdfs.protocolPB.PBHelperClient;
|
|
|
+import com.google.common.base.Preconditions;
|
|
|
+import org.apache.hadoop.hdfs.protocol.proto
|
|
|
+ .HdfsProtos.StorageTypeProto;
|
|
|
import org.apache.hadoop.ozone.protocol.proto
|
|
|
- .KeySpaceManagerProtocolProtos.BucketInfo;
|
|
|
+ .KeySpaceManagerProtocolProtos.BucketArgs;
|
|
|
import org.apache.hadoop.ozone.protocol.proto
|
|
|
.KeySpaceManagerProtocolProtos.OzoneAclInfo;
|
|
|
|
|
|
-import com.google.common.base.Preconditions;
|
|
|
-
|
|
|
/**
|
|
|
* A class that encapsulates Bucket Arguments.
|
|
|
*/
|
|
@@ -52,12 +50,12 @@ public final class KsmBucketArgs {
|
|
|
/**
|
|
|
* Bucket Version flag.
|
|
|
*/
|
|
|
- private boolean isVersionEnabled;
|
|
|
+ private Boolean isVersionEnabled;
|
|
|
/**
|
|
|
* Type of storage to be used for this bucket.
|
|
|
* [RAM_DISK, SSD, DISK, ARCHIVE]
|
|
|
*/
|
|
|
- private StorageType storageType;
|
|
|
+ private StorageTypeProto storageType;
|
|
|
|
|
|
/**
|
|
|
* Private constructor, constructed via builder.
|
|
@@ -70,7 +68,7 @@ public final class KsmBucketArgs {
|
|
|
*/
|
|
|
private KsmBucketArgs(String volumeName, String bucketName,
|
|
|
List<OzoneAclInfo> addAcls, List<OzoneAclInfo> removeAcls,
|
|
|
- boolean isVersionEnabled, StorageType storageType) {
|
|
|
+ boolean isVersionEnabled, StorageTypeProto storageType) {
|
|
|
this.volumeName = volumeName;
|
|
|
this.bucketName = bucketName;
|
|
|
this.addAcls = addAcls;
|
|
@@ -97,7 +95,7 @@ public final class KsmBucketArgs {
|
|
|
|
|
|
/**
|
|
|
* Returns the ACL's that are to be added.
|
|
|
- * @return List<OzoneAcl>
|
|
|
+ * @return List<OzoneAclInfo>
|
|
|
*/
|
|
|
public List<OzoneAclInfo> getAddAcls() {
|
|
|
return addAcls;
|
|
@@ -105,7 +103,7 @@ public final class KsmBucketArgs {
|
|
|
|
|
|
/**
|
|
|
* Returns the ACL's that are to be removed.
|
|
|
- * @return List<OzoneAcl>
|
|
|
+ * @return List<OzoneAclInfo>
|
|
|
*/
|
|
|
public List<OzoneAclInfo> getRemoveAcls() {
|
|
|
return removeAcls;
|
|
@@ -123,7 +121,7 @@ public final class KsmBucketArgs {
|
|
|
* Returns the type of storage to be used.
|
|
|
* @return StorageType
|
|
|
*/
|
|
|
- public StorageType getStorageType() {
|
|
|
+ public StorageTypeProto getStorageType() {
|
|
|
return storageType;
|
|
|
}
|
|
|
|
|
@@ -144,13 +142,8 @@ public final class KsmBucketArgs {
|
|
|
private String bucketName;
|
|
|
private List<OzoneAclInfo> addAcls;
|
|
|
private List<OzoneAclInfo> removeAcls;
|
|
|
- private boolean isVersionEnabled;
|
|
|
- private StorageType storageType;
|
|
|
-
|
|
|
- Builder() {
|
|
|
- addAcls = new LinkedList<>();
|
|
|
- removeAcls = new LinkedList<>();
|
|
|
- }
|
|
|
+ private Boolean isVersionEnabled;
|
|
|
+ private StorageTypeProto storageType;
|
|
|
|
|
|
public Builder setVolumeName(String volume) {
|
|
|
this.volumeName = volume;
|
|
@@ -162,22 +155,22 @@ public final class KsmBucketArgs {
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
- public Builder addAddAcl(OzoneAclInfo acl) {
|
|
|
- this.addAcls.add(acl);
|
|
|
+ public Builder setAddAcls(List<OzoneAclInfo> acls) {
|
|
|
+ this.addAcls = acls;
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
- public Builder addRemoveAcl(OzoneAclInfo acl) {
|
|
|
- this.removeAcls.add(acl);
|
|
|
+ public Builder setRemoveAcls(List<OzoneAclInfo> acls) {
|
|
|
+ this.removeAcls = acls;
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
- public Builder setIsVersionEnabled(boolean versionFlag) {
|
|
|
+ public Builder setIsVersionEnabled(Boolean versionFlag) {
|
|
|
this.isVersionEnabled = versionFlag;
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
- public Builder setStorageType(StorageType storage) {
|
|
|
+ public Builder setStorageType(StorageTypeProto storage) {
|
|
|
this.storageType = storage;
|
|
|
return this;
|
|
|
}
|
|
@@ -189,39 +182,44 @@ public final class KsmBucketArgs {
|
|
|
public KsmBucketArgs build() {
|
|
|
Preconditions.checkNotNull(volumeName);
|
|
|
Preconditions.checkNotNull(bucketName);
|
|
|
- Preconditions.checkNotNull(isVersionEnabled);
|
|
|
- return new KsmBucketArgs(volumeName, bucketName, addAcls, removeAcls,
|
|
|
- isVersionEnabled, storageType);
|
|
|
+ return new KsmBucketArgs(volumeName, bucketName, addAcls,
|
|
|
+ removeAcls, isVersionEnabled, storageType);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * Creates BucketInfo protobuf from KsmBucketArgs.
|
|
|
+ * Creates BucketArgs protobuf from KsmBucketArgs.
|
|
|
*/
|
|
|
- public BucketInfo getProtobuf() {
|
|
|
- return BucketInfo.newBuilder()
|
|
|
- .setVolumeName(volumeName)
|
|
|
- .setBucketName(bucketName)
|
|
|
- .addAllAddAcls(addAcls)
|
|
|
- .addAllRemoveAcls(removeAcls)
|
|
|
- .setIsVersionEnabled(isVersionEnabled)
|
|
|
- .setStorageType(PBHelperClient.convertStorageType(storageType))
|
|
|
- .build();
|
|
|
+ public BucketArgs getProtobuf() {
|
|
|
+ BucketArgs.Builder builder = BucketArgs.newBuilder();
|
|
|
+ builder.setVolumeName(volumeName)
|
|
|
+ .setBucketName(bucketName);
|
|
|
+ if(addAcls != null && !addAcls.isEmpty()) {
|
|
|
+ builder.addAllAddAcls(addAcls);
|
|
|
+ }
|
|
|
+ if(removeAcls != null && !removeAcls.isEmpty()) {
|
|
|
+ builder.addAllRemoveAcls(removeAcls);
|
|
|
+ }
|
|
|
+ if(isVersionEnabled != null) {
|
|
|
+ builder.setIsVersionEnabled(isVersionEnabled);
|
|
|
+ }
|
|
|
+ if(storageType != null) {
|
|
|
+ builder.setStorageType(storageType);
|
|
|
+ }
|
|
|
+ return builder.build();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Parses BucketInfo protobuf and creates KsmBucketArgs.
|
|
|
- * @param bucketInfo
|
|
|
+ * @param bucketArgs
|
|
|
* @return instance of KsmBucketArgs
|
|
|
*/
|
|
|
- public static KsmBucketArgs getFromProtobuf(BucketInfo bucketInfo) {
|
|
|
- return new KsmBucketArgs(
|
|
|
- bucketInfo.getVolumeName(),
|
|
|
- bucketInfo.getBucketName(),
|
|
|
- bucketInfo.getAddAclsList(),
|
|
|
- bucketInfo.getRemoveAclsList(),
|
|
|
- bucketInfo.getIsVersionEnabled(),
|
|
|
- PBHelperClient.convertStorageType(
|
|
|
- bucketInfo.getStorageType()));
|
|
|
+ public static KsmBucketArgs getFromProtobuf(BucketArgs bucketArgs) {
|
|
|
+ return new KsmBucketArgs(bucketArgs.getVolumeName(),
|
|
|
+ bucketArgs.getBucketName(),
|
|
|
+ bucketArgs.getAddAclsList(),
|
|
|
+ bucketArgs.getRemoveAclsList(),
|
|
|
+ bucketArgs.getIsVersionEnabled(),
|
|
|
+ bucketArgs.getStorageType());
|
|
|
}
|
|
|
}
|