This is an automated email from the ASF dual-hosted git repository.

devmadhuu pushed a commit to branch HDDS-11233
in repository https://gitbox.apache.org/repos/asf/ozone.git

commit a08efeb2dd1873f70c1757ea7174e3b66d9d4fd8
Merge: 3f0c50ca66b 7f6ea8b1ac7
Author: Devesh Singh <[email protected]>
AuthorDate: Wed Aug 26 10:51:40 2026 +0530

    Merge remote-tracking branch 'upstream/master' into HDDS-11233
    
    Co-authored-by: Cursor <[email protected]>
    
    # Conflicts:
    #       
hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/invoker/ContainerStateManagerInvoker.java
    #       
hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/ContainerOperationClient.java

 .github/workflows/asf-allowlist-check.yaml         |    2 +-
 .github/workflows/zizmor.yml                       |    2 +-
 hadoop-hdds/client/pom.xml                         |    4 +
 .../apache/hadoop/hdds/scm/XceiverClientGrpc.java  |    5 +-
 .../apache/hadoop/hdds/scm/XceiverClientRatis.java |    3 +-
 .../hdds/scm/storage/MultipartInputStream.java     |    4 +-
 .../hdds/scm/storage/StreamBlockInputStream.java   |  221 ++--
 .../scm/storage/TestStreamBlockInputStream.java    |  114 ++
 .../java/org/apache/hadoop/hdds/HddsUtils.java     |   64 ++
 .../hdds/ratis/ServerNotLeaderException.java       |    5 +-
 .../apache/hadoop/hdds/scm/net/HostAndPort.java    |    3 +-
 .../hadoop/hdds/tracing/GrpcServerInterceptor.java |    4 +-
 .../hadoop/hdds/tracing/InternalSpanKind.java      |   31 +-
 .../apache/hadoop/hdds/tracing/TraceAllMethod.java |    9 +-
 .../apache/hadoop/hdds/tracing/TracingUtil.java    |   56 +-
 .../org/apache/hadoop/ozone/common/Checksum.java   |  186 ++--
 .../apache/hadoop/ozone/common/ChecksumCache.java  |  117 ++-
 .../hadoop/ozone/common/utils/BufferUtils.java     |   23 +
 .../hadoop/ozone/util/ConcurrentMutableStat.java   |  134 +++
 .../hadoop/ozone/util/PerformanceMetrics.java      |    5 +-
 .../common/src/main/resources/ozone-default.xml    |   16 +-
 .../java/org/apache/hadoop/hdds/TestHddsUtils.java |   62 ++
 ...TestServerNotLeaderExceptionMessageParsing.java |   22 +
 .../hadoop/hdds/scm/net/TestHostAndPort.java       |    6 +
 .../hdds/security/x509/CertificateTestUtils.java   |   64 ++
 .../hadoop/hdds/tracing/TestTraceAllMethod.java    |   20 +
 .../hdds/tracing/TestTracingAnnotations.java       |   88 ++
 .../hadoop/hdds/tracing/TestTracingUtil.java       |   77 +-
 .../apache/hadoop/ozone/common/TestChecksum.java   |   17 +
 .../hadoop/ozone/common/TestChecksumCache.java     |   73 +-
 .../ozone/common/TestChecksumMultiBuffer.java      |   97 ++
 .../hadoop/ozone/common/utils/TestBufferUtils.java |   81 ++
 .../ozone/util/ConcurrentMutableStatBenchmark.java |  286 +++++
 .../ozone/util/TestConcurrentMutableStat.java      |  172 +++
 .../checksum/ContainerChecksumTreeManager.java     |   12 +-
 .../container/checksum/ContainerDiffReport.java    |   13 +
 .../common/transport/server/XceiverServerGrpc.java |    4 +-
 .../transport/server/ratis/XceiverServerRatis.java |    4 +-
 .../common/volume/DatanodeStorageMetrics.java      |   39 +-
 .../container/common/volume/MutableVolumeSet.java  |   37 +
 .../ozone/container/keyvalue/KeyValueHandler.java  |  188 +++-
 .../container/keyvalue/impl/BlockManagerImpl.java  |   10 +
 .../keyvalue/interfaces/BlockManager.java          |   10 +
 .../common/volume/TestDatanodeStorageMetrics.java  |   52 +-
 .../container/common/volume/TestVolumeSet.java     |   27 +
 .../container/keyvalue/TestKeyValueHandler.java    |  176 ++++
 .../TestReconcileChunksPerBlockHoleBcsId.java      |  522 ++++++++++
 .../keyvalue/impl/TestFilePerBlockStrategy.java    |   10 +-
 .../docs/content/feature/ContainerBalancer.md      |    4 +
 .../docs/content/tools/debug/DebugReplicas.md      |    6 +
 .../hadoop/hdds/protocol/SCMSecurityProtocol.java  |   10 -
 .../apache/hadoop/hdds/scm/client/ScmClient.java   |   74 +-
 .../scm/protocol/ScmBlockLocationProtocol.java     |   10 -
 .../protocol/StorageContainerLocationProtocol.java |   16 +-
 ...inerLocationProtocolClientSideTranslatorPB.java |   29 +-
 .../scm/proxy/SCMFailoverProxyProviderBase.java    |   95 +-
 .../server/OzoneProtocolMessageDispatcher.java     |    3 +-
 .../hdds/utils/db/RDBStoreAbstractIterator.java    |   18 +
 .../hdds/utils/db/RDBStoreByteArrayIterator.java   |    1 -
 .../hdds/utils/db/RDBStoreCodecBufferIterator.java |    1 -
 .../hdds/protocolPB/TestSCMSecurityProtocolPB.java |   50 +
 .../protocolPB/TestScmBlockLocationProtocolPB.java |   47 +
 .../TestStorageContainerLocationProtocolPB.java    |   47 +
 .../TestSCMFailoverProxyProviderRefreshWired.java  |  167 ++-
 .../utils/db/TestRDBStoreByteArrayIterator.java    |   29 +-
 .../utils/db/TestRDBStoreCodecBufferIterator.java  |   34 +-
 .../src/main/proto/ScmAdminProtocol.proto          |   14 +
 .../interface-admin/src/main/resources/proto.lock  |   58 ++
 .../ozone/rocksdiff/RocksDBCheckpointDiffer.java   |   48 +-
 .../rocksdiff/TestRocksDBCheckpointDiffer.java     |   55 +-
 .../SCMDeletedBlockTransactionStatusManager.java   |   22 +
 .../hdds/scm/container/ContainerStateManager.java  |    6 +
 .../scm/container/ContainerStateManagerImpl.java   |   30 +
 .../ContainerBalancerSelectionCriteria.java        |   47 +-
 .../container/balancer/ContainerBalancerTask.java  |   78 +-
 .../ContainerBalancerTaskIterationStatusInfo.java  |   42 +
 .../balancer/ContainerMoveFailureDetail.java       |   62 ++
 .../balancer/ContainerMoveFailureTracker.java      |   93 ++
 .../scm/container/balancer/ContainerMoveInfo.java  |   13 +-
 .../scm/container/export/ExportFileManager.java    |  120 ++-
 .../hdds/scm/container/export/ExportJob.java       |   41 +-
 .../hdds/scm/container/export/ExportScope.java     |    8 +-
 .../hadoop/hdds/scm/ha/SCMRatisServerImpl.java     |   31 +-
 .../ha/invoker/ContainerStateManagerInvoker.java   |   27 +-
 ...inerLocationProtocolServerSideTranslatorPB.java |   24 +-
 .../hdds/scm/safemode/SCMSafeModeManager.java      |   14 +-
 .../hdds/scm/server/SCMClientProtocolServer.java   |   13 +-
 .../hdds/scm/server/StorageContainerManager.java   |   35 +-
 .../scm/server/upgrade/SCMUpgradeFinalizer.java    |    1 +
 .../hadoop/hdds/scm/block/TestDeletedBlockLog.java |  168 +++
 .../TestContainerBalancerMoveFailureBreakdown.java |  278 +++++
 .../balancer/TestContainerBalancerTask.java        |  111 +-
 .../container/export/TestExportFileManager.java    |  103 +-
 .../hdds/scm/container/export/TestExportJob.java   |   67 ++
 .../scm/ha/TestInterSCMGrpcProtocolService.java    |    4 +-
 .../hadoop/hdds/scm/ha/TestSCMRatisServerImpl.java |   62 ++
 .../hdds/scm/safemode/TestSCMSafeModeManager.java  |   25 +-
 .../scm/server/TestStorageContainerManager.java    |   56 +
 .../hdds/scm/upgrade/TestScmFinalization.java      |   50 +-
 .../scm/cli/ContainerBalancerStatusSubcommand.java |   43 +
 .../hdds/scm/cli/ContainerOperationClient.java     |  128 +--
 .../hdds/scm/cli/SafeModeCheckSubcommand.java      |   66 +-
 .../admin/scm/GetScmRatisRolesSubcommand.java      |   51 +-
 .../datanode/TestContainerBalancerSubCommand.java  |  109 ++
 .../ozone/scm/TestGetScmRatisRolesSubcommand.java  |   65 ++
 .../ozone/debug/om/ContainerToKeyMapping.java      |   15 +-
 .../ozone/debug/replicas/ReplicasVerify.java       |    7 +-
 .../apache/hadoop/ozone/fsck/ContainerMapper.java  |    2 +-
 .../ozone/debug/replicas/TestReplicasVerify.java   |   54 +
 .../hadoop/ozone/repair/om/DownloadOMDB.java       |  205 ++++
 .../apache/hadoop/ozone/repair/om/OMRepair.java    |    3 +-
 hadoop-ozone/cli-shell/pom.xml                     |    4 +
 .../java/org/apache/hadoop/ozone/shell/Shell.java  |    3 +-
 .../ozone/shell/snapshot/SnapshotDiffHandler.java  |    7 +
 hadoop-ozone/client/pom.xml                        |    9 +-
 .../apache/hadoop/ozone/client/OzoneBucket.java    |   73 ++
 .../hadoop/ozone/client/OzoneClientFactory.java    |    5 +-
 .../hadoop/ozone/client/io/KeyInputStream.java     |   20 +-
 .../ozone/client/io/OzoneDataStreamOutput.java     |    8 +
 .../hadoop/ozone/client/io/OzoneOutputStream.java  |   10 +
 .../ozone/client/protocol/ClientProtocol.java      |   76 ++
 .../apache/hadoop/ozone/client/rpc/RpcClient.java  |  112 +-
 .../hadoop/ozone/client/MockDatanodeStorage.java   |   15 +-
 .../hadoop/ozone/client/TestOzoneECClient.java     |   19 +-
 hadoop-ozone/common/pom.xml                        |    4 +
 .../main/java/org/apache/hadoop/ozone/OmUtils.java |    6 +-
 .../hadoop/ozone/om}/AWSV4AuthValidator.java       |   35 +-
 .../hadoop/ozone/om/helpers/OmBucketInfo.java      |   11 +-
 .../apache/hadoop/ozone/om/helpers/OmKeyArgs.java  |   13 +
 .../apache/hadoop/ozone/om/helpers/OmKeyInfo.java  |   16 +-
 .../ozone/om/helpers/OmKeyLocationInfoGroup.java   |    2 +-
 .../hadoop/ozone/om/helpers/OpenKeySession.java    |   10 +
 .../hadoop/ozone/om/helpers/SnapshotDiffJob.java   |    3 +-
 ...OzoneManagerProtocolClientSideTranslatorPB.java |   21 +-
 .../ozone/snapshot/SnapshotDiffResponse.java       |   28 +-
 .../java/org/apache/hadoop/ozone/TestOmUtils.java  |   19 +
 .../hadoop/ozone/om/helpers/TestOmBucketInfo.java  |   21 +
 .../hadoop/ozone/om/helpers/TestOmKeyInfo.java     |   10 +-
 .../om/helpers/TestOmKeyLocationInfoGroup.java     |    2 +-
 .../ozone/snapshot/TestSnapshotDiffResponse.java   |   40 +-
 .../grafana/dashboards/Ozone - Disk Balancer.json  | 1096 ++++++++++++++++++++
 .../grafana/dashboards/Ozone - JVM Metrics.json    |    2 +-
 .../dashboards/Ozone - ReadKey Metrics.json        |    6 +-
 hadoop-ozone/dist/src/main/license/bin/LICENSE.txt |    1 +
 hadoop-ozone/dist/src/main/license/jar-report.txt  |    1 +
 .../src/main/smoketest/balancer/testBalancer.robot |    2 +-
 hadoop-ozone/dist/src/main/smoketest/testlib.sh    |    3 +-
 .../ozone/recon/TestReconAndAdminContainerCLI.java |    2 +-
 .../apache/hadoop/ozone/recon/TestReconTasks.java  |   10 +-
 .../ozone/s3/awssdk/v1/AbstractS3SDKV1Tests.java   |    4 +-
 .../ozone/s3/awssdk/v2/AbstractS3SDKV2Tests.java   |  257 ++++-
 .../hadoop/conf/ConfigurationFieldsTests.java      |    1 -
 .../java/org/apache/hadoop/fs/ozone/TestHSync.java |   44 +
 .../hadoop/hdds/scm/TestContainerOperations.java   |   16 +-
 .../hdds/scm/TestStorageContainerManager.java      |    4 +-
 .../TestContainerStateManagerIntegration.java      |   11 +-
 .../scm/node/TestDecommissionAndMaintenance.java   |    7 +-
 .../org/apache/hadoop/ozone/OzoneTestUtils.java    |    2 +-
 .../org/apache/hadoop/ozone/TestBlockTokens.java   |    6 +-
 .../ozone/TestContainerBalancerOperations.java     |    4 +-
 .../hadoop/ozone/TestOzoneConfigurationFields.java |   58 +-
 .../ozone/client/rpc/OzoneRpcClientTests.java      |    2 +-
 .../client/rpc/TestDeleteWithInAdequateDN.java     |    2 +-
 .../client/rpc/TestFailureHandlingByClient.java    |   58 +-
 .../rpc/TestFailureHandlingByClientFlushDelay.java |    4 +-
 .../rpc/TestMultiBlockWritesWithDnFailures.java    |    2 -
 .../client/rpc/TestOzoneAtRestEncryption.java      |    2 +-
 .../rpc/TestOzoneClientMultipartUploadWithFSO.java |   58 ++
 .../rpc/TestOzoneClientRetriesOnExceptions.java    |    2 +-
 .../ozone/client/rpc/TestSecureOzoneRpcClient.java |    2 +-
 .../ozone/client/rpc/read/TestKeyInputStream.java  |    2 +-
 .../rpc/read/TestStreamBlockInputStream.java       |   56 +-
 .../ozone/client/rpc/read/TestStreamRead.java      |    3 +-
 .../ozone/container/TestContainerReplication.java  |    2 +-
 .../container/TestContainerReportHandling.java     |    2 +-
 .../commandhandler/TestBlockDeletion.java          |    6 +-
 .../commandhandler/TestFinalizeBlock.java          |    8 +-
 .../TestRefreshVolumeUsageHandler.java             |    4 -
 .../dn/TestDatanodeStorageMetricsIntegration.java  |    9 +-
 .../org/apache/hadoop/ozone/om/OMMXBeanTests.java  |   88 ++
 .../ozone/om/TestGetDBUpdatesAuthorization.java    |  137 +++
 .../ozone/om/TestKeyLookupAclNormalization.java    |  206 ++++
 .../apache/hadoop/ozone/om/TestKeyManagerImpl.java |   40 +-
 .../ozone/om/TestOMAdminRpcAuthorization.java      |  143 +++
 .../hadoop/ozone/om/TestOMRatisSnapshots.java      |   31 +-
 .../hadoop/ozone/om/TestOmBlockVersioning.java     |   12 +-
 ...TestSnapshotDeletingServiceIntegrationTest.java |    4 +-
 .../hadoop/ozone/om/snapshot/OmSnapshotTests.java  |   26 +
 .../ozone/repair/om/TestDownloadOMDBTool.java      |  260 +++++
 .../ozone/shell/TestOzoneDebugReplicasVerify.java  |    6 +-
 .../java/org/apache/ozone/test/NonHATests.java     |    9 +
 .../src/main/proto/OmClientProtocol.proto          |   23 +-
 .../interface-client/src/main/resources/proto.lock |   18 +
 .../apache/hadoop/ozone/om/OMMetadataManager.java  |    3 +
 .../apache/hadoop/ozone/om/lock/OMLockMetrics.java |   29 +-
 .../ozone/om/helpers/TestOmKeyInfoCodec.java       |    2 +-
 .../om/helpers/TestRepeatedOmKeyInfoCodec.java     |    4 +-
 .../RangerClientMultiTenantAccessController.java   |   98 +-
 ...lientMultiTenantAccessControllerMockClient.java |  153 +++
 hadoop-ozone/ozone-manager/pom.xml                 |    4 -
 .../hadoop/ozone/om/BucketUtilizationMetrics.java  |    8 +-
 .../org/apache/hadoop/ozone/om/KeyManager.java     |   28 +
 .../org/apache/hadoop/ozone/om/KeyManagerImpl.java |   57 +-
 .../hadoop/ozone/om/OmMetadataManagerImpl.java     |   11 +-
 .../apache/hadoop/ozone/om/OmMetadataReader.java   |   79 +-
 .../org/apache/hadoop/ozone/om/OmSnapshot.java     |   32 +-
 .../org/apache/hadoop/ozone/om/OzoneManager.java   |   71 +-
 .../hadoop/ozone/om/TrashOzoneFileSystem.java      |   34 +-
 .../hadoop/ozone/om/VolumeUtilizationMetrics.java  |  105 ++
 .../ozone/om/ratis/OzoneManagerStateMachine.java   |   97 +-
 .../om/request/file/OMRecoverLeaseRequest.java     |    4 +-
 .../om/request/key/OMAllocateBlockRequest.java     |    2 +-
 .../ozone/om/request/key/OMKeyCommitRequest.java   |    6 +-
 .../om/request/key/OMKeyCommitRequestWithFSO.java  |    5 +-
 .../ozone/om/request/key/OMKeyCreateRequest.java   |   40 +-
 .../om/request/key/OMKeyCreateRequestWithFSO.java  |    8 +-
 .../hadoop/ozone/om/request/key/OMKeyRequest.java  |   16 +-
 .../ozone/om/request/key/OMKeysDeleteRequest.java  |    2 +-
 .../OMLifecycleConfigurationSetRequest.java        |   50 +-
 .../lifecycle/OMLifecycleSaveScanStateRequest.java |    2 +-
 .../OMLifecycleSetServiceStatusRequest.java        |    2 +-
 .../S3MultipartUploadCompleteRequest.java          |   16 +-
 .../om/request/volume/OMQuotaRepairRequest.java    |    9 +-
 .../ozone/om/service/KeyDeletingService.java       |   15 +-
 .../ozone/om/service/KeyLifecycleService.java      |  230 ++--
 .../ozone/om/snapshot/SnapshotDiffManager.java     |  168 ++-
 .../hadoop/ozone/om/snapshot/SnapshotUtils.java    |    4 +-
 .../om/snapshot/diff/SnapDiffDependencyEntry.java  |  164 +++
 .../om/snapshot/diff/SnapDiffDependencyGraph.java  |  738 +++++++++++++
 .../diff/delta/CompositeDeltaDiffComputer.java     |    3 +
 .../ozone/om/snapshot/diff/package-info.java}      |   25 +-
 .../om/snapshot/filter/ReclaimableFilter.java      |   15 +-
 .../protocolPB/OMAdminProtocolServerSideImpl.java  |   12 +
 .../protocolPB/OzoneManagerRequestHandler.java     |    8 +-
 .../OzoneDelegationTokenSecretManager.java         |    1 +
 .../hadoop/ozone/security/S3SecurityUtil.java      |    2 +-
 .../hadoop/ozone/om/TestBucketManagerImpl.java     |  132 +++
 .../ozone/om/TestBucketUtilizationMetrics.java     |   12 +-
 .../apache/hadoop/ozone/om/TestKeyManagerImpl.java |   33 +
 .../apache/hadoop/ozone/om/TestKeyManagerUnit.java |   55 +-
 .../hadoop/ozone/om/TestTrashOzoneFileSystem.java  |  133 +++
 .../ozone/om/TestVolumeUtilizationMetrics.java     |  114 ++
 .../om/ratis/TestOzoneManagerStateMachine.java     |   89 ++
 .../om/request/file/TestOMFileCreateRequest.java   |    4 +-
 .../om/request/key/TestOMAllocateBlockRequest.java |    4 +-
 .../om/request/key/TestOMKeyCommitRequest.java     |   48 +-
 .../om/request/key/TestOMKeyCreateRequest.java     |  107 +-
 .../om/request/key/TestOMKeysDeleteRequest.java    |   53 +
 .../TestOMLifecycleConfigurationRequest.java       |   45 +-
 .../TestOMLifecycleConfigurationSetRequest.java    |   63 ++
 .../TestOMLifecycleSaveScanStateRequest.java       |    8 +-
 ...=> TestOMLifecycleSetServiceStatusRequest.java} |   61 +-
 .../TestS3MultipartUploadCommitPartRequest.java    |    8 +-
 .../request/volume/TestOMQuotaRepairRequest.java   |   95 ++
 .../ozone/om/service/TestKeyDeletingService.java   |  245 +++++
 .../ozone/om/service/TestKeyLifecycleService.java  |  373 ++++++-
 .../ozone/om/snapshot/TestSnapshotDiffManager.java |  179 +++-
 .../om/snapshot/TestSnapshotDiffManagerMXBean.java |    4 +-
 .../snapshot/defrag/TestSnapshotDefragService.java |   38 +-
 .../snapshot/diff/TestSnapDiffDependencyGraph.java |  489 +++++++++
 .../protocolPB/TestOzoneManagerRequestHandler.java |   65 ++
 .../ozone/security/TestAWSV4AuthValidator.java     |    1 +
 .../security/acl/TestOzoneNativeAuthorizer.java    |    2 +-
 .../hadoop/ozone/security/acl/TestParentAcl.java   |    2 +-
 .../hadoop/ozone/security/acl/TestVolumeOwner.java |    2 +-
 .../fs/ozone/BasicRootedOzoneFileSystem.java       |   29 +-
 .../fs/ozone/LeaseRecoveryClientDNHandler.java     |    4 +-
 .../hadoop/fs/ozone/TestBasicOzoneFileSystems.java |   49 +
 .../org/apache/hadoop/ozone/recon/ReconServer.java |   10 +
 .../org/apache/hadoop/ozone/recon/ReconUtils.java  |   55 +-
 .../hadoop/ozone/recon/api/ContainerEndpoint.java  |   17 +-
 .../ozone/recon/api/handlers/EntityHandler.java    |  122 ++-
 .../ozone/recon/chatbot/ChatbotConfigKeys.java     |   15 +
 .../recon/chatbot/agent/ChatHistoryBuilder.java    |  175 ++++
 .../ozone/recon/chatbot/agent/ChatbotAgent.java    |   90 +-
 .../ozone/recon/chatbot/api/ChatbotEndpoint.java   |   63 +-
 .../ozone/recon/metrics/NSSummaryMetrics.java      |   91 ++
 .../recon/spi/ReconNamespaceSummaryManager.java    |    6 +
 .../impl/ReconContainerMetadataManagerImpl.java    |    2 +-
 .../spi/impl/ReconNamespaceSummaryManagerImpl.java |   21 +-
 .../impl/StorageContainerServiceProviderImpl.java  |    3 +-
 .../recon/tasks/ContainerKeyMapperHelper.java      |   86 +-
 .../recon-tool-selection-prompt-preamble.txt       |    7 +
 .../ozone-recon-web/src/v2/hooks/useChat.hook.tsx  |   28 +-
 .../ozone-recon-web/src/v2/types/chatbot.types.ts  |    8 +
 .../apache/hadoop/ozone/recon/TestReconUtils.java  |   40 +
 .../api/handlers/TestEntityHandlerCycleGuard.java  |  196 ++++
 .../chatbot/agent/TestChatHistoryBuilder.java      |  289 ++++++
 .../agent/TestChatbotAgentExecutionPolicy.java     |   62 ++
 .../recon/chatbot/api/TestChatbotEndpoint.java     |   14 +-
 .../ozone/recon/metrics/TestNSSummaryMetrics.java  |   60 ++
 hadoop-ozone/s3gateway/pom.xml                     |    9 +
 .../org/apache/hadoop/ozone/audit/S3GAction.java   |    3 +-
 .../java/org/apache/hadoop/ozone/s3/Gateway.java   |    8 +
 .../hadoop/ozone/s3/VirtualHostStyleFilter.java    |   37 +-
 .../ozone/s3/endpoint/BucketLifecycleHandler.java  |   22 +-
 .../hadoop/ozone/s3/endpoint/EndpointBase.java     |   19 +
 .../s3/endpoint/GetObjectAttributesResponse.java   |  206 ++++
 .../ozone/s3/endpoint/ObjectAttributesHandler.java |  173 +++
 .../hadoop/ozone/s3/endpoint/ObjectEndpoint.java   |   21 +-
 ...utBucketLifecycleConfigurationUnmarshaller.java |   56 +-
 .../s3/endpoint/S3LifecycleConfiguration.java      |   16 +-
 .../hadoop/ozone/s3/metrics/S3GatewayMetrics.java  |   22 +
 .../org/apache/hadoop/ozone/s3/util/S3Consts.java  |    4 +
 .../org/apache/hadoop/ozone/s3/TestGateway.java    |   81 ++
 .../ozone/s3/TestVirtualHostStyleFilter.java       |   58 ++
 .../ozone/s3/endpoint/EndpointTestUtils.java       |   14 +
 .../ozone/s3/endpoint/TestObjectAttributesGet.java |  176 ++++
 ...utBucketLifecycleConfigurationUnmarshaller.java |   86 ++
 .../endpoint/TestS3LifecycleConfigurationPut.java  |  110 +-
 pom.xml                                            |    8 +-
 311 files changed, 15490 insertions(+), 1745 deletions(-)

diff --cc 
hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocol.java
index 24d8d34ee04,70b758ef1c4..927902c407f
--- 
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocol.java
+++ 
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocol.java
@@@ -27,9 -27,7 +27,8 @@@ import java.util.Map
  import java.util.Optional;
  import java.util.Set;
  import java.util.UUID;
- import org.apache.commons.lang3.tuple.Pair;
  import org.apache.hadoop.hdds.client.ReplicationConfig;
 +import org.apache.hadoop.hdds.client.StorageTier;
  import org.apache.hadoop.hdds.protocol.DatanodeDetails;
  import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
  import 
org.apache.hadoop.hdds.protocol.proto.HddsProtos.DeletedBlocksTransactionInfo;
diff --cc 
hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/invoker/ContainerStateManagerInvoker.java
index a39f5a5e1eb,311a5defb71..74e9c94f6a8
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/invoker/ContainerStateManagerInvoker.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/invoker/ContainerStateManagerInvoker.java
@@@ -302,15 -312,21 +315,21 @@@ public class ContainerStateManagerInvok
        return Message.EMPTY;
  
      case "updateContainerReplica":
 -      final ContainerReplica arg26 = p.length > 0 ? (ContainerReplica) p[0] : 
null;
 -      getImpl().updateContainerReplica(arg26);
 +      final ContainerReplica arg27 = p.length > 0 ? (ContainerReplica) p[0] : 
null;
 +      getImpl().updateContainerReplica(arg27);
        return Message.EMPTY;
  
+     case "updateContainerState":
 -      final HddsProtos.ContainerID arg27 = p.length > 0 ? 
(HddsProtos.ContainerID) p[0] : null;
 -      final LifeCycleEvent arg28 = p.length > 1 ? (LifeCycleEvent) p[1] : 
null;
 -      getImpl().updateContainerState(arg27, arg28);
++      final HddsProtos.ContainerID arg40 = p.length > 0 ? 
(HddsProtos.ContainerID) p[0] : null;
++      final LifeCycleEvent arg41 = p.length > 1 ? (LifeCycleEvent) p[1] : 
null;
++      getImpl().updateContainerState(arg40, arg41);
+       return Message.EMPTY;
+ 
      case "updateContainerStateWithSequenceId":
-       final HddsProtos.ContainerID arg28 = p.length > 0 ? 
(HddsProtos.ContainerID) p[0] : null;
-       final LifeCycleEvent arg29 = p.length > 1 ? (LifeCycleEvent) p[1] : 
null;
-       final Long arg30 = p.length > 2 ? (Long) p[2] : null;
-       getImpl().updateContainerStateWithSequenceId(arg28, arg29, arg30);
 -      final HddsProtos.ContainerID arg29 = p.length > 0 ? 
(HddsProtos.ContainerID) p[0] : null;
 -      final LifeCycleEvent arg30 = p.length > 1 ? (LifeCycleEvent) p[1] : 
null;
 -      final Long arg31 = p.length > 2 ? (Long) p[2] : null;
 -      getImpl().updateContainerStateWithSequenceId(arg29, arg30, arg31);
++      final HddsProtos.ContainerID arg42 = p.length > 0 ? 
(HddsProtos.ContainerID) p[0] : null;
++      final LifeCycleEvent arg43 = p.length > 1 ? (LifeCycleEvent) p[1] : 
null;
++      final Long arg44 = p.length > 2 ? (Long) p[2] : null;
++      getImpl().updateContainerStateWithSequenceId(arg42, arg43, arg44);
        return Message.EMPTY;
  
      default:
diff --cc 
hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java
index 1b0aea5f78e,96b9efce50f..79330033d80
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java
@@@ -49,10 -49,8 +49,9 @@@ import java.util.Set
  import java.util.UUID;
  import java.util.stream.Collectors;
  import java.util.stream.Stream;
- import org.apache.commons.lang3.tuple.Pair;
  import org.apache.hadoop.fs.CommonConfigurationKeysPublic;
  import org.apache.hadoop.hdds.client.ReplicationConfig;
 +import org.apache.hadoop.hdds.client.StorageTier;
  import org.apache.hadoop.hdds.conf.OzoneConfiguration;
  import org.apache.hadoop.hdds.conf.ReconfigurationHandler;
  import org.apache.hadoop.hdds.protocol.DatanodeDetails;
diff --cc 
hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java
index e50ca464f1b,d1556eeea0b..ec5e1db3df0
--- 
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java
+++ 
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java
@@@ -35,13 -35,9 +35,10 @@@ import java.time.ZoneOffset
  import java.util.ArrayList;
  import java.util.Collections;
  import java.util.List;
- import java.util.Map;
- import java.util.Set;
  import java.util.stream.Stream;
- import org.apache.commons.lang3.tuple.Pair;
  import org.apache.hadoop.hdds.HddsConfigKeys;
  import org.apache.hadoop.hdds.client.RatisReplicationConfig;
 +import org.apache.hadoop.hdds.client.StorageTier;
  import org.apache.hadoop.hdds.conf.OzoneConfiguration;
  import org.apache.hadoop.hdds.protocol.DatanodeDetails;
  import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
diff --cc 
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerStateManagerIntegration.java
index 39002405d7d,66348cdee3e..d803fa23f61
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerStateManagerIntegration.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerStateManagerIntegration.java
@@@ -236,11 -234,12 +236,12 @@@ public class TestContainerStateManagerI
  
      // allocate blocks using multiple threads
      int numBlockAllocates = 100000;
+     CompletableFuture<?>[] futures = new CompletableFuture[numBlockAllocates];
      for (int i = 0; i < numBlockAllocates; i++) {
-       CompletableFuture.supplyAsync(() -> {
+       futures[i] = CompletableFuture.supplyAsync(() -> {
          ContainerInfo info = containerManager
              .getMatchingContainer(OzoneConsts.GB * 3, OzoneConsts.OZONE,
 -                container1.getPipeline());
 +                container1.getPipeline(), Collections.emptySet(), 
StorageTier.getDefaultTier());
          container2MatchedCount
              .compute(info.getContainerID(), (k, v) -> v == null ? 1L : v + 1);
          return null;
diff --cc 
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestKeyManagerImpl.java
index 0aa821d1535,53748acd0e6..4937dac2410
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestKeyManagerImpl.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestKeyManagerImpl.java
@@@ -822,10 -821,10 +822,10 @@@ public class TestKeyManagerImpl 
      assumeFalse(nodeList.get(0).equals(nodeList.get(2)));
      // create a pipeline using 3 datanodes
      Pipeline pipeline = scm.getPipelineManager().createPipeline(
 -        RatisReplicationConfig.getInstance(ReplicationFactor.THREE), 
nodeList);
 +        RatisReplicationConfig.getInstance(ReplicationFactor.THREE), 
nodeList, StorageTier.getDefaultTier());
      List<OmKeyLocationInfo> locationInfoList = new ArrayList<>();
      List<OmKeyLocationInfo> locationList =
-         keySession.getKeyInfo().getLatestVersionLocations().getLocationList();
+         
keySession.getKeyInfo().getLatestVersionLocations().createLocationList();
      assertEquals(1, locationList.size());
      long containerID = locationList.get(0).getContainerID();
      locationInfoList.add(


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to