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

siyao 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 3856363126 HDDS-8798. Increment NumSnapshotDeleted and 
NumSnapshotListFails metrics appropriately (#4883)
3856363126 is described below

commit 3856363126cb6c1e3f05e8af0ba76f01feec2b24
Author: Hemant Kumar <[email protected]>
AuthorDate: Fri Jun 16 00:53:46 2023 -0700

    HDDS-8798. Increment NumSnapshotDeleted and NumSnapshotListFails metrics 
appropriately (#4883)
---
 .../org/apache/hadoop/ozone/om/TestOmMetrics.java  | 21 ++++++++----
 .../org/apache/hadoop/ozone/om/OzoneManager.java   | 37 ++++++++++------------
 .../request/snapshot/OMSnapshotDeleteRequest.java  |  1 +
 .../snapshot/TestOMSnapshotDeleteRequest.java      |  1 +
 4 files changed, 33 insertions(+), 27 deletions(-)

diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmMetrics.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmMetrics.java
index 712b802df8..e24dc9dc88 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmMetrics.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmMetrics.java
@@ -22,6 +22,8 @@ import static 
org.apache.hadoop.ozone.security.acl.OzoneObj.ResourceType.VOLUME;
 import static org.apache.hadoop.ozone.security.acl.OzoneObj.StoreType.OZONE;
 import static org.apache.hadoop.test.MetricsAsserts.assertCounter;
 import static org.apache.hadoop.test.MetricsAsserts.getMetrics;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
@@ -64,7 +66,6 @@ import org.apache.hadoop.ozone.security.acl.OzoneObj;
 import org.apache.hadoop.ozone.security.acl.OzoneObjInfo;
 import org.assertj.core.util.Lists;
 import org.junit.After;
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -392,8 +393,7 @@ public class TestOmMetrics {
 
   @Test
   public void testSnapshotOps() throws Exception {
-    // This tests needs enough datanodes to allocate the
-    // blocks for the keys.
+    // This tests needs enough dataNodes to allocate the blocks for the keys.
     clusterBuilder.setNumDatanodes(3);
     startCluster();
 
@@ -421,7 +421,6 @@ public class TestOmMetrics {
     assertCounter("NumSnapshotCreates", 1L, omMetrics);
     assertCounter("NumSnapshotListFails", 0L, omMetrics);
     assertCounter("NumSnapshotLists", 0L, omMetrics);
-
     assertCounter("NumSnapshotActive", 1L, omMetrics);
     assertCounter("NumSnapshotDeleted", 0L, omMetrics);
     assertCounter("NumSnapshotReclaimed", 0L, omMetrics);
@@ -443,6 +442,14 @@ public class TestOmMetrics {
     assertCounter("NumSnapshotActive", 2L, omMetrics);
     assertCounter("NumSnapshotCreates", 2L, omMetrics);
     assertCounter("NumSnapshotLists", 1L, omMetrics);
+    assertCounter("NumSnapshotListFails", 0L, omMetrics);
+
+    // List snapshot: invalid bucket case.
+    assertThrows(OMException.class, () -> writeClient.listSnapshot(volumeName,
+        "invalidBucket", null, null, Integer.MAX_VALUE));
+    omMetrics = getMetrics("OMMetrics");
+    assertCounter("NumSnapshotLists", 2L, omMetrics);
+    assertCounter("NumSnapshotListFails", 1L, omMetrics);
 
     // restart OM
     cluster.restartOzoneManager();
@@ -562,18 +569,18 @@ public class TestOmMetrics {
         new OzoneAcl(IAccessAuthorizer.ACLIdentityType.USER, "ozoneuser",
             IAccessAuthorizer.ACLType.ALL, ACCESS));
 
-    Assert.assertEquals(initialValue + 1, metrics.getNumAddAcl());
+    assertEquals(initialValue + 1, metrics.getNumAddAcl());
 
     // Test setAcl
     initialValue = metrics.getNumSetAcl();
 
     objectStore.setAcl(volObj, acls);
-    Assert.assertEquals(initialValue + 1, metrics.getNumSetAcl());
+    assertEquals(initialValue + 1, metrics.getNumSetAcl());
 
     // Test removeAcl
     initialValue = metrics.getNumRemoveAcl();
     objectStore.removeAcl(volObj, acls.get(0));
-    Assert.assertEquals(initialValue + 1, metrics.getNumRemoveAcl());
+    assertEquals(initialValue + 1, metrics.getNumRemoveAcl());
   }
 
   /**
diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
index 1e8cecd00b..4cd062eb92 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
@@ -1759,14 +1759,13 @@ public final class OzoneManager extends 
ServiceRuntimeInfoImpl
         SnapshotInfo.SnapshotStatus snapshotStatus =
             info.getSnapshotStatus();
 
-        if (snapshotStatus.equals(SnapshotInfo
-            .SnapshotStatus.SNAPSHOT_ACTIVE)) {
+        if (snapshotStatus == SnapshotInfo.SnapshotStatus.SNAPSHOT_ACTIVE) {
           activeGauge++;
-        } else if (snapshotStatus.equals(SnapshotInfo
-            .SnapshotStatus.SNAPSHOT_DELETED)) {
+        } else if (snapshotStatus ==
+            SnapshotInfo.SnapshotStatus.SNAPSHOT_DELETED) {
           deletedGauge++;
-        } else if (snapshotStatus.equals(SnapshotInfo
-            .SnapshotStatus.SNAPSHOT_RECLAIMED)) {
+        } else if (snapshotStatus ==
+            SnapshotInfo.SnapshotStatus.SNAPSHOT_RECLAIMED) {
           reclaimedGauge++;
         }
       }
@@ -2831,28 +2830,26 @@ public final class OzoneManager extends 
ServiceRuntimeInfoImpl
   public List<SnapshotInfo> listSnapshot(
       String volumeName, String bucketName, String snapshotPrefix,
       String prevSnapshot, int maxListResult) throws IOException {
-    if (isAclEnabled) {
-      omMetadataReader.checkAcls(ResourceType.BUCKET, StoreType.OZONE,
-          ACLType.LIST, volumeName, bucketName, null);
-    }
-    boolean auditSuccess = true;
+    metrics.incNumSnapshotLists();
     Map<String, String> auditMap = buildAuditMap(volumeName);
     auditMap.put(OzoneConsts.BUCKET, bucketName);
     try {
-      metrics.incNumSnapshotLists();
-      return metadataManager.listSnapshot(volumeName, bucketName,
-          snapshotPrefix, prevSnapshot, maxListResult);
+      if (isAclEnabled) {
+        omMetadataReader.checkAcls(ResourceType.BUCKET, StoreType.OZONE,
+            ACLType.LIST, volumeName, bucketName, null);
+      }
+      List<SnapshotInfo> snapshotInfoList =
+          metadataManager.listSnapshot(volumeName, bucketName,
+              snapshotPrefix, prevSnapshot, maxListResult);
+
+      AUDIT.logReadSuccess(buildAuditMessageForSuccess(
+          OMAction.LIST_SNAPSHOT, auditMap));
+      return snapshotInfoList;
     } catch (Exception ex) {
       metrics.incNumSnapshotListFails();
-      auditSuccess = false;
       AUDIT.logReadFailure(buildAuditMessageForFailure(OMAction.LIST_SNAPSHOT,
           auditMap, ex));
       throw ex;
-    } finally {
-      if (auditSuccess) {
-        AUDIT.logReadSuccess(buildAuditMessageForSuccess(
-            OMAction.LIST_SNAPSHOT, auditMap));
-      }
     }
   }
 
diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/snapshot/OMSnapshotDeleteRequest.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/snapshot/OMSnapshotDeleteRequest.java
index 3a13339a40..04b405192a 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/snapshot/OMSnapshotDeleteRequest.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/snapshot/OMSnapshotDeleteRequest.java
@@ -221,6 +221,7 @@ public class OMSnapshotDeleteRequest extends 
OMClientRequest {
     final String snapshotPath = snapshotInfo.getSnapshotPath();
     if (exception == null) {
       omMetrics.decNumSnapshotActive();
+      omMetrics.incNumSnapshotDeleted();
       LOG.info("Deleted snapshot '{}' under path '{}'",
           snapshotName, snapshotPath);
     } else {
diff --git 
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/snapshot/TestOMSnapshotDeleteRequest.java
 
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/snapshot/TestOMSnapshotDeleteRequest.java
index 9bd230a34b..035bf5b860 100644
--- 
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/snapshot/TestOMSnapshotDeleteRequest.java
+++ 
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/snapshot/TestOMSnapshotDeleteRequest.java
@@ -219,6 +219,7 @@ public class TestOMSnapshotDeleteRequest {
     // Expected -1 because no snapshot was created before.
     assertEquals(0, omMetrics.getNumSnapshotCreates());
     assertEquals(-1, omMetrics.getNumSnapshotActive());
+    assertEquals(1, omMetrics.getNumSnapshotDeleted());
   }
 
   /**


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

Reply via email to