smengcl commented on code in PR #11310:
URL: https://github.com/apache/ozone/pull/11310#discussion_r4099810390


##########
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/service/TestSnapshotDeletingServiceIntegrationTest.java:
##########
@@ -624,35 +626,39 @@ private synchronized void 
createSnapshotDataForBucket(OzoneBucket bucket) throws
         bucket.getName()));
   }
 
-  private MockedConstruction<ReclaimableKeyFilter> 
getMockedReclaimableKeyFilter(String volume, String bucket,
+  private MockedConstruction<ReclaimableKeyFilter> 
getMockedReclaimableKeyFilter(OzoneBucket bucket,
       AtomicBoolean kdsWaitStarted, AtomicBoolean sdsLockWaitStarted,
-      AtomicBoolean sdsLockAcquired, AtomicBoolean kdsFinished, 
ReclaimableKeyFilter keyFilter) throws IOException {
+      AtomicBoolean sdsLockAcquired, AtomicBoolean kdsFinished, 
MultiSnapshotLocks kdsMultiLocks,
+      List<UUID> expectedIds) {
 
     return mockConstruction(ReclaimableKeyFilter.class,
         (mocked, context) -> {
           when(mocked.apply(any())).thenAnswer(i -> {
             Table.KeyValue<String, OmKeyInfo> keyInfo = i.getArgument(0);
-            if (!keyInfo.getValue().getVolumeName().equals(volume) ||
-                !keyInfo.getValue().getBucketName().equals(bucket)) {
-              return keyFilter.apply(i.getArgument(0));
+            if 
(!keyInfo.getValue().getVolumeName().equals(bucket.getVolumeName()) ||
+                !keyInfo.getValue().getBucketName().equals(bucket.getName())) {
+              return false;
             }
-            keyFilter.apply(i.getArgument(0));
+            if (kdsWaitStarted.get()) {
+              return true;
+            }
+            
assertTrue(kdsMultiLocks.acquireLock(expectedIds).isLockAcquired());

Review Comment:
   ```diff
   @@
   -      AtomicBoolean sdsLockAcquired, AtomicBoolean kdsFinished, 
MultiSnapshotLocks kdsMultiLocks,
   -      List<UUID> expectedIds) {
   +      AtomicBoolean sdsLockAcquired, AtomicBoolean kdsFinished, 
ReclaimableKeyFilter keyFilter) {
   @@
   -              return false;
   +              return keyFilter.apply(i.getArgument(0));
                }
   -            if (kdsWaitStarted.get()) {
   -              return true;
   -            }
   -            
assertTrue(kdsMultiLocks.acquireLock(expectedIds).isLockAcquired());
   +            boolean reclaimable = keyFilter.apply(i.getArgument(0));
   @@
   -            return true;
   +            return reclaimable;
   @@
   -            kdsMultiLocks.releaseLock();
   +            keyFilter.close();
   @@
   -          
when(mocked.getExclusiveReplicatedSizeMap()).thenReturn(Collections.emptyMap());
   -          
when(mocked.getExclusiveSizeMap()).thenReturn(Collections.emptyMap());
   +          when(mocked.getExclusiveReplicatedSizeMap()).thenAnswer(i -> 
keyFilter.getExclusiveReplicatedSizeMap());
   +          when(mocked.getExclusiveSizeMap()).thenAnswer(i -> 
keyFilter.getExclusiveSizeMap());
   @@
   -    IOzoneManagerLock snapshotGcLock = new OzoneManagerLock(new 
OzoneConfiguration());
   @@
   -    MultiSnapshotLocks kdsMultiLocks = new 
MultiSnapshotLocks(snapshotGcLock, SNAPSHOT_GC_LOCK, false);
   -    MultiSnapshotLocks sdsMultiLocks = new 
MultiSnapshotLocks(snapshotGcLock, SNAPSHOT_GC_LOCK, true);
   +    SnapshotInfo snapInfo = kdsRunningOnAOS ? null : 
SnapshotUtils.getSnapshotInfo(om, volume, bucket, "snap2");
   +    ReclaimableKeyFilter keyFilter = new ReclaimableKeyFilter(om, 
om.getOmSnapshotManager(),
   +        snapshotChainManager, snapInfo,
   +        kdsRunningOnAOS ? om.getKeyManager() : getOmSnapshot(volume, 
bucket, "snap2").get().getKeyManager(),
   +        om.getMetadataManager().getLock());
   +    MultiSnapshotLocks sdsMultiLocks =
   +        new MultiSnapshotLocks(om.getMetadataManager().getLock(), 
SNAPSHOT_GC_LOCK, true);
   @@
   -            ozoneBucket, kdsWaitStarted, sdsLockWaitStarted, 
sdsLockAcquired, kdsFinished, kdsMultiLocks,
   -            expectedIds)) {
   +            ozoneBucket, kdsWaitStarted, sdsLockWaitStarted, 
sdsLockAcquired, kdsFinished, keyFilter)) {
   ```
   
   and remove unused imports



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to