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]

Reply via email to