You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by ra...@apache.org on 2022/06/28 14:43:53 UTC
[ozone] branch master updated: HDDS-6934. OM crashed with OzoneManagerDoubleBuffer (#3544)
This is an automated email from the ASF dual-hosted git repository.
rakeshr 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 576a3ebc0a HDDS-6934. OM crashed with OzoneManagerDoubleBuffer (#3544)
576a3ebc0a is described below
commit 576a3ebc0ae180bf96e05e1b0ee829f5cb000b45
Author: Rakesh Radhakrishnan <ra...@apache.org>
AuthorDate: Tue Jun 28 20:13:48 2022 +0530
HDDS-6934. OM crashed with OzoneManagerDoubleBuffer (#3544)
---
.../hadoop/ozone/om/OmMetadataManagerImpl.java | 18 ++-
.../file/OMDirectoryCreateRequestWithFSO.java | 4 +-
.../request/file/OMFileCreateRequestWithFSO.java | 2 +-
.../ozone/om/request/file/OMFileRequest.java | 29 +---
.../request/key/OMAllocateBlockRequestWithFSO.java | 7 +-
.../om/request/key/OMKeyCommitRequestWithFSO.java | 2 +-
.../om/request/key/OMKeyCreateRequestWithFSO.java | 2 +-
.../om/request/key/OMKeyDeleteRequestWithFSO.java | 2 +-
.../ozone/om/request/key/OMKeysDeleteRequest.java | 6 +-
.../om/request/key/OmKeysDeleteRequestWithFSO.java | 4 +-
.../om/request/key/acl/OMKeyAclRequestWithFSO.java | 7 +-
.../request/key/acl/OMKeyAddAclRequestWithFSO.java | 8 +-
.../key/acl/OMKeyRemoveAclRequestWithFSO.java | 5 +-
.../request/key/acl/OMKeySetAclRequestWithFSO.java | 5 +-
.../S3InitiateMultipartUploadRequestWithFSO.java | 2 +-
.../S3MultipartUploadCompleteRequest.java | 8 +-
.../S3MultipartUploadCompleteRequestWithFSO.java | 4 +-
.../file/OMDirectoryCreateResponseWithFSO.java | 21 +--
.../response/file/OMFileCreateResponseWithFSO.java | 20 ++-
.../key/OMAllocateBlockResponseWithFSO.java | 10 +-
.../response/key/OMKeyCommitResponseWithFSO.java | 7 +-
.../response/key/OMKeyCreateResponseWithFSO.java | 10 +-
.../response/key/OMKeyDeleteResponseWithFSO.java | 15 +-
.../response/key/OMKeysDeleteResponseWithFSO.java | 14 +-
.../response/key/acl/OMKeyAclResponseWithFSO.java | 17 +-
.../S3InitiateMultipartUploadResponseWithFSO.java | 16 +-
.../S3MultipartUploadCompleteResponse.java | 3 +
.../S3MultipartUploadCompleteResponseWithFSO.java | 8 +-
.../ozone/om/request/OMRequestTestUtils.java | 16 +-
.../file/TestOMDirectoryCreateResponseWithFSO.java | 2 +-
.../file/TestOMFileCreateResponseWithFSO.java | 4 +-
.../response/key/TestOMAllocateBlockResponse.java | 11 +-
.../key/TestOMAllocateBlockResponseWithFSO.java | 9 +-
.../om/response/key/TestOMKeyCommitResponse.java | 14 +-
.../key/TestOMKeyCommitResponseWithFSO.java | 5 +-
.../om/response/key/TestOMKeyCreateResponse.java | 17 +-
.../key/TestOMKeyCreateResponseWithFSO.java | 4 +-
.../om/response/key/TestOMKeyDeleteResponse.java | 18 +--
.../key/TestOMKeyDeleteResponseWithFSO.java | 5 +-
.../om/response/key/TestOMKeysDeleteResponse.java | 38 ++---
.../key/TestOMKeysDeleteResponseWithFSO.java | 180 +++++++++++++++++++++
...stS3InitiateMultipartUploadResponseWithFSO.java | 12 +-
.../s3/multipart/TestS3MultipartResponse.java | 14 +-
.../TestS3MultipartUploadAbortResponse.java | 11 +-
.../TestS3MultipartUploadAbortResponseWithFSO.java | 9 +-
...S3MultipartUploadCommitPartResponseWithFSO.java | 15 +-
...stS3MultipartUploadCompleteResponseWithFSO.java | 12 +-
47 files changed, 415 insertions(+), 237 deletions(-)
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmMetadataManagerImpl.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmMetadataManagerImpl.java
index ed46c7f82e..8e9ddd7c01 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmMetadataManagerImpl.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmMetadataManagerImpl.java
@@ -92,6 +92,8 @@ import org.apache.commons.lang3.StringUtils;
import static org.apache.hadoop.ozone.OzoneConsts.DB_TRANSIENT_MARKER;
import static org.apache.hadoop.ozone.OzoneConsts.OM_DB_NAME;
import static org.apache.hadoop.ozone.OzoneConsts.OM_KEY_PREFIX;
+import static org.apache.hadoop.ozone.om.exceptions.OMException.ResultCodes.BUCKET_NOT_FOUND;
+import static org.apache.hadoop.ozone.om.exceptions.OMException.ResultCodes.VOLUME_NOT_FOUND;
import org.apache.ratis.util.ExitUtils;
import org.eclipse.jetty.util.StringUtil;
@@ -1474,11 +1476,23 @@ public class OmMetadataManagerImpl implements OMMetadataManager {
@Override
public long getVolumeId(String volume) throws IOException {
- return getVolumeTable().get(getVolumeKey(volume)).getObjectID();
+ OmVolumeArgs omVolumeArgs = getVolumeTable().get(getVolumeKey(volume));
+ if (omVolumeArgs == null) {
+ throw new OMException("Volume not found " + volume,
+ VOLUME_NOT_FOUND);
+ }
+ return omVolumeArgs.getObjectID();
}
@Override
public long getBucketId(String volume, String bucket) throws IOException {
- return getBucketTable().get(getBucketKey(volume, bucket)).getObjectID();
+ OmBucketInfo omBucketInfo =
+ getBucketTable().get(getBucketKey(volume, bucket));
+ if (omBucketInfo == null) {
+ throw new OMException(
+ "Bucket not found " + bucket + ", volume name: " + volume,
+ BUCKET_NOT_FOUND);
+ }
+ return omBucketInfo.getObjectID();
}
}
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMDirectoryCreateRequestWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMDirectoryCreateRequestWithFSO.java
index f7fba71b84..ed4cab660d 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMDirectoryCreateRequestWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMDirectoryCreateRequestWithFSO.java
@@ -176,8 +176,8 @@ public class OMDirectoryCreateRequestWithFSO extends OMDirectoryCreateRequest {
result = OMDirectoryCreateRequest.Result.SUCCESS;
omClientResponse =
new OMDirectoryCreateResponseWithFSO(omResponse.build(),
- volumeName, bucketName, dirInfo,
- missingParentInfos, result, getBucketLayout());
+ volumeId, bucketId, dirInfo, missingParentInfos, result,
+ getBucketLayout());
} else {
result = Result.DIRECTORY_ALREADY_EXISTS;
omResponse.setStatus(Status.DIRECTORY_ALREADY_EXISTS);
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMFileCreateRequestWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMFileCreateRequestWithFSO.java
index d1f60cfd67..8fdecbc505 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMFileCreateRequestWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMFileCreateRequestWithFSO.java
@@ -226,7 +226,7 @@ public class OMFileCreateRequestWithFSO extends OMFileCreateRequest {
.setCmdType(Type.CreateFile);
omClientResponse = new OMFileCreateResponseWithFSO(omResponse.build(),
omFileInfo, missingParentInfos, clientID,
- omBucketInfo.copyObject());
+ omBucketInfo.copyObject(), volumeId);
result = Result.SUCCESS;
} catch (IOException ex) {
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMFileRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMFileRequest.java
index 8363be8d9b..e5733d6712 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMFileRequest.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMFileRequest.java
@@ -546,15 +546,9 @@ public final class OMFileRequest {
* @throws IOException DB failure
*/
public static void addToOpenFileTable(OMMetadataManager omMetadataMgr,
- BatchOperation batchOp,
- OmKeyInfo omFileInfo,
- long openKeySessionID)
- throws IOException {
+ BatchOperation batchOp, OmKeyInfo omFileInfo, long openKeySessionID,
+ long volumeId, long bucketId) throws IOException {
- final long volumeId = omMetadataMgr.getVolumeId(
- omFileInfo.getVolumeName());
- final long bucketId = omMetadataMgr.getBucketId(
- omFileInfo.getVolumeName(), omFileInfo.getBucketName());
String dbOpenFileKey = omMetadataMgr.getOpenFileName(volumeId, bucketId,
omFileInfo.getParentObjectID(), omFileInfo.getFileName(),
openKeySessionID);
@@ -574,13 +568,8 @@ public final class OMFileRequest {
* @throws IOException DB failure
*/
public static String addToOpenFileTable(OMMetadataManager omMetadataMgr,
- BatchOperation batchOp, OmKeyInfo omFileInfo, String uploadID)
- throws IOException {
-
- final long volumeId = omMetadataMgr.getVolumeId(
- omFileInfo.getVolumeName());
- final long bucketId = omMetadataMgr.getBucketId(
- omFileInfo.getVolumeName(), omFileInfo.getBucketName());
+ BatchOperation batchOp, OmKeyInfo omFileInfo, String uploadID,
+ long volumeId, long bucketId) throws IOException {
String multipartFileKey = omMetadataMgr.getMultipartKey(volumeId,
bucketId, omFileInfo.getParentObjectID(),
@@ -602,13 +591,9 @@ public final class OMFileRequest {
* @throws IOException
*/
public static String addToFileTable(OMMetadataManager omMetadataMgr,
- BatchOperation batchOp,
- OmKeyInfo omFileInfo)
- throws IOException {
- final long volumeId = omMetadataMgr.getVolumeId(
- omFileInfo.getVolumeName());
- final long bucketId = omMetadataMgr.getBucketId(
- omFileInfo.getVolumeName(), omFileInfo.getBucketName());
+ BatchOperation batchOp, OmKeyInfo omFileInfo, long volumeId,
+ long bucketId) throws IOException {
+
String dbFileKey = omMetadataMgr.getOzonePathKey(volumeId, bucketId,
omFileInfo.getParentObjectID(), omFileInfo.getFileName());
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 c4265a4679..649593778b 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
@@ -168,8 +168,9 @@ public class OMAllocateBlockRequestWithFSO extends OMAllocateBlockRequest {
omResponse.setAllocateBlockResponse(AllocateBlockResponse.newBuilder()
.setKeyLocation(blockLocation).build());
+ long volumeId = omMetadataManager.getVolumeId(volumeName);
omClientResponse = getOmClientResponse(clientID, omResponse,
- openKeyInfo, omBucketInfo.copyObject());
+ openKeyInfo, omBucketInfo.copyObject(), volumeId);
LOG.debug("Allocated block for Volume:{}, Bucket:{}, OpenKey:{}",
volumeName, bucketName, openKeyName);
} catch (IOException ex) {
@@ -227,8 +228,8 @@ public class OMAllocateBlockRequestWithFSO extends OMAllocateBlockRequest {
@NotNull
private OMClientResponse getOmClientResponse(long clientID,
OMResponse.Builder omResponse, OmKeyInfo openKeyInfo,
- OmBucketInfo omBucketInfo) {
+ OmBucketInfo omBucketInfo, long volumeId) {
return new OMAllocateBlockResponseWithFSO(omResponse.build(), openKeyInfo,
- clientID, getBucketLayout());
+ clientID, getBucketLayout(), volumeId, omBucketInfo.getObjectID());
}
}
\ No newline at end of file
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 537849a7ca..bb7f6a75c0 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
@@ -192,7 +192,7 @@ public class OMKeyCommitRequestWithFSO extends OMKeyCommitRequest {
omClientResponse = new OMKeyCommitResponseWithFSO(omResponse.build(),
omKeyInfo, dbFileKey, dbOpenFileKey, omBucketInfo.copyObject(),
- oldKeyVersionsToDelete);
+ oldKeyVersionsToDelete, volumeId);
result = Result.SUCCESS;
} catch (IOException ex) {
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCreateRequestWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCreateRequestWithFSO.java
index 1895b0a1fa..09bc5e640b 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCreateRequestWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCreateRequestWithFSO.java
@@ -212,7 +212,7 @@ public class OMKeyCreateRequestWithFSO extends OMKeyCreateRequest {
.setCmdType(Type.CreateKey);
omClientResponse = new OMKeyCreateResponseWithFSO(omResponse.build(),
omFileInfo, missingParentInfos, clientID,
- omBucketInfo.copyObject());
+ omBucketInfo.copyObject(), volumeId);
result = Result.SUCCESS;
} catch (IOException ex) {
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyDeleteRequestWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyDeleteRequestWithFSO.java
index dda99b3da3..e375442c51 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyDeleteRequestWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyDeleteRequestWithFSO.java
@@ -168,7 +168,7 @@ public class OMKeyDeleteRequestWithFSO extends OMKeyDeleteRequest {
omClientResponse = new OMKeyDeleteResponseWithFSO(omResponse
.setDeleteKeyResponse(DeleteKeyResponse.newBuilder()).build(),
keyName, omKeyInfo, ozoneManager.isRatisEnabled(),
- omBucketInfo.copyObject(), keyStatus.isDirectory());
+ omBucketInfo.copyObject(), keyStatus.isDirectory(), volumeId);
result = Result.SUCCESS;
} catch (IOException ex) {
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeysDeleteRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeysDeleteRequest.java
index 14d3fcbd8d..c33c924757 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeysDeleteRequest.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeysDeleteRequest.java
@@ -177,9 +177,10 @@ public class OMKeysDeleteRequest extends OMKeyRequest {
omBucketInfo.incrUsedBytes(-quotaReleased);
omBucketInfo.incrUsedNamespace(-1L * omKeyInfoList.size());
+ final long volumeId = omMetadataManager.getVolumeId(volumeName);
omClientResponse =
getOmClientResponse(ozoneManager, omKeyInfoList, dirList, omResponse,
- unDeletedKeys, deleteStatus, omBucketInfo);
+ unDeletedKeys, deleteStatus, omBucketInfo, volumeId);
result = Result.SUCCESS;
@@ -248,11 +249,12 @@ public class OMKeysDeleteRequest extends OMKeyRequest {
}
@NotNull
+ @SuppressWarnings("parameternumber")
protected OMClientResponse getOmClientResponse(OzoneManager ozoneManager,
List<OmKeyInfo> omKeyInfoList, List<OmKeyInfo> dirList,
OMResponse.Builder omResponse,
OzoneManagerProtocolProtos.DeleteKeyArgs.Builder unDeletedKeys,
- boolean deleteStatus, OmBucketInfo omBucketInfo) {
+ boolean deleteStatus, OmBucketInfo omBucketInfo, long volumeId) {
OMClientResponse omClientResponse;
omClientResponse = new OMKeysDeleteResponse(omResponse
.setDeleteKeysResponse(
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OmKeysDeleteRequestWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OmKeysDeleteRequestWithFSO.java
index 3e4c62f9cf..ce9c7f6d74 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OmKeysDeleteRequestWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OmKeysDeleteRequestWithFSO.java
@@ -137,7 +137,7 @@ public class OmKeysDeleteRequestWithFSO extends OMKeysDeleteRequest {
List<OmKeyInfo> omKeyInfoList, List<OmKeyInfo> dirList,
OzoneManagerProtocolProtos.OMResponse.Builder omResponse,
OzoneManagerProtocolProtos.DeleteKeyArgs.Builder unDeletedKeys,
- boolean deleteStatus, OmBucketInfo omBucketInfo) {
+ boolean deleteStatus, OmBucketInfo omBucketInfo, long volumeId) {
OMClientResponse omClientResponse;
omClientResponse = new OMKeysDeleteResponseWithFSO(omResponse
.setDeleteKeysResponse(
@@ -145,7 +145,7 @@ public class OmKeysDeleteRequestWithFSO extends OMKeysDeleteRequest {
.setStatus(deleteStatus).setUnDeletedKeys(unDeletedKeys))
.setStatus(deleteStatus ? OK : PARTIAL_DELETE).setSuccess(deleteStatus)
.build(), omKeyInfoList, dirList, ozoneManager.isRatisEnabled(),
- omBucketInfo.copyObject());
+ omBucketInfo.copyObject(), volumeId);
return omClientResponse;
}
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/acl/OMKeyAclRequestWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/acl/OMKeyAclRequestWithFSO.java
index 6b831873c5..81841ad1b6 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/acl/OMKeyAclRequestWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/acl/OMKeyAclRequestWithFSO.java
@@ -128,8 +128,8 @@ public abstract class OMKeyAclRequestWithFSO extends OMKeyAclRequest {
.addCacheEntry(new CacheKey<>(dbKey),
new CacheValue<>(Optional.of(omKeyInfo), trxnLogIndex));
}
- omClientResponse =
- onSuccess(omResponse, omKeyInfo, operationResult, isDirectory);
+ omClientResponse = onSuccess(omResponse, omKeyInfo, operationResult,
+ isDirectory, volumeId, bucketId);
result = Result.SUCCESS;
} catch (IOException ex) {
result = Result.FAILURE;
@@ -169,6 +169,7 @@ public abstract class OMKeyAclRequestWithFSO extends OMKeyAclRequest {
abstract OMClientResponse onSuccess(
OzoneManagerProtocolProtos.OMResponse.Builder omResponse,
- OmKeyInfo omKeyInfo, boolean operationResult, boolean isDirectory);
+ OmKeyInfo omKeyInfo, boolean operationResult, boolean isDirectory,
+ long volumeId, long bucketId);
}
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/acl/OMKeyAddAclRequestWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/acl/OMKeyAddAclRequestWithFSO.java
index fe5737fa06..8364b65cdb 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/acl/OMKeyAddAclRequestWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/acl/OMKeyAddAclRequestWithFSO.java
@@ -140,14 +140,16 @@ public class OMKeyAddAclRequestWithFSO extends OMKeyAclRequestWithFSO {
omDoubleBufferHelper);
}
- @Override OMClientResponse onSuccess(
+ @Override
+ OMClientResponse onSuccess(
OzoneManagerProtocolProtos.OMResponse.Builder omResponse,
- OmKeyInfo omKeyInfo, boolean operationResult, boolean isDir) {
+ OmKeyInfo omKeyInfo, boolean operationResult, boolean isDir,
+ long volumeId, long bucketId) {
omResponse.setSuccess(operationResult);
omResponse.setAddAclResponse(
OzoneManagerProtocolProtos.AddAclResponse.newBuilder()
.setResponse(operationResult));
return new OMKeyAclResponseWithFSO(omResponse.build(), omKeyInfo, isDir,
- getBucketLayout());
+ getBucketLayout(), volumeId, bucketId);
}
}
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/acl/OMKeyRemoveAclRequestWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/acl/OMKeyRemoveAclRequestWithFSO.java
index 323343fad4..a00b365dad 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/acl/OMKeyRemoveAclRequestWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/acl/OMKeyRemoveAclRequestWithFSO.java
@@ -153,12 +153,13 @@ public class OMKeyRemoveAclRequestWithFSO extends OMKeyAclRequestWithFSO {
@Override
OMClientResponse onSuccess(
OzoneManagerProtocolProtos.OMResponse.Builder omResponse,
- OmKeyInfo omKeyInfo, boolean operationResult, boolean isDir) {
+ OmKeyInfo omKeyInfo, boolean operationResult, boolean isDir,
+ long volumeId, long bucketId) {
omResponse.setSuccess(operationResult);
omResponse.setRemoveAclResponse(
OzoneManagerProtocolProtos.RemoveAclResponse.newBuilder()
.setResponse(operationResult));
return new OMKeyAclResponseWithFSO(omResponse.build(), omKeyInfo, isDir,
- getBucketLayout());
+ getBucketLayout(), volumeId, bucketId);
}
}
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/acl/OMKeySetAclRequestWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/acl/OMKeySetAclRequestWithFSO.java
index 474b59af84..54aa001f6e 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/acl/OMKeySetAclRequestWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/acl/OMKeySetAclRequestWithFSO.java
@@ -146,12 +146,13 @@ public class OMKeySetAclRequestWithFSO extends OMKeyAclRequestWithFSO {
@Override
OMClientResponse onSuccess(
OzoneManagerProtocolProtos.OMResponse.Builder omResponse,
- OmKeyInfo omKeyInfo, boolean operationResult, boolean isDir) {
+ OmKeyInfo omKeyInfo, boolean operationResult, boolean isDir,
+ long volumeId, long bucketId) {
omResponse.setSuccess(operationResult);
omResponse.setSetAclResponse(
OzoneManagerProtocolProtos.SetAclResponse.newBuilder()
.setResponse(operationResult));
return new OMKeyAclResponseWithFSO(omResponse.build(), omKeyInfo, isDir,
- getBucketLayout());
+ getBucketLayout(), volumeId, bucketId);
}
}
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3InitiateMultipartUploadRequestWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3InitiateMultipartUploadRequestWithFSO.java
index 0aa0f63041..8a4e5c99e9 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3InitiateMultipartUploadRequestWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3InitiateMultipartUploadRequestWithFSO.java
@@ -218,7 +218,7 @@ public class S3InitiateMultipartUploadRequestWithFSO
.setKeyName(keyName)
.setMultipartUploadID(keyArgs.getMultipartUploadID()))
.build(), multipartKeyInfo, omKeyInfo, multipartKey,
- missingParentInfos, getBucketLayout());
+ missingParentInfos, getBucketLayout(), volumeId, bucketId);
result = Result.SUCCESS;
} catch (IOException ex) {
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java
index d51ed15be3..4a198531b2 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java
@@ -262,9 +262,11 @@ public class S3MultipartUploadCompleteRequest extends OMKeyRequest {
.setKey(keyName)
.setHash(DigestUtils.sha256Hex(keyName)));
+ long volumeId = omMetadataManager.getVolumeId(volumeName);
omClientResponse =
getOmClientResponse(multipartKey, omResponse, dbMultipartOpenKey,
- omKeyInfo, unUsedParts, omBucketInfo, oldKeyVersionsToDelete);
+ omKeyInfo, unUsedParts, omBucketInfo, oldKeyVersionsToDelete,
+ volumeId);
result = Result.SUCCESS;
} else {
@@ -299,10 +301,12 @@ public class S3MultipartUploadCompleteRequest extends OMKeyRequest {
createErrorOMResponse(omResponse, exception), getBucketLayout());
}
+ @SuppressWarnings("parameternumber")
protected OMClientResponse getOmClientResponse(String multipartKey,
OMResponse.Builder omResponse, String dbMultipartOpenKey,
OmKeyInfo omKeyInfo, List<OmKeyInfo> unUsedParts,
- OmBucketInfo omBucketInfo, RepeatedOmKeyInfo oldKeyVersionsToDelete) {
+ OmBucketInfo omBucketInfo, RepeatedOmKeyInfo oldKeyVersionsToDelete,
+ long volumeId) {
return new S3MultipartUploadCompleteResponse(omResponse.build(),
multipartKey, dbMultipartOpenKey, omKeyInfo, unUsedParts,
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequestWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequestWithFSO.java
index dfcdda06bf..b6beaafa20 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequestWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequestWithFSO.java
@@ -163,11 +163,11 @@ public class S3MultipartUploadCompleteRequestWithFSO
OzoneManagerProtocolProtos.OMResponse.Builder omResponse,
String dbMultipartOpenKey, OmKeyInfo omKeyInfo,
List<OmKeyInfo> unUsedParts, OmBucketInfo omBucketInfo,
- RepeatedOmKeyInfo oldKeyVersionsToDelete) {
+ RepeatedOmKeyInfo oldKeyVersionsToDelete, long volumeId) {
return new S3MultipartUploadCompleteResponseWithFSO(omResponse.build(),
multipartKey, dbMultipartOpenKey, omKeyInfo, unUsedParts,
- getBucketLayout(), omBucketInfo, oldKeyVersionsToDelete);
+ getBucketLayout(), omBucketInfo, oldKeyVersionsToDelete, volumeId);
}
@Override
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/file/OMDirectoryCreateResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/file/OMDirectoryCreateResponseWithFSO.java
index f7bf62e740..da095ab1b6 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/file/OMDirectoryCreateResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/file/OMDirectoryCreateResponseWithFSO.java
@@ -47,23 +47,20 @@ public class OMDirectoryCreateResponseWithFSO extends OmKeyResponse {
private OmDirectoryInfo dirInfo;
private List<OmDirectoryInfo> parentDirInfos;
private Result result;
- private String volume;
- private String bucket;
+ private long volumeId;
+ private long bucketId;
public OMDirectoryCreateResponseWithFSO(@Nonnull OMResponse omResponse,
- @Nonnull String volume,
- @Nonnull String bucket,
- @Nonnull OmDirectoryInfo dirInfo,
- @Nonnull
- List<OmDirectoryInfo> pDirInfos,
- @Nonnull Result result, @Nonnull
- BucketLayout bucketLayout) {
+ @Nonnull long volumeId, @Nonnull long bucketId,
+ @Nonnull OmDirectoryInfo dirInfo,
+ @Nonnull List<OmDirectoryInfo> pDirInfos, @Nonnull Result result,
+ @Nonnull BucketLayout bucketLayout) {
super(omResponse, bucketLayout);
this.dirInfo = dirInfo;
this.parentDirInfos = pDirInfos;
this.result = result;
- this.volume = volume;
- this.bucket = bucket;
+ this.volumeId = volumeId;
+ this.bucketId = bucketId;
}
/**
@@ -86,8 +83,6 @@ public class OMDirectoryCreateResponseWithFSO extends OmKeyResponse {
BatchOperation batchOperation)
throws IOException {
if (dirInfo != null) {
- final long volumeId = omMetadataManager.getVolumeId(volume);
- final long bucketId = omMetadataManager.getBucketId(volume, bucket);
if (parentDirInfos != null) {
for (OmDirectoryInfo parentDirInfo : parentDirInfos) {
String parentKey = omMetadataManager
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/file/OMFileCreateResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/file/OMFileCreateResponseWithFSO.java
index b54d22e837..2c635b7a3d 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/file/OMFileCreateResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/file/OMFileCreateResponseWithFSO.java
@@ -45,15 +45,16 @@ import static org.apache.hadoop.ozone.om.OmMetadataManagerImpl.OPEN_FILE_TABLE;
public class OMFileCreateResponseWithFSO extends OMFileCreateResponse {
private List<OmDirectoryInfo> parentDirInfos;
+ private long volumeId;
public OMFileCreateResponseWithFSO(@Nonnull OMResponse omResponse,
- @Nonnull OmKeyInfo omKeyInfo,
- @Nonnull List<OmDirectoryInfo> parentDirInfos,
- long openKeySessionID,
- @Nonnull OmBucketInfo omBucketInfo) {
+ @Nonnull OmKeyInfo omKeyInfo,
+ @Nonnull List<OmDirectoryInfo> parentDirInfos, long openKeySessionID,
+ @Nonnull OmBucketInfo omBucketInfo, @Nonnull long volumeId) {
super(omResponse, omKeyInfo, new ArrayList<>(), openKeySessionID,
omBucketInfo);
this.parentDirInfos = parentDirInfos;
+ this.volumeId = volumeId;
}
/**
@@ -75,13 +76,10 @@ public class OMFileCreateResponseWithFSO extends OMFileCreateResponse {
* XXX handle stale directory entries.
*/
if (parentDirInfos != null) {
- final long volumeId = omMetadataMgr.getVolumeId(
- getOmKeyInfo().getVolumeName());
- final long bucketId = omMetadataMgr.getBucketId(
- getOmKeyInfo().getVolumeName(), getOmKeyInfo().getBucketName());
for (OmDirectoryInfo parentDirInfo : parentDirInfos) {
- String parentKey = omMetadataMgr.getOzonePathKey(volumeId, bucketId,
- parentDirInfo.getParentObjectID(), parentDirInfo.getName());
+ String parentKey = omMetadataMgr.getOzonePathKey(volumeId,
+ getOmBucketInfo().getObjectID(), parentDirInfo.getParentObjectID(),
+ parentDirInfo.getName());
if (LOG.isDebugEnabled()) {
LOG.debug("putWithBatch adding parent : key {} info : {}", parentKey,
parentDirInfo);
@@ -92,7 +90,7 @@ public class OMFileCreateResponseWithFSO extends OMFileCreateResponse {
}
OMFileRequest.addToOpenFileTable(omMetadataMgr, batchOp, getOmKeyInfo(),
- getOpenKeySessionID());
+ getOpenKeySessionID(), volumeId, getOmBucketInfo().getObjectID());
}
@Override
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMAllocateBlockResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMAllocateBlockResponseWithFSO.java
index 05c484dbee..3a48d72d1d 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMAllocateBlockResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMAllocateBlockResponseWithFSO.java
@@ -38,10 +38,16 @@ import static org.apache.hadoop.ozone.om.OmMetadataManagerImpl.OPEN_FILE_TABLE;
@CleanupTableInfo(cleanupTables = {OPEN_FILE_TABLE, BUCKET_TABLE})
public class OMAllocateBlockResponseWithFSO extends OMAllocateBlockResponse {
+ private long volumeId;
+ private long bucketId;
+
public OMAllocateBlockResponseWithFSO(@Nonnull OMResponse omResponse,
@Nonnull OmKeyInfo omKeyInfo, long clientID,
- @Nonnull BucketLayout bucketLayout) {
+ @Nonnull BucketLayout bucketLayout, @Nonnull long volumeId,
+ @Nonnull long bucketId) {
super(omResponse, omKeyInfo, clientID, bucketLayout);
+ this.volumeId = volumeId;
+ this.bucketId = bucketId;
}
/**
@@ -58,7 +64,7 @@ public class OMAllocateBlockResponseWithFSO extends OMAllocateBlockResponse {
BatchOperation batchOperation) throws IOException {
OMFileRequest.addToOpenFileTable(omMetadataManager, batchOperation,
- getOmKeyInfo(), getClientID());
+ getOmKeyInfo(), getClientID(), volumeId, bucketId);
}
}
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMKeyCommitResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMKeyCommitResponseWithFSO.java
index 7f9af4b208..7f5d04a2c8 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMKeyCommitResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMKeyCommitResponseWithFSO.java
@@ -44,13 +44,16 @@ import static org.apache.hadoop.ozone.om.OmMetadataManagerImpl.DELETED_TABLE;
BUCKET_TABLE})
public class OMKeyCommitResponseWithFSO extends OMKeyCommitResponse {
+ private long volumeId;
+
public OMKeyCommitResponseWithFSO(@Nonnull OMResponse omResponse,
@Nonnull OmKeyInfo omKeyInfo,
String ozoneKeyName, String openKeyName,
@Nonnull OmBucketInfo omBucketInfo,
- RepeatedOmKeyInfo deleteKeys) {
+ RepeatedOmKeyInfo deleteKeys, long volumeId) {
super(omResponse, omKeyInfo, ozoneKeyName, openKeyName,
omBucketInfo, deleteKeys);
+ this.volumeId = volumeId;
}
/**
@@ -72,7 +75,7 @@ public class OMKeyCommitResponseWithFSO extends OMKeyCommitResponse {
.deleteWithBatch(batchOperation, getOpenKeyName());
OMFileRequest.addToFileTable(omMetadataManager, batchOperation,
- getOmKeyInfo());
+ getOmKeyInfo(), volumeId, getOmBucketInfo().getObjectID());
updateDeletedTable(omMetadataManager, batchOperation);
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMKeyCreateResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMKeyCreateResponseWithFSO.java
index 801f70c6ea..cac9e693a2 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMKeyCreateResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMKeyCreateResponseWithFSO.java
@@ -41,12 +41,12 @@ import static org.apache.hadoop.ozone.om.OmMetadataManagerImpl.OPEN_FILE_TABLE;
public class OMKeyCreateResponseWithFSO extends OMFileCreateResponseWithFSO {
public OMKeyCreateResponseWithFSO(@Nonnull OMResponse omResponse,
- @Nonnull OmKeyInfo omKeyInfo,
- @Nonnull List<OmDirectoryInfo> parentDirInfos,
- long openKeySessionID,
- @Nonnull OmBucketInfo omBucketInfo) {
+ @Nonnull OmKeyInfo omKeyInfo,
+ @Nonnull List<OmDirectoryInfo> parentDirInfos,
+ long openKeySessionID, @Nonnull OmBucketInfo omBucketInfo,
+ @Nonnull long volumeId) {
super(omResponse, omKeyInfo, parentDirInfos, openKeySessionID,
- omBucketInfo);
+ omBucketInfo, volumeId);
}
/**
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMKeyDeleteResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMKeyDeleteResponseWithFSO.java
index 5c521c3179..22f1702836 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMKeyDeleteResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMKeyDeleteResponseWithFSO.java
@@ -45,14 +45,17 @@ public class OMKeyDeleteResponseWithFSO extends OMKeyDeleteResponse {
private boolean isDeleteDirectory;
private String keyName;
+ private long volumeId;
+ @SuppressWarnings("parameternumber")
public OMKeyDeleteResponseWithFSO(@Nonnull OMResponse omResponse,
@Nonnull String keyName, @Nonnull OmKeyInfo omKeyInfo,
boolean isRatisEnabled, @Nonnull OmBucketInfo omBucketInfo,
- @Nonnull boolean isDeleteDirectory) {
+ @Nonnull boolean isDeleteDirectory, @Nonnull long volumeId) {
super(omResponse, omKeyInfo, isRatisEnabled, omBucketInfo);
this.keyName = keyName;
this.isDeleteDirectory = isDeleteDirectory;
+ this.volumeId = volumeId;
}
/**
@@ -68,17 +71,11 @@ public class OMKeyDeleteResponseWithFSO extends OMKeyDeleteResponse {
public void addToDBBatch(OMMetadataManager omMetadataManager,
BatchOperation batchOperation) throws IOException {
- final long volumeId = omMetadataManager.getVolumeId(
- getOmKeyInfo().getVolumeName());
- final long bucketId = omMetadataManager.getBucketId(
- getOmKeyInfo().getVolumeName(),
- getOmKeyInfo().getBucketName());
-
// For OmResponse with failure, this should do nothing. This method is
// not called in failure scenario in OM code.
String ozoneDbKey = omMetadataManager.getOzonePathKey(volumeId,
- bucketId, getOmKeyInfo().getParentObjectID(),
- getOmKeyInfo().getFileName());
+ getOmBucketInfo().getObjectID(), getOmKeyInfo().getParentObjectID(),
+ getOmKeyInfo().getFileName());
if (isDeleteDirectory) {
omMetadataManager.getDirectoryTable().deleteWithBatch(batchOperation,
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMKeysDeleteResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMKeysDeleteResponseWithFSO.java
index 25e1de3541..d0d98e1f54 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMKeysDeleteResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/OMKeysDeleteResponseWithFSO.java
@@ -27,6 +27,7 @@ import org.apache.hadoop.ozone.om.response.CleanupTableInfo;
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos;
import org.jetbrains.annotations.NotNull;
+import javax.annotation.Nonnull;
import java.io.IOException;
import java.util.List;
@@ -44,14 +45,16 @@ import static org.apache.hadoop.ozone.om.OmMetadataManagerImpl.FILE_TABLE;
public class OMKeysDeleteResponseWithFSO extends OMKeysDeleteResponse {
private List<OmKeyInfo> dirsList;
+ private long volumeId;
public OMKeysDeleteResponseWithFSO(
@NotNull OzoneManagerProtocolProtos.OMResponse omResponse,
@NotNull List<OmKeyInfo> keyDeleteList,
@NotNull List<OmKeyInfo> dirDeleteList, boolean isRatisEnabled,
- @NotNull OmBucketInfo omBucketInfo) {
+ @NotNull OmBucketInfo omBucketInfo, @Nonnull long volId) {
super(omResponse, keyDeleteList, isRatisEnabled, omBucketInfo);
this.dirsList = dirDeleteList;
+ this.volumeId = volId;
}
@Override
@@ -60,12 +63,9 @@ public class OMKeysDeleteResponseWithFSO extends OMKeysDeleteResponse {
Table<String, OmKeyInfo> keyTable =
omMetadataManager.getKeyTable(getBucketLayout());
+ final long bucketId = getOmBucketInfo().getObjectID();
// remove dirs from DirTable and add to DeletedDirTable
for (OmKeyInfo omKeyInfo : dirsList) {
- final long volumeId = omMetadataManager.getVolumeId(
- omKeyInfo.getVolumeName());
- final long bucketId = omMetadataManager.getBucketId(
- omKeyInfo.getVolumeName(), omKeyInfo.getBucketName());
String ozoneDbKey = omMetadataManager.getOzonePathKey(volumeId, bucketId,
omKeyInfo.getParentObjectID(), omKeyInfo.getFileName());
omMetadataManager.getDirectoryTable().deleteWithBatch(batchOperation,
@@ -76,10 +76,6 @@ public class OMKeysDeleteResponseWithFSO extends OMKeysDeleteResponse {
// remove keys from FileTable and add to DeletedTable
for (OmKeyInfo omKeyInfo : getOmKeyInfoList()) {
- final long volumeId = omMetadataManager.getVolumeId(
- omKeyInfo.getVolumeName());
- final long bucketId = omMetadataManager.getBucketId(
- omKeyInfo.getVolumeName(), omKeyInfo.getBucketName());
String ozoneDbKey = omMetadataManager.getOzonePathKey(volumeId, bucketId,
omKeyInfo.getParentObjectID(), omKeyInfo.getFileName());
String deletedKey = omMetadataManager
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/acl/OMKeyAclResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/acl/OMKeyAclResponseWithFSO.java
index 2d86defdd6..9bcfac86f6 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/acl/OMKeyAclResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/key/acl/OMKeyAclResponseWithFSO.java
@@ -40,13 +40,18 @@ import static org.apache.hadoop.ozone.om.OmMetadataManagerImpl.FILE_TABLE;
public class OMKeyAclResponseWithFSO extends OMKeyAclResponse {
private boolean isDirectory;
+ private long volumeId;
+ private long bucketId;
public OMKeyAclResponseWithFSO(
@NotNull OzoneManagerProtocolProtos.OMResponse omResponse,
@NotNull OmKeyInfo omKeyInfo, boolean isDirectory,
- @Nonnull BucketLayout bucketLayout) {
+ @Nonnull BucketLayout bucketLayout, @Nonnull long volumeId,
+ @Nonnull long bucketId) {
super(omResponse, omKeyInfo, bucketLayout);
this.isDirectory = isDirectory;
+ this.volumeId = volumeId;
+ this.bucketId = bucketId;
}
/**
@@ -64,14 +69,8 @@ public class OMKeyAclResponseWithFSO extends OMKeyAclResponse {
@Override public void addToDBBatch(OMMetadataManager omMetadataManager,
BatchOperation batchOperation) throws IOException {
- final long volumeId = omMetadataManager.getVolumeId(
- getOmKeyInfo().getVolumeName());
- final long bucketId = omMetadataManager.getBucketId(
- getOmKeyInfo().getVolumeName(), getOmKeyInfo().getBucketName());
- String ozoneDbKey = omMetadataManager
- .getOzonePathKey(volumeId, bucketId,
- getOmKeyInfo().getParentObjectID(),
- getOmKeyInfo().getFileName());
+ String ozoneDbKey = omMetadataManager.getOzonePathKey(volumeId, bucketId,
+ getOmKeyInfo().getParentObjectID(), getOmKeyInfo().getFileName());
if (isDirectory) {
OmDirectoryInfo dirInfo = OMFileRequest.getDirectoryInfo(getOmKeyInfo());
omMetadataManager.getDirectoryTable()
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/s3/multipart/S3InitiateMultipartUploadResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/s3/multipart/S3InitiateMultipartUploadResponseWithFSO.java
index 9e54ac01b9..25506e024a 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/s3/multipart/S3InitiateMultipartUploadResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/s3/multipart/S3InitiateMultipartUploadResponseWithFSO.java
@@ -46,16 +46,22 @@ public class S3InitiateMultipartUploadResponseWithFSO extends
S3InitiateMultipartUploadResponse {
private List<OmDirectoryInfo> parentDirInfos;
private String mpuDBKey;
+ private long volumeId;
+ private long bucketId;
+ @SuppressWarnings("parameternumber")
public S3InitiateMultipartUploadResponseWithFSO(
@Nonnull OMResponse omResponse,
@Nonnull OmMultipartKeyInfo omMultipartKeyInfo,
@Nonnull OmKeyInfo omKeyInfo, @Nonnull String mpuDBKey,
@Nonnull List<OmDirectoryInfo> parentDirInfos,
- @Nonnull BucketLayout bucketLayout) {
+ @Nonnull BucketLayout bucketLayout, @Nonnull long volumeId,
+ @Nonnull long bucketId) {
super(omResponse, omMultipartKeyInfo, omKeyInfo, bucketLayout);
this.parentDirInfos = parentDirInfos;
this.mpuDBKey = mpuDBKey;
+ this.volumeId = volumeId;
+ this.bucketId = bucketId;
}
/**
@@ -76,11 +82,6 @@ public class S3InitiateMultipartUploadResponseWithFSO extends
* wait for File Commit request.
*/
if (parentDirInfos != null) {
- final OmKeyInfo keyInfo = getOmKeyInfo();
- final long volumeId = omMetadataManager.getVolumeId(
- keyInfo.getVolumeName());
- final long bucketId = omMetadataManager.getBucketId(
- keyInfo.getVolumeName(), keyInfo.getBucketName());
for (OmDirectoryInfo parentDirInfo : parentDirInfos) {
final String parentKey = omMetadataManager.getOzonePathKey(
volumeId, bucketId, parentDirInfo.getParentObjectID(),
@@ -91,7 +92,8 @@ public class S3InitiateMultipartUploadResponseWithFSO extends
}
OMFileRequest.addToOpenFileTable(omMetadataManager, batchOperation,
- getOmKeyInfo(), getOmMultipartKeyInfo().getUploadID());
+ getOmKeyInfo(), getOmMultipartKeyInfo().getUploadID(), volumeId,
+ bucketId);
omMetadataManager.getMultipartInfoTable().putWithBatch(batchOperation,
mpuDBKey, getOmMultipartKeyInfo());
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/s3/multipart/S3MultipartUploadCompleteResponse.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/s3/multipart/S3MultipartUploadCompleteResponse.java
index 21a4810848..a3e9f0d5c5 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/s3/multipart/S3MultipartUploadCompleteResponse.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/s3/multipart/S3MultipartUploadCompleteResponse.java
@@ -147,4 +147,7 @@ public class S3MultipartUploadCompleteResponse extends OmKeyResponse {
return partsUnusedList;
}
+ public OmBucketInfo getOmBucketInfo() {
+ return omBucketInfo;
+ }
}
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/s3/multipart/S3MultipartUploadCompleteResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/s3/multipart/S3MultipartUploadCompleteResponseWithFSO.java
index eadc55faaa..8eec71ded3 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/s3/multipart/S3MultipartUploadCompleteResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/response/s3/multipart/S3MultipartUploadCompleteResponseWithFSO.java
@@ -50,6 +50,8 @@ import static org.apache.hadoop.ozone.om.OmMetadataManagerImpl.OPEN_FILE_TABLE;
public class S3MultipartUploadCompleteResponseWithFSO
extends S3MultipartUploadCompleteResponse {
+ private long volumeId;
+
@SuppressWarnings("checkstyle:ParameterNumber")
public S3MultipartUploadCompleteResponseWithFSO(
@Nonnull OMResponse omResponse,
@@ -59,9 +61,10 @@ public class S3MultipartUploadCompleteResponseWithFSO
@Nonnull List<OmKeyInfo> unUsedParts,
@Nonnull BucketLayout bucketLayout,
@Nonnull OmBucketInfo omBucketInfo,
- RepeatedOmKeyInfo keysToDelete) {
+ RepeatedOmKeyInfo keysToDelete, @Nonnull long volumeId) {
super(omResponse, multipartKey, multipartOpenKey, omKeyInfo, unUsedParts,
bucketLayout, omBucketInfo, keysToDelete);
+ this.volumeId = volumeId;
}
/**
@@ -83,7 +86,8 @@ public class S3MultipartUploadCompleteResponseWithFSO
getOmKeyInfo().getBucketName(), getOmKeyInfo().getKeyName());
OMFileRequest
- .addToFileTable(omMetadataManager, batchOperation, getOmKeyInfo());
+ .addToFileTable(omMetadataManager, batchOperation, getOmKeyInfo(),
+ volumeId, getOmBucketInfo().getObjectID());
return ozoneKey;
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/OMRequestTestUtils.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/OMRequestTestUtils.java
index ad266337d7..2679634f9f 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/OMRequestTestUtils.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/OMRequestTestUtils.java
@@ -1159,41 +1159,43 @@ public final class OMRequestTestUtils {
*
* @throws Exception DB failure
*/
- public static void addFileToKeyTable(boolean openKeyTable,
+ public static String addFileToKeyTable(boolean openKeyTable,
boolean addToCache, String fileName,
OmKeyInfo omKeyInfo,
long clientID, long trxnLogIndex,
OMMetadataManager omMetadataManager)
throws Exception {
+ String ozoneDBKey;
if (openKeyTable) {
final long volumeId = omMetadataManager.getVolumeId(
omKeyInfo.getVolumeName());
final long bucketId = omMetadataManager.getBucketId(
omKeyInfo.getVolumeName(), omKeyInfo.getBucketName());
- final String ozoneKey = omMetadataManager.getOpenFileName(
+ ozoneDBKey = omMetadataManager.getOpenFileName(
volumeId, bucketId, omKeyInfo.getParentObjectID(),
fileName, clientID);
if (addToCache) {
omMetadataManager.getOpenKeyTable(BucketLayout.FILE_SYSTEM_OPTIMIZED)
- .addCacheEntry(new CacheKey<>(ozoneKey),
+ .addCacheEntry(new CacheKey<>(ozoneDBKey),
new CacheValue<>(Optional.of(omKeyInfo), trxnLogIndex));
}
omMetadataManager.getOpenKeyTable(BucketLayout.FILE_SYSTEM_OPTIMIZED)
- .put(ozoneKey, omKeyInfo);
+ .put(ozoneDBKey, omKeyInfo);
} else {
- String ozoneKey = omMetadataManager.getOzonePathKey(
+ ozoneDBKey = omMetadataManager.getOzonePathKey(
omMetadataManager.getVolumeId(omKeyInfo.getVolumeName()),
omMetadataManager.getBucketId(omKeyInfo.getVolumeName(),
omKeyInfo.getBucketName()),
omKeyInfo.getParentObjectID(), fileName);
if (addToCache) {
omMetadataManager.getKeyTable(BucketLayout.FILE_SYSTEM_OPTIMIZED)
- .addCacheEntry(new CacheKey<>(ozoneKey),
+ .addCacheEntry(new CacheKey<>(ozoneDBKey),
new CacheValue<>(Optional.of(omKeyInfo), trxnLogIndex));
}
omMetadataManager.getKeyTable(BucketLayout.FILE_SYSTEM_OPTIMIZED)
- .put(ozoneKey, omKeyInfo);
+ .put(ozoneDBKey, omKeyInfo);
}
+ return ozoneDBKey;
}
/**
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/file/TestOMDirectoryCreateResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/file/TestOMDirectoryCreateResponseWithFSO.java
index 0a8471ce98..e411eb626d 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/file/TestOMDirectoryCreateResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/file/TestOMDirectoryCreateResponseWithFSO.java
@@ -86,7 +86,7 @@ public class TestOMDirectoryCreateResponseWithFSO {
.build();
OMDirectoryCreateResponseWithFSO omDirectoryCreateResponseWithFSO =
- new OMDirectoryCreateResponseWithFSO(omResponse, volume, bucket,
+ new OMDirectoryCreateResponseWithFSO(omResponse, volumeId, bucketId,
omDirInfo, new ArrayList<>(),
OMDirectoryCreateRequestWithFSO.Result.SUCCESS,
BucketLayout.FILE_SYSTEM_OPTIMIZED);
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/file/TestOMFileCreateResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/file/TestOMFileCreateResponseWithFSO.java
index 1e251e5d9f..a1cb8bcbb7 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/file/TestOMFileCreateResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/file/TestOMFileCreateResponseWithFSO.java
@@ -62,10 +62,10 @@ public class TestOMFileCreateResponseWithFSO extends TestOMKeyCreateResponse {
@NotNull
@Override
protected OMKeyCreateResponse getOmKeyCreateResponse(OmKeyInfo keyInfo,
- OmBucketInfo bucketInfo, OMResponse response) {
+ OmBucketInfo bucketInfo, OMResponse response) throws IOException {
return new OMFileCreateResponseWithFSO(response, keyInfo,
- new ArrayList<>(), clientID, bucketInfo);
+ new ArrayList<>(), clientID, bucketInfo, getVolumeId());
}
@Override
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMAllocateBlockResponse.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMAllocateBlockResponse.java
index cea22710e1..d41e0f61aa 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMAllocateBlockResponse.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMAllocateBlockResponse.java
@@ -19,7 +19,6 @@
package org.apache.hadoop.ozone.om.response.key;
import org.apache.hadoop.ozone.om.helpers.OmBucketInfo;
-import org.apache.hadoop.util.Time;
import org.jetbrains.annotations.NotNull;
import org.junit.Assert;
import org.junit.Test;
@@ -30,6 +29,8 @@ import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos;
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.AllocateBlockResponse;
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMResponse;
+import java.io.IOException;
+
/**
* Tests OMAllocateBlockResponse.
*/
@@ -39,9 +40,6 @@ public class TestOMAllocateBlockResponse extends TestOMKeyResponse {
public void testAddToDBBatch() throws Exception {
OmKeyInfo omKeyInfo = createOmKeyInfo();
- OmBucketInfo omBucketInfo = OmBucketInfo.newBuilder()
- .setVolumeName(volumeName).setBucketName(bucketName)
- .setCreationTime(Time.now()).build();
OMResponse omResponse = OMResponse.newBuilder()
.setAllocateBlockResponse(
@@ -69,9 +67,6 @@ public class TestOMAllocateBlockResponse extends TestOMKeyResponse {
@Test
public void testAddToDBBatchWithErrorResponse() throws Exception {
OmKeyInfo omKeyInfo = createOmKeyInfo();
- OmBucketInfo omBucketInfo = OmBucketInfo.newBuilder()
- .setVolumeName(volumeName).setBucketName(bucketName)
- .setCreationTime(Time.now()).build();
OMResponse omResponse = OMResponse.newBuilder()
.setAllocateBlockResponse(
@@ -111,7 +106,7 @@ public class TestOMAllocateBlockResponse extends TestOMKeyResponse {
@NotNull
protected OMAllocateBlockResponse getOmAllocateBlockResponse(
OmKeyInfo omKeyInfo, OmBucketInfo omBucketInfo,
- OMResponse omResponse) {
+ OMResponse omResponse) throws IOException {
return new OMAllocateBlockResponse(omResponse, omKeyInfo, clientID,
getBucketLayout());
}
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMAllocateBlockResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMAllocateBlockResponseWithFSO.java
index b87deaf420..7f6609887c 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMAllocateBlockResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMAllocateBlockResponseWithFSO.java
@@ -28,6 +28,8 @@ import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRespo
import org.apache.hadoop.util.Time;
import org.jetbrains.annotations.NotNull;
+import java.io.IOException;
+
/**
* Tests OMAllocateBlockResponse - prefix layout.
*/
@@ -67,10 +69,11 @@ public class TestOMAllocateBlockResponseWithFSO
@NotNull
@Override
protected OMAllocateBlockResponse getOmAllocateBlockResponse(
- OmKeyInfo omKeyInfo, OmBucketInfo omBucketInfo,
- OMResponse omResponse) {
+ OmKeyInfo omKeyInfo, OmBucketInfo omBucketInfo,
+ OMResponse omResponse) throws IOException {
return new OMAllocateBlockResponseWithFSO(omResponse, omKeyInfo, clientID,
- getBucketLayout());
+ getBucketLayout(), omMetadataManager.getVolumeId(volumeName),
+ omBucketInfo.getObjectID());
}
@Override
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyCommitResponse.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyCommitResponse.java
index 5782e0df49..b7bde621f9 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyCommitResponse.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyCommitResponse.java
@@ -19,9 +19,7 @@
package org.apache.hadoop.ozone.om.response.key;
import org.apache.hadoop.ozone.OmUtils;
-import org.apache.hadoop.ozone.om.helpers.OmBucketInfo;
import org.apache.hadoop.ozone.om.helpers.RepeatedOmKeyInfo;
-import org.apache.hadoop.util.Time;
import org.jetbrains.annotations.NotNull;
import org.junit.Assert;
import org.junit.Test;
@@ -41,10 +39,6 @@ public class TestOMKeyCommitResponse extends TestOMKeyResponse {
@Test
public void testAddToDBBatch() throws Exception {
- omBucketInfo = OmBucketInfo.newBuilder()
- .setVolumeName(volumeName).setBucketName(bucketName)
- .setCreationTime(Time.now()).build();
-
OmKeyInfo omKeyInfo = getOmKeyInfo();
OzoneManagerProtocolProtos.OMResponse omResponse =
@@ -83,9 +77,6 @@ public class TestOMKeyCommitResponse extends TestOMKeyResponse {
OmKeyInfo omKeyInfo = OMRequestTestUtils.createOmKeyInfo(volumeName,
bucketName, keyName, replicationType, replicationFactor);
- omBucketInfo = OmBucketInfo.newBuilder()
- .setVolumeName(volumeName).setBucketName(bucketName)
- .setCreationTime(Time.now()).build();
OzoneManagerProtocolProtos.OMResponse omResponse =
OzoneManagerProtocolProtos.OMResponse.newBuilder().setCommitKeyResponse(
@@ -123,9 +114,6 @@ public class TestOMKeyCommitResponse extends TestOMKeyResponse {
@Test
public void testAddToDBBatchOnOverwrite() throws Exception {
- omBucketInfo = OmBucketInfo.newBuilder()
- .setVolumeName(volumeName).setBucketName(bucketName)
- .setCreationTime(Time.now()).build();
OmKeyInfo omKeyInfo = getOmKeyInfo();
keysToDelete =
OmUtils.prepareKeyForDelete(omKeyInfo, null, 100, false);
@@ -155,7 +143,7 @@ public class TestOMKeyCommitResponse extends TestOMKeyResponse {
@NotNull
protected OMKeyCommitResponse getOmKeyCommitResponse(OmKeyInfo omKeyInfo,
OzoneManagerProtocolProtos.OMResponse omResponse, String openKey,
- String ozoneKey, RepeatedOmKeyInfo deleteKeys) {
+ String ozoneKey, RepeatedOmKeyInfo deleteKeys) throws IOException {
Assert.assertNotNull(omBucketInfo);
return new OMKeyCommitResponse(omResponse, omKeyInfo, ozoneKey, openKey,
omBucketInfo, deleteKeys);
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyCommitResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyCommitResponseWithFSO.java
index d097950491..4cde84fd39 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyCommitResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyCommitResponseWithFSO.java
@@ -40,10 +40,11 @@ public class TestOMKeyCommitResponseWithFSO extends TestOMKeyCommitResponse {
@Override
protected OMKeyCommitResponse getOmKeyCommitResponse(OmKeyInfo omKeyInfo,
OzoneManagerProtocolProtos.OMResponse omResponse, String openKey,
- String ozoneKey, RepeatedOmKeyInfo deleteKeys) {
+ String ozoneKey, RepeatedOmKeyInfo deleteKeys) throws IOException {
Assert.assertNotNull(omBucketInfo);
+ long volumeId = omMetadataManager.getVolumeId(omKeyInfo.getVolumeName());
return new OMKeyCommitResponseWithFSO(omResponse, omKeyInfo, ozoneKey,
- openKey, omBucketInfo, deleteKeys);
+ openKey, omBucketInfo, deleteKeys, volumeId);
}
@NotNull
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyCreateResponse.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyCreateResponse.java
index 290d7b9525..a9d11c83b6 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyCreateResponse.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyCreateResponse.java
@@ -19,7 +19,6 @@
package org.apache.hadoop.ozone.om.response.key;
import org.apache.hadoop.ozone.om.helpers.OmBucketInfo;
-import org.apache.hadoop.util.Time;
import org.jetbrains.annotations.NotNull;
import org.junit.Assert;
import org.junit.Test;
@@ -31,19 +30,21 @@ import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos
.OMResponse;
+import java.io.IOException;
+
/**
* Tests MKeyCreateResponse.
*/
public class TestOMKeyCreateResponse extends TestOMKeyResponse {
+ protected long getVolumeId() throws IOException {
+ return omMetadataManager.getVolumeId(volumeName);
+ }
+
@Test
public void testAddToDBBatch() throws Exception {
- omBucketInfo = OmBucketInfo.newBuilder()
- .setVolumeName(volumeName).setBucketName(bucketName)
- .setCreationTime(Time.now()).build();
-
OmKeyInfo omKeyInfo = getOmKeyInfo();
OMResponse omResponse = OMResponse.newBuilder().setCreateKeyResponse(
@@ -72,10 +73,6 @@ public class TestOMKeyCreateResponse extends TestOMKeyResponse {
@Test
public void testAddToDBBatchWithErrorResponse() throws Exception {
- omBucketInfo = OmBucketInfo.newBuilder()
- .setVolumeName(volumeName).setBucketName(bucketName)
- .setCreationTime(Time.now()).build();
-
OmKeyInfo omKeyInfo = getOmKeyInfo();
OMResponse omResponse = OMResponse.newBuilder().setCreateKeyResponse(
@@ -106,7 +103,7 @@ public class TestOMKeyCreateResponse extends TestOMKeyResponse {
@NotNull
protected OMKeyCreateResponse getOmKeyCreateResponse(OmKeyInfo keyInfo,
- OmBucketInfo bucketInfo, OMResponse response) {
+ OmBucketInfo bucketInfo, OMResponse response) throws IOException {
return new OMKeyCreateResponse(response, keyInfo, null, clientID,
bucketInfo);
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyCreateResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyCreateResponseWithFSO.java
index fe0af3a337..df5959dae4 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyCreateResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyCreateResponseWithFSO.java
@@ -60,10 +60,10 @@ public class TestOMKeyCreateResponseWithFSO extends TestOMKeyCreateResponse {
@NotNull
@Override
protected OMKeyCreateResponse getOmKeyCreateResponse(OmKeyInfo keyInfo,
- OmBucketInfo bucketInfo, OMResponse response) {
+ OmBucketInfo bucketInfo, OMResponse response) throws IOException {
return new OMKeyCreateResponseWithFSO(response, keyInfo, new ArrayList<>(),
- clientID, bucketInfo);
+ clientID, bucketInfo, getVolumeId());
}
@Override
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyDeleteResponse.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyDeleteResponse.java
index 585dba6694..adb9151b23 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyDeleteResponse.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyDeleteResponse.java
@@ -26,7 +26,6 @@ import org.apache.hadoop.ozone.om.helpers.BucketLayout;
import org.apache.hadoop.ozone.om.helpers.OmBucketInfo;
import org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfo;
import org.apache.hadoop.ozone.om.request.OMRequestTestUtils;
-import org.apache.hadoop.util.Time;
import org.junit.Assert;
import org.junit.Test;
@@ -41,15 +40,8 @@ import java.util.List;
*/
public class TestOMKeyDeleteResponse extends TestOMKeyResponse {
- private OmBucketInfo omBucketInfo;
-
@Test
public void testAddToDBBatch() throws Exception {
- omBucketInfo = OmBucketInfo.newBuilder()
- .setVolumeName(volumeName).setBucketName(bucketName)
- .setObjectID(System.currentTimeMillis())
- .setCreationTime(Time.now()).build();
-
String ozoneKey = addKeyToTable();
OmKeyInfo omKeyInfo = omMetadataManager
.getKeyTable(getBucketLayout()).get(ozoneKey);
@@ -85,11 +77,6 @@ public class TestOMKeyDeleteResponse extends TestOMKeyResponse {
@Test
public void testAddToDBBatchWithNonEmptyBlocks() throws Exception {
- omBucketInfo = OmBucketInfo.newBuilder()
- .setVolumeName(volumeName).setBucketName(bucketName)
- .setObjectID(System.currentTimeMillis())
- .setCreationTime(Time.now()).build();
-
final String ozoneKey = addKeyToTable();
final OmKeyInfo omKeyInfo = omMetadataManager
.getKeyTable(getBucketLayout())
@@ -146,9 +133,6 @@ public class TestOMKeyDeleteResponse extends TestOMKeyResponse {
@Test
public void testAddToDBBatchWithErrorResponse() throws Exception {
- omBucketInfo = OmBucketInfo.newBuilder()
- .setVolumeName(volumeName).setBucketName(bucketName)
- .setCreationTime(Time.now()).build();
OmKeyInfo omKeyInfo = getOmKeyInfo();
OzoneManagerProtocolProtos.OMResponse omResponse =
@@ -188,7 +172,7 @@ public class TestOMKeyDeleteResponse extends TestOMKeyResponse {
}
protected OMKeyDeleteResponse getOmKeyDeleteResponse(OmKeyInfo omKeyInfo,
- OzoneManagerProtocolProtos.OMResponse omResponse) {
+ OzoneManagerProtocolProtos.OMResponse omResponse) throws Exception {
return new OMKeyDeleteResponse(omResponse, omKeyInfo, true, omBucketInfo);
}
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyDeleteResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyDeleteResponseWithFSO.java
index ca37e55c48..19eae28eb8 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyDeleteResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeyDeleteResponseWithFSO.java
@@ -33,9 +33,10 @@ public class TestOMKeyDeleteResponseWithFSO extends TestOMKeyDeleteResponse {
@Override
protected OMKeyDeleteResponse getOmKeyDeleteResponse(OmKeyInfo omKeyInfo,
- OzoneManagerProtocolProtos.OMResponse omResponse) {
+ OzoneManagerProtocolProtos.OMResponse omResponse) throws Exception {
return new OMKeyDeleteResponseWithFSO(omResponse, omKeyInfo.getKeyName(),
- omKeyInfo, true, getOmBucketInfo(), false);
+ omKeyInfo, true, getOmBucketInfo(), false,
+ omMetadataManager.getVolumeId(volumeName));
}
@Override
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeysDeleteResponse.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeysDeleteResponse.java
index 0d6a6d9006..94de269fbd 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeysDeleteResponse.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeysDeleteResponse.java
@@ -25,7 +25,6 @@ import org.apache.hadoop.ozone.om.request.OMRequestTestUtils;
import org.apache.hadoop.ozone.om.response.OMClientResponse;
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.DeleteKeysResponse;
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMResponse;
-import org.apache.hadoop.util.Time;
import org.junit.Assert;
import org.junit.Test;
@@ -44,16 +43,21 @@ import static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.
public class TestOMKeysDeleteResponse extends TestOMKeyResponse {
- private List<OmKeyInfo> omKeyInfoList;
- private List<String> ozoneKeys;
+ private List<OmKeyInfo> omKeyInfoList = new ArrayList<>();
+ private List<String> ozoneKeys = new ArrayList<>();
+ protected List<OmKeyInfo> getOmKeyInfoList() {
+ return omKeyInfoList;
+ }
+
+ protected List<String> getOzoneKeys() {
+ return ozoneKeys;
+ }
- private void createPreRequisities() throws Exception {
+ protected void createPreRequisities() throws Exception {
String parent = "/user";
String key = "key";
- omKeyInfoList = new ArrayList<>();
- ozoneKeys = new ArrayList<>();
String ozoneKey = "";
for (int i = 0; i < 10; i++) {
keyName = parent.concat(key + i);
@@ -77,12 +81,8 @@ public class TestOMKeysDeleteResponse extends TestOMKeyResponse {
.setDeleteKeysResponse(DeleteKeysResponse.newBuilder()
.setStatus(true)).build();
- OmBucketInfo omBucketInfo = OmBucketInfo.newBuilder()
- .setVolumeName(volumeName).setBucketName(bucketName)
- .setCreationTime(Time.now()).build();
-
- OMClientResponse omKeysDeleteResponse = new OMKeysDeleteResponse(
- omResponse, omKeyInfoList, true, omBucketInfo);
+ OMClientResponse omKeysDeleteResponse =
+ getOmKeysDeleteResponse(omResponse, omBucketInfo);
omKeysDeleteResponse.checkAndUpdateDB(omMetadataManager, batchOperation);
@@ -100,6 +100,12 @@ public class TestOMKeysDeleteResponse extends TestOMKeyResponse {
}
+ protected OMClientResponse getOmKeysDeleteResponse(OMResponse omResponse,
+ OmBucketInfo omBucketInfo) {
+ return new OMKeysDeleteResponse(
+ omResponse, omKeyInfoList, true, omBucketInfo);
+ }
+
@Test
public void testKeysDeleteResponseFail() throws Exception {
createPreRequisities();
@@ -110,12 +116,8 @@ public class TestOMKeysDeleteResponse extends TestOMKeyResponse {
.setDeleteKeysResponse(DeleteKeysResponse.newBuilder()
.setStatus(false)).build();
- OmBucketInfo omBucketInfo = OmBucketInfo.newBuilder()
- .setVolumeName(volumeName).setBucketName(bucketName)
- .setCreationTime(Time.now()).build();
-
- OMClientResponse omKeysDeleteResponse = new OMKeysDeleteResponse(
- omResponse, omKeyInfoList, true, omBucketInfo);
+ OMClientResponse omKeysDeleteResponse
+ = getOmKeysDeleteResponse(omResponse, omBucketInfo);
omKeysDeleteResponse.checkAndUpdateDB(omMetadataManager, batchOperation);
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeysDeleteResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeysDeleteResponseWithFSO.java
new file mode 100644
index 0000000000..9d17220631
--- /dev/null
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/key/TestOMKeysDeleteResponseWithFSO.java
@@ -0,0 +1,180 @@
+/**
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.response.key;
+
+import com.google.common.base.Optional;
+import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
+import org.apache.hadoop.hdds.utils.db.cache.CacheKey;
+import org.apache.hadoop.hdds.utils.db.cache.CacheValue;
+import org.apache.hadoop.ozone.om.helpers.BucketLayout;
+import org.apache.hadoop.ozone.om.helpers.OmBucketInfo;
+import org.apache.hadoop.ozone.om.helpers.OmDirectoryInfo;
+import org.apache.hadoop.ozone.om.helpers.OmKeyInfo;
+import org.apache.hadoop.ozone.om.helpers.RepeatedOmKeyInfo;
+import org.apache.hadoop.ozone.om.request.OMRequestTestUtils;
+import org.apache.hadoop.ozone.om.request.file.OMFileRequest;
+import org.apache.hadoop.ozone.om.response.OMClientResponse;
+import org.apache.hadoop.ozone.om.response.bucket.OMBucketDeleteResponse;
+import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos;
+import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.DeleteKeysResponse;
+import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMResponse;
+import org.apache.hadoop.util.Time;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.Status.OK;
+import static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.Type.DeleteKeys;
+
+/**
+ * Class to test OMKeysDeleteResponse with FSO bucket layout.
+ */
+public class TestOMKeysDeleteResponseWithFSO
+ extends TestOMKeysDeleteResponse {
+
+ private List<OmKeyInfo> dirDeleteList = new ArrayList<>();
+ private List<String> dirDBKeys = new ArrayList<>();
+ private long volId;
+
+ @Override
+ public BucketLayout getBucketLayout() {
+ return BucketLayout.FILE_SYSTEM_OPTIMIZED;
+ }
+
+ protected void createPreRequisities() throws Exception {
+ volId = omMetadataManager.getVolumeId(volumeName);
+ long buckId = omMetadataManager.getBucketId(volumeName, bucketName);
+
+ // Create some dir under the bucket
+ String dir = "dir1";
+ OmDirectoryInfo omDirInfo =
+ OMRequestTestUtils.createOmDirectoryInfo(dir, 5000,
+ buckId);
+ OMRequestTestUtils.addDirKeyToDirTable(false, omDirInfo,
+ volumeName, bucketName, 6001, omMetadataManager);
+ long dirId = omDirInfo.getObjectID();
+
+ String dirOzoneDBKey =
+ omMetadataManager.getOzonePathKey(volId, buckId, buckId, dir);
+ OmDirectoryInfo dirInfo =
+ omMetadataManager.getDirectoryTable().get(dirOzoneDBKey);
+
+ OmKeyInfo dirKeyInfo = OMFileRequest.getOmKeyInfo(volumeName,
+ bucketName, dirInfo, dir);
+ dirDeleteList.add(dirKeyInfo);
+ dirDBKeys.add(dirOzoneDBKey);
+
+ // create set of keys directly under the bucket
+ String ozoneDBKey = "";
+ String keyPrefix = "key";
+ for (int i = 0; i < 10; i++) {
+ keyName = keyPrefix + i;
+
+ OmKeyInfo omKeyInfo =
+ OMRequestTestUtils.createOmKeyInfo(volumeName, bucketName, keyName,
+ HddsProtos.ReplicationType.RATIS,
+ HddsProtos.ReplicationFactor.ONE, dirId + 1, buckId,
+ dirId + 1, Time.now());
+ ozoneDBKey = OMRequestTestUtils.addFileToKeyTable(false, false,
+ keyName, omKeyInfo, -1, 50, omMetadataManager);
+
+ getOmKeyInfoList().add(omKeyInfo);
+ getOzoneKeys().add(ozoneDBKey);
+ }
+ }
+
+ @Override
+ protected OMClientResponse getOmKeysDeleteResponse(OMResponse omResponse,
+ OmBucketInfo omBucketInfo) {
+ return new OMKeysDeleteResponseWithFSO(
+ omResponse, getOmKeyInfoList(), dirDeleteList, true, omBucketInfo,
+ volId);
+ }
+
+ @Test
+ public void testKeysDeleteResponseWithNoBucketExists() throws Exception {
+
+ createPreRequisities();
+
+ OMResponse omResponse =
+ OMResponse.newBuilder().setCmdType(DeleteKeys).setStatus(OK)
+ .setSuccess(true)
+ .setDeleteKeysResponse(DeleteKeysResponse.newBuilder()
+ .setStatus(true)).build();
+
+ // Simulates associated bucket deletion.
+ // Updates both table cache and DB.
+ deleteBucket();
+
+ OMClientResponse omKeysDeleteResponse =
+ getOmKeysDeleteResponse(omResponse, omBucketInfo);
+
+ omKeysDeleteResponse.checkAndUpdateDB(omMetadataManager, batchOperation);
+
+ omMetadataManager.getStore().commitBatchOperation(batchOperation);
+ for (String ozKey : getOzoneKeys()) {
+ Assert.assertNull(
+ omMetadataManager.getKeyTable(getBucketLayout()).get(ozKey));
+
+ // ozKey had no block information associated with it, so it should have
+ // been removed from the file table but not added to the delete table.
+ RepeatedOmKeyInfo repeatedOmKeyInfo =
+ omMetadataManager.getDeletedTable().get(ozKey);
+ Assert.assertNull(repeatedOmKeyInfo);
+ }
+
+ for (String dirDBKey : dirDBKeys) {
+ Assert.assertNull(
+ omMetadataManager.getDirectoryTable().get(dirDBKey));
+
+ // dir deleted from DirTable
+ RepeatedOmKeyInfo repeatedOmKeyInfo =
+ omMetadataManager.getDeletedTable().get(dirDBKey);
+ Assert.assertNull(repeatedOmKeyInfo);
+
+ // dir added to the deleted dir table, for deep cleanups
+ OmKeyInfo omDirInfo =
+ omMetadataManager.getDeletedDirTable().get(dirDBKey);
+ Assert.assertNotNull(omDirInfo);
+ }
+
+ }
+
+ private void deleteBucket() throws IOException {
+ omMetadataManager.getBucketTable().addCacheEntry(
+ new CacheKey<>(omMetadataManager.getBucketKey(volumeName, bucketName)),
+ new CacheValue<>(Optional.absent(), 10001));
+
+ OMBucketDeleteResponse omBucketDeleteResponse =
+ new OMBucketDeleteResponse(OMResponse.newBuilder()
+ .setCmdType(OzoneManagerProtocolProtos.Type.DeleteBucket)
+ .setStatus(OzoneManagerProtocolProtos.Status.OK)
+ .setDeleteBucketResponse(
+ OzoneManagerProtocolProtos.DeleteBucketResponse
+ .getDefaultInstance()).build(),
+ volumeName, bucketName);
+
+ omBucketDeleteResponse.addToDBBatch(omMetadataManager, batchOperation);
+ // Do manual commit and see whether addToBatch is successful or not.
+ omMetadataManager.getStore().commitBatchOperation(batchOperation);
+ }
+}
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3InitiateMultipartUploadResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3InitiateMultipartUploadResponseWithFSO.java
index 8c90751641..436adb7aa5 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3InitiateMultipartUploadResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3InitiateMultipartUploadResponseWithFSO.java
@@ -56,9 +56,13 @@ public class TestS3InitiateMultipartUploadResponseWithFSO
long parentID = 1027; // assume objectID of dir path "a/b/c/d" is 1027
List<OmDirectoryInfo> parentDirInfos = new ArrayList<>();
+ final long volumeId = omMetadataManager.getVolumeId(volumeName);
+ final long bucketId = omMetadataManager.getBucketId(volumeName,
+ bucketName);
+
S3InitiateMultipartUploadResponse s3InitiateMultipartUploadResponseFSO =
- createS3InitiateMPUResponseFSO(volumeName, bucketName, parentID,
- keyName, multipartUploadID, parentDirInfos);
+ createS3InitiateMPUResponseFSO(volumeName, bucketName, parentID,
+ keyName, multipartUploadID, parentDirInfos, volumeId, bucketId);
s3InitiateMultipartUploadResponseFSO.addToDBBatch(omMetadataManager,
batchOperation);
@@ -69,9 +73,7 @@ public class TestS3InitiateMultipartUploadResponseWithFSO
String multipartKey = omMetadataManager
.getMultipartKey(volumeName, bucketName, keyName, multipartUploadID);
- final long volumeId = omMetadataManager.getVolumeId(volumeName);
- final long bucketId = omMetadataManager.getBucketId(volumeName,
- bucketName);
+
String multipartOpenKey = omMetadataManager
.getMultipartKey(volumeId, bucketId, parentID,
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartResponse.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartResponse.java
index 9adb39b373..5a5e2a1f67 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartResponse.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartResponse.java
@@ -124,8 +124,9 @@ public class TestS3MultipartResponse {
.setKeyName(keyName)
.setMultipartUploadID(multipartUploadID)).build();
+ // some volID and buckID as these values are not used in legacy buckets
return getS3InitiateMultipartUploadResp(multipartKeyInfo, omKeyInfo,
- omResponse);
+ omResponse, -1, -1);
}
public S3MultipartUploadAbortResponse createS3AbortMPUResponse(
@@ -188,9 +189,11 @@ public class TestS3MultipartResponse {
.setFactor(HddsProtos.ReplicationFactor.ONE).build()).build();
}
+ @SuppressWarnings("parameternumber")
public S3InitiateMultipartUploadResponse createS3InitiateMPUResponseFSO(
String volumeName, String bucketName, long parentID, String keyName,
- String multipartUploadID, List<OmDirectoryInfo> parentDirInfos) {
+ String multipartUploadID, List<OmDirectoryInfo> parentDirInfos,
+ long volumeId, long bucketId) {
OmMultipartKeyInfo multipartKeyInfo = new OmMultipartKeyInfo.Builder()
.setUploadID(multipartUploadID)
.setCreationTime(Time.now())
@@ -230,7 +233,8 @@ public class TestS3MultipartResponse {
keyName, multipartUploadID);
return new S3InitiateMultipartUploadResponseWithFSO(omResponse,
- multipartKeyInfo, omKeyInfo, mpuKey, parentDirInfos, getBucketLayout());
+ multipartKeyInfo, omKeyInfo, mpuKey, parentDirInfos, getBucketLayout(),
+ volumeId, bucketId);
}
@SuppressWarnings("checkstyle:ParameterNumber")
@@ -317,12 +321,12 @@ public class TestS3MultipartResponse {
return new S3MultipartUploadCompleteResponseWithFSO(omResponse,
multipartKey, multipartOpenKey, omKeyInfo, unUsedParts,
- getBucketLayout(), omBucketInfo, keysToDelete);
+ getBucketLayout(), omBucketInfo, keysToDelete, volumeId);
}
protected S3InitiateMultipartUploadResponse getS3InitiateMultipartUploadResp(
OmMultipartKeyInfo multipartKeyInfo, OmKeyInfo omKeyInfo,
- OMResponse omResponse) {
+ OMResponse omResponse, long volumeId, long bucketId) {
return new S3InitiateMultipartUploadResponse(omResponse, multipartKeyInfo,
omKeyInfo, getBucketLayout());
}
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartUploadAbortResponse.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartUploadAbortResponse.java
index 8a41dbe023..ab77a436b8 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartUploadAbortResponse.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartUploadAbortResponse.java
@@ -55,12 +55,13 @@ public class TestS3MultipartUploadAbortResponse
String multipartKey = omMetadataManager.getMultipartKey(volumeName,
bucketName, keyName, multipartUploadID);
- OmBucketInfo omBucketInfo = OmBucketInfo.newBuilder()
- .setVolumeName(volumeName).setBucketName(bucketName)
- .setCreationTime(Time.now()).build();
+ String buckDBKey = omMetadataManager.getBucketKey(volumeName, bucketName);
+ OmBucketInfo omBucketInfo =
+ omMetadataManager.getBucketTable().get(buckDBKey);
+ long volumeId = omMetadataManager.getVolumeId(volumeName);
S3InitiateMultipartUploadResponse s3InitiateMultipartUploadResponse =
getS3InitiateMultipartUploadResponse(volumeName, bucketName, keyName,
- multipartUploadID);
+ multipartUploadID, volumeId, omBucketInfo.getObjectID());
s3InitiateMultipartUploadResponse.addToDBBatch(omMetadataManager,
batchOperation);
@@ -99,7 +100,7 @@ public class TestS3MultipartUploadAbortResponse
protected S3InitiateMultipartUploadResponse
getS3InitiateMultipartUploadResponse(
String volumeName, String bucketName, String keyName,
- String multipartUploadID) {
+ String multipartUploadID, long volumeId, long bucketId) {
return createS3InitiateMPUResponse(volumeName, bucketName, keyName,
multipartUploadID);
}
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartUploadAbortResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartUploadAbortResponseWithFSO.java
index e5d1536667..b984e769f8 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartUploadAbortResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartUploadAbortResponseWithFSO.java
@@ -64,7 +64,8 @@ public class TestS3MultipartUploadAbortResponseWithFSO
@Override
protected S3InitiateMultipartUploadResponse getS3InitiateMultipartUploadResp(
OmMultipartKeyInfo multipartKeyInfo, OmKeyInfo omKeyInfo,
- OzoneManagerProtocolProtos.OMResponse omResponse) {
+ OzoneManagerProtocolProtos.OMResponse omResponse, long volumeId,
+ long bucketId) {
String mpuDBKey =
omMetadataManager.getMultipartKey(omKeyInfo.getVolumeName(),
@@ -73,17 +74,17 @@ public class TestS3MultipartUploadAbortResponseWithFSO
return new S3InitiateMultipartUploadResponseWithFSO(omResponse,
multipartKeyInfo, omKeyInfo, mpuDBKey, new ArrayList<>(),
- getBucketLayout());
+ getBucketLayout(), volumeId, bucketId);
}
@Override
protected S3InitiateMultipartUploadResponse
getS3InitiateMultipartUploadResponse(
String volumeName, String bucketName, String keyName,
- String multipartUploadID) {
+ String multipartUploadID, long volumeId, long bucketId) {
return createS3InitiateMPUResponseFSO(volumeName, bucketName, parentID,
keyName,
- multipartUploadID, new ArrayList<>());
+ multipartUploadID, new ArrayList<>(), volumeId, bucketId);
}
@Override
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartUploadCommitPartResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartUploadCommitPartResponseWithFSO.java
index abd2df77e1..605fe24731 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartUploadCommitPartResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartUploadCommitPartResponseWithFSO.java
@@ -100,10 +100,13 @@ public class TestS3MultipartUploadCommitPartResponseWithFSO
String fileName = OzoneFSUtils.getFileName(keyName);
String multipartKey = omMetadataManager
.getMultipartKey(volumeName, bucketName, keyName, multipartUploadID);
+ final long volumeId = omMetadataManager.getVolumeId(volumeName);
+ final long bucketId = omMetadataManager.getBucketId(volumeName,
+ bucketName);
S3InitiateMultipartUploadResponse s3InitiateMultipartUploadResponseFSO =
- createS3InitiateMPUResponseFSO(volumeName, bucketName, parentID,
- keyName, multipartUploadID, new ArrayList<>());
+ createS3InitiateMPUResponseFSO(volumeName, bucketName, parentID,
+ keyName, multipartUploadID, new ArrayList<>(), volumeId, bucketId);
s3InitiateMultipartUploadResponseFSO.addToDBBatch(omMetadataManager,
batchOperation);
@@ -120,9 +123,7 @@ public class TestS3MultipartUploadCommitPartResponseWithFSO
addPart(1, part1, omMultipartKeyInfo);
long clientId = Time.now();
- final long volumeId = omMetadataManager.getVolumeId(volumeName);
- final long bucketId = omMetadataManager.getBucketId(volumeName,
- bucketName);
+
String openKey = omMetadataManager.getOpenFileName(volumeId, bucketId,
parentID, fileName, clientId);
@@ -181,8 +182,8 @@ public class TestS3MultipartUploadCommitPartResponseWithFSO
parentID, fileName, multipartUploadID);
S3InitiateMultipartUploadResponse s3InitiateMultipartUploadResponseFSO =
- createS3InitiateMPUResponseFSO(volumeName, bucketName, parentID,
- keyName, multipartUploadID, new ArrayList<>());
+ createS3InitiateMPUResponseFSO(volumeName, bucketName, parentID,
+ keyName, multipartUploadID, new ArrayList<>(), volumeId, bucketId);
s3InitiateMultipartUploadResponseFSO.addToDBBatch(omMetadataManager,
batchOperation);
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartUploadCompleteResponseWithFSO.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartUploadCompleteResponseWithFSO.java
index ec0b025e10..954aaea7b9 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartUploadCompleteResponseWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartUploadCompleteResponseWithFSO.java
@@ -74,7 +74,7 @@ public class TestS3MultipartUploadCompleteResponseWithFSO
List<OmDirectoryInfo> parentDirInfos = new ArrayList<>();
S3InitiateMultipartUploadResponse s3InitiateMultipartUploadResponseFSO =
createS3InitiateMPUResponseFSO(volumeName, bucketName, parentID,
- keyName, multipartUploadID, parentDirInfos);
+ keyName, multipartUploadID, parentDirInfos, volumeId, bucketId);
s3InitiateMultipartUploadResponseFSO.addToDBBatch(omMetadataManager,
batchOperation);
@@ -206,7 +206,7 @@ public class TestS3MultipartUploadCompleteResponseWithFSO
S3InitiateMultipartUploadResponse s3InitiateMultipartUploadResponseFSO =
addS3InitiateMultipartUpload(volumeName, bucketName, keyName,
- multipartUploadID);
+ multipartUploadID, volumeId, bucketId);
// Add some dummy parts for testing.
// Not added any key locations, as this just test is to see entries are
@@ -313,11 +313,13 @@ public class TestS3MultipartUploadCompleteResponseWithFSO
private S3InitiateMultipartUploadResponse addS3InitiateMultipartUpload(
String volumeName, String bucketName, String keyName,
- String multipartUploadID) throws IOException {
+ String multipartUploadID, long volumeId,
+ long bucketId) throws IOException {
S3InitiateMultipartUploadResponse s3InitiateMultipartUploadResponseFSO =
- createS3InitiateMPUResponseFSO(volumeName, bucketName, parentID,
- keyName, multipartUploadID, new ArrayList<>());
+ createS3InitiateMPUResponseFSO(volumeName, bucketName, parentID,
+ keyName, multipartUploadID, new ArrayList<>(), volumeId,
+ bucketId);
s3InitiateMultipartUploadResponseFSO.addToDBBatch(omMetadataManager,
batchOperation);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org