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

myskov 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 3f98df5e35 HDDS-11580. Validate 'hdds.datanode.dir.du.reserved' 
property (#7328)
3f98df5e35 is described below

commit 3f98df5e3543bb8456a19780ee3fd842084dc96a
Author: Daniil Prizva <[email protected]>
AuthorDate: Tue Oct 22 14:46:36 2024 +0300

    HDDS-11580. Validate 'hdds.datanode.dir.du.reserved' property (#7328)
---
 .../hadoop/ozone/container/common/volume/VolumeUsage.java    |  6 +++---
 .../container/common/volume/TestReservedVolumeSpace.java     | 12 ++++++++++++
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/VolumeUsage.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/VolumeUsage.java
index 733dc7964f..34ba66c91b 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/VolumeUsage.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/VolumeUsage.java
@@ -19,6 +19,7 @@
 package org.apache.hadoop.ozone.container.common.volume;
 
 import com.google.common.annotations.VisibleForTesting;
+import org.apache.hadoop.hdds.conf.ConfigurationException;
 import org.apache.hadoop.hdds.conf.ConfigurationSource;
 import org.apache.hadoop.hdds.conf.StorageSize;
 import org.apache.hadoop.hdds.conf.StorageUnit;
@@ -220,9 +221,8 @@ public class VolumeUsage {
     for (String reserve : reserveList) {
       String[] words = reserve.split(":");
       if (words.length < 2) {
-        LOG.error("Reserved space should be configured in a pair, but current 
value is {}",
-            reserve);
-        continue;
+        throw new ConfigurationException("hdds.datanode.dir.du.reserved - " +
+                "Reserved space should be configured in a pair, but current 
value is " + reserve);
       }
 
       try {
diff --git 
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestReservedVolumeSpace.java
 
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestReservedVolumeSpace.java
index 5e2dd0c75c..5e0a31944f 100644
--- 
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestReservedVolumeSpace.java
+++ 
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestReservedVolumeSpace.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.ozone.container.common.volume;
 
 import org.apache.hadoop.conf.StorageUnit;
 import org.apache.hadoop.hdds.HddsConfigKeys;
+import org.apache.hadoop.hdds.conf.ConfigurationException;
 import org.apache.hadoop.hdds.conf.OzoneConfiguration;
 import org.apache.hadoop.hdds.fs.MockSpaceUsageCheckFactory;
 import org.apache.hadoop.hdds.scm.ScmConfigKeys;
@@ -37,6 +38,7 @@ import static 
org.apache.hadoop.hdds.HddsConfigKeys.HDDS_DATANODE_VOLUME_MIN_FRE
 import static 
org.apache.hadoop.hdds.scm.ScmConfigKeys.HDDS_DATANODE_DIR_DU_RESERVED_PERCENT;
 import static 
org.apache.hadoop.hdds.scm.ScmConfigKeys.HDDS_DATANODE_DIR_DU_RESERVED_PERCENT_DEFAULT;
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertNotEquals;
 
 /**
@@ -166,6 +168,16 @@ public class TestReservedVolumeSpace {
     assertEquals(getExpectedDefaultReserved(hddsVolume2), reservedFromVolume2);
   }
 
+  @Test
+  public void testInvalidConfigThrowsException() {
+    OzoneConfiguration conf = new OzoneConfiguration();
+    conf.set(ScmConfigKeys.HDDS_DATANODE_DIR_DU_RESERVED, "15GB");
+
+    assertThrows(ConfigurationException.class,
+            () -> volumeBuilder.conf(conf).build(),
+            "Reserved space should be configured in a pair");
+  }
+
   @Test
   public void testPathsCanonicalized() throws Exception {
     OzoneConfiguration conf = new OzoneConfiguration();


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

Reply via email to