This is an automated email from the ASF dual-hosted git repository.
nanda 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 3ff8ef380b HDDS-8650. Remove duplicate helper methods for getting FSO
open key (#5753)
3ff8ef380b is described below
commit 3ff8ef380b8bc344d97fd538bd078c033d172925
Author: TaiJuWu <[email protected]>
AuthorDate: Wed Jan 10 23:38:04 2024 +0800
HDDS-8650. Remove duplicate helper methods for getting FSO open key (#5753)
---
.../apache/hadoop/ozone/om/helpers/OmFSOFile.java | 150 +++++++++++++++++++++
.../hadoop/ozone/om/helpers/package-info.java | 23 ++++
.../om/request/file/OMRecoverLeaseRequest.java | 30 +++--
.../request/key/OMAllocateBlockRequestWithFSO.java | 15 +--
.../om/request/key/OMKeyCommitRequestWithFSO.java | 30 +++--
.../S3MultipartUploadCommitPartRequestWithFSO.java | 19 +--
6 files changed, 219 insertions(+), 48 deletions(-)
diff --git
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/helpers/OmFSOFile.java
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/helpers/OmFSOFile.java
new file mode 100644
index 0000000000..8ea379994d
--- /dev/null
+++
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/helpers/OmFSOFile.java
@@ -0,0 +1,150 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.hadoop.ozone.om.helpers;
+
+import org.apache.hadoop.ozone.om.OMMetadataManager;
+import org.apache.hadoop.ozone.om.request.file.OMFileRequest;
+
+import java.io.IOException;
+
+/**
+ * This class is used exclusively in FSO buckets..
+ */
+public final class OmFSOFile {
+
+ private String volumeName;
+ private String bucketName;
+ private String keyName;
+ private OMMetadataManager omMetadataManager;
+
+ private String fileName;
+ private long volumeId;
+ private long bucketId;
+ private long parentID;
+
+
+ @SuppressWarnings("checkstyle:parameternumber")
+ private OmFSOFile(String volumeName, String bucketName, String keyName,
+ OMMetadataManager omMetadataManager, String fileName,
+ long volumeId, long bucketId, long parentID) {
+ this.volumeName = volumeName;
+ this.bucketName = bucketName;
+ this.keyName = keyName;
+ this.omMetadataManager = omMetadataManager;
+
+ this.fileName = fileName;
+ this.volumeId = volumeId;
+ this.bucketId = bucketId;
+ this.parentID = parentID;
+ }
+
+ /**
+ * Builder class for OmFSOFile.
+ */
+ public static class Builder {
+ private String volumeName;
+ private String bucketName;
+ private String keyName;
+ private OMMetadataManager omMetadataManager;
+ private String errMsg;
+
+ public Builder() {
+ this.errMsg = null;
+ }
+
+ public Builder setVolumeName(String volumeName) {
+ this.volumeName = volumeName;
+ return this;
+ }
+
+ public Builder setBucketName(String bucketName) {
+ this.bucketName = bucketName;
+ return this;
+ }
+
+ public Builder setKeyName(String keyName) {
+ this.keyName = keyName;
+ return this;
+ }
+
+ public Builder setOmMetadataManager(OMMetadataManager omMetadataManager) {
+ this.omMetadataManager = omMetadataManager;
+ return this;
+ }
+
+ public Builder setErrMsg(String errMsg) {
+ this.errMsg = errMsg;
+ return this;
+ }
+
+ public OmFSOFile build() throws IOException {
+ String fileName = OzoneFSUtils.getFileName(this.keyName);
+ final long volumeId = omMetadataManager.getVolumeId(this.volumeName);
+ final long bucketId = omMetadataManager.getBucketId(this.volumeName,
this.bucketName);
+ long parentID = OMFileRequest
+ .getParentID(volumeId, bucketId, this.keyName,
+ this.omMetadataManager, this.errMsg);
+
+ return new OmFSOFile(volumeName, bucketName, keyName,
+ omMetadataManager, fileName, volumeId, bucketId, parentID);
+ }
+ }
+
+ public String getVolumeName() {
+ return this.volumeName;
+ }
+
+ public String getBucketName() {
+ return this.bucketName;
+ }
+
+ public String getKeyName() {
+ return this.keyName;
+ }
+
+ public OMMetadataManager getOmMetadataManager() {
+ return this.omMetadataManager;
+ }
+
+ public String getFileName() {
+ return this.fileName;
+ }
+
+ public long getVolumeId() {
+ return this.volumeId;
+ }
+
+ public long getBucketId() {
+ return this.bucketId;
+ }
+
+ public long getParentID() {
+ return this.parentID;
+ }
+
+ public String getOpenFileName(long clientID) {
+ return omMetadataManager.getOpenFileName(this.volumeId, this.bucketId,
+ this.parentID, this.fileName, clientID);
+ }
+
+ public String getOzonePathKey() {
+ return omMetadataManager.getOzonePathKey(this.volumeId, this.bucketId,
+ this.parentID, this.fileName);
+ }
+}
diff --git
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/helpers/package-info.java
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/helpers/package-info.java
new file mode 100644
index 0000000000..a4273d665e
--- /dev/null
+++
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/helpers/package-info.java
@@ -0,0 +1,23 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.ozone.om.helpers;
+
+/**
+ * This package contains Ozone manager helper class.
+ */
diff --git
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMRecoverLeaseRequest.java
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMRecoverLeaseRequest.java
index 510ea54f72..763c8641c0 100644
---
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMRecoverLeaseRequest.java
+++
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMRecoverLeaseRequest.java
@@ -29,7 +29,7 @@ import org.apache.hadoop.ozone.om.OzoneManager;
import org.apache.hadoop.ozone.om.exceptions.OMException;
import org.apache.hadoop.ozone.om.helpers.BucketLayout;
import org.apache.hadoop.ozone.om.helpers.OmKeyInfo;
-import org.apache.hadoop.ozone.om.helpers.OzoneFSUtils;
+import org.apache.hadoop.ozone.om.helpers.OmFSOFile;
import org.apache.hadoop.ozone.om.request.key.OMKeyRequest;
import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
import org.apache.hadoop.ozone.om.response.OMClientResponse;
@@ -184,17 +184,20 @@ public class OMRecoverLeaseRequest extends OMKeyRequest {
private String doWork(OzoneManager ozoneManager, long transactionLogIndex)
throws IOException {
-
- final long volumeId = omMetadataManager.getVolumeId(volumeName);
- final long bucketId = omMetadataManager.getBucketId(
- volumeName, bucketName);
-
- long parentID = OMFileRequest.getParentID(volumeId, bucketId, keyName,
- omMetadataManager, "Cannot recover file : " + keyName
- + " as parent directory doesn't exist");
- String fileName = OzoneFSUtils.getFileName(keyName);
- dbFileKey = omMetadataManager.getOzonePathKey(volumeId, bucketId,
- parentID, fileName);
+
+ String errMsg = "Cannot recover file : " + keyName
+ + " as parent directory doesn't exist";
+
+ OmFSOFile fsoFile = new OmFSOFile.Builder()
+ .setVolumeName(volumeName)
+ .setBucketName(bucketName)
+ .setKeyName(keyName)
+ .setOmMetadataManager(omMetadataManager)
+ .setErrMsg(errMsg)
+ .build();
+
+ String fileName = fsoFile.getFileName();
+ dbFileKey = fsoFile.getOzonePathKey();
keyInfo = getKey(dbFileKey);
if (keyInfo == null) {
@@ -207,8 +210,7 @@ public class OMRecoverLeaseRequest extends OMKeyRequest {
LOG.warn("Key:" + keyName + " is already closed");
return null;
}
- String openFileDBKey = omMetadataManager.getOpenFileName(
- volumeId, bucketId, parentID, fileName, Long.parseLong(clientId));
+ String openFileDBKey = fsoFile.getOpenFileName(Long.parseLong(clientId));
if (openFileDBKey != null) {
commitKey(dbFileKey, keyInfo, fileName, ozoneManager,
transactionLogIndex);
diff --git
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMAllocateBlockRequestWithFSO.java
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMAllocateBlockRequestWithFSO.java
index ea634a9684..91122195a3 100644
---
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMAllocateBlockRequestWithFSO.java
+++
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMAllocateBlockRequestWithFSO.java
@@ -34,6 +34,7 @@ import org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfo;
import org.apache.hadoop.ozone.om.helpers.OzoneFSUtils;
import org.apache.hadoop.ozone.om.helpers.BucketLayout;
import org.apache.hadoop.ozone.om.helpers.QuotaUtil;
+import org.apache.hadoop.ozone.om.helpers.OmFSOFile;
import org.apache.hadoop.ozone.om.request.file.OMFileRequest;
import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
import org.apache.hadoop.ozone.om.response.OMClientResponse;
@@ -200,15 +201,13 @@ public class OMAllocateBlockRequestWithFSO extends
OMAllocateBlockRequest {
String keyName, long clientID, OzoneManager ozoneManager)
throws IOException {
OMMetadataManager omMetadataManager = ozoneManager.getMetadataManager();
- final long volumeId = omMetadataManager.getVolumeId(volumeName);
- final long bucketId = omMetadataManager.getBucketId(
- volumeName, bucketName);
- String fileName = OzoneFSUtils.getFileName(keyName);
- long parentID = OMFileRequest.getParentID(volumeId, bucketId,
- keyName, omMetadataManager);
- return omMetadataManager.getOpenFileName(volumeId, bucketId, parentID,
- fileName, clientID);
+ return new OmFSOFile.Builder()
+ .setVolumeName(volumeName)
+ .setBucketName(bucketName)
+ .setKeyName(keyName)
+ .setOmMetadataManager(omMetadataManager)
+ .build().getOpenFileName(clientID);
}
private void addOpenTableCacheEntry(long trxnLogIndex,
diff --git
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCommitRequestWithFSO.java
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCommitRequestWithFSO.java
index 2d290e8007..f062e71106 100644
---
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCommitRequestWithFSO.java
+++
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCommitRequestWithFSO.java
@@ -34,8 +34,8 @@ import org.apache.hadoop.ozone.om.helpers.KeyValueUtil;
import org.apache.hadoop.ozone.om.helpers.OmBucketInfo;
import org.apache.hadoop.ozone.om.helpers.BucketLayout;
import org.apache.hadoop.ozone.om.helpers.OmKeyInfo;
+import org.apache.hadoop.ozone.om.helpers.OmFSOFile;
import org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfo;
-import org.apache.hadoop.ozone.om.helpers.OzoneFSUtils;
import org.apache.hadoop.ozone.om.helpers.RepeatedOmKeyInfo;
import org.apache.hadoop.ozone.om.helpers.WithMetadata;
import org.apache.hadoop.ozone.om.request.file.OMFileRequest;
@@ -123,20 +123,22 @@ public class OMKeyCommitRequestWithFSO extends
OMKeyCommitRequest {
bucketLockAcquired = getOmLockDetails().isLockAcquired();
validateBucketAndVolume(omMetadataManager, volumeName, bucketName);
-
- String fileName = OzoneFSUtils.getFileName(keyName);
omBucketInfo = getBucketInfo(omMetadataManager, volumeName, bucketName);
- final long volumeId = omMetadataManager.getVolumeId(volumeName);
- final long bucketId = omMetadataManager.getBucketId(
- volumeName, bucketName);
- long parentID = OMFileRequest.getParentID(volumeId, bucketId,
- keyName, omMetadataManager,
- "Cannot create file : " + keyName
- + " as parent directory doesn't exist");
- String dbFileKey = omMetadataManager.getOzonePathKey(volumeId, bucketId,
- parentID, fileName);
- dbOpenFileKey = omMetadataManager.getOpenFileName(volumeId, bucketId,
- parentID, fileName, commitKeyRequest.getClientID());
+
+ String errMsg = "Cannot create file : " + keyName
+ + " as parent directory doesn't exist";
+ OmFSOFile fsoFile = new OmFSOFile.Builder()
+ .setVolumeName(volumeName)
+ .setBucketName(bucketName)
+ .setKeyName(keyName)
+ .setOmMetadataManager(omMetadataManager)
+ .setErrMsg(errMsg)
+ .build();
+
+ String fileName = fsoFile.getFileName();
+ long volumeId = fsoFile.getVolumeId();
+ String dbFileKey = fsoFile.getOzonePathKey();
+ dbOpenFileKey = fsoFile.getOpenFileName(commitKeyRequest.getClientID());
omKeyInfo = OMFileRequest.getOmKeyInfoFromFileTable(true,
omMetadataManager, dbOpenFileKey, keyName);
diff --git
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCommitPartRequestWithFSO.java
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCommitPartRequestWithFSO.java
index aa81d0c0e5..be65c2ff60 100644
---
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCommitPartRequestWithFSO.java
+++
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCommitPartRequestWithFSO.java
@@ -24,7 +24,7 @@ import org.apache.hadoop.ozone.om.helpers.OmBucketInfo;
import org.apache.hadoop.ozone.om.helpers.OmKeyInfo;
import org.apache.hadoop.ozone.om.helpers.BucketLayout;
import org.apache.hadoop.ozone.om.helpers.OmMultipartKeyInfo;
-import org.apache.hadoop.ozone.om.helpers.OzoneFSUtils;
+import org.apache.hadoop.ozone.om.helpers.OmFSOFile;
import org.apache.hadoop.ozone.om.request.file.OMFileRequest;
import
org.apache.hadoop.ozone.om.response.s3.multipart.S3MultipartUploadCommitPartResponse;
import
org.apache.hadoop.ozone.om.response.s3.multipart.S3MultipartUploadCommitPartResponseWithFSO;
@@ -49,17 +49,12 @@ public class S3MultipartUploadCommitPartRequestWithFSO
String keyName, OMMetadataManager omMetadataManager, long clientID)
throws IOException {
- String fileName = OzoneFSUtils.getFileName(keyName);
-
- final long volumeId = omMetadataManager.getVolumeId(volumeName);
- final long bucketId = omMetadataManager.getBucketId(volumeName,
- bucketName);
- long parentID = OMFileRequest
- .getParentID(volumeId, bucketId, keyName,
- omMetadataManager);
-
- return omMetadataManager.getOpenFileName(volumeId, bucketId,
- parentID, fileName, clientID);
+ return new OmFSOFile.Builder()
+ .setVolumeName(volumeName)
+ .setBucketName(bucketName)
+ .setKeyName(keyName)
+ .setOmMetadataManager(omMetadataManager)
+ .build().getOpenFileName(clientID);
}
@Override
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]