diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/NodeHealthScriptRunner.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/NodeHealthScriptRunner.java
index cf1e46053a..7c46c5b7ec 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/NodeHealthScriptRunner.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/NodeHealthScriptRunner.java
@@ -249,7 +249,7 @@ public class NodeHealthScriptRunner extends AbstractService {
}
/**
- * Sets if the node is healhty or not considering disks' health also.
+ * Sets if the node is healthy or not considering disks' health also.
*
* @param isHealthy
* if or not node is healthy
diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/conf/OzoneConfiguration.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/conf/OzoneConfiguration.java
index 43e6fe79b7..b7166c7f47 100644
--- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/conf/OzoneConfiguration.java
+++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/conf/OzoneConfiguration.java
@@ -30,7 +30,9 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.net.URL;
import java.util.ArrayList;
+import java.util.Enumeration;
import java.util.List;
+import java.util.Properties;
/**
* Configuration for ozone.
@@ -161,4 +163,31 @@ public class OzoneConfiguration extends Configuration {
Configuration.addDefaultResource("ozone-default.xml");
Configuration.addDefaultResource("ozone-site.xml");
}
+
+ /**
+ * The super class method getAllPropertiesByTag
+ * does not override values of properties
+ * if there is no tag present in the configs of
+ * newly added resources.
+ * @param tag
+ * @return Properties that belong to the tag
+ */
+ @Override
+ public Properties getAllPropertiesByTag(String tag) {
+ // Call getProps first to load the newly added resources
+ // before calling super.getAllPropertiesByTag
+ Properties updatedProps = getProps();
+ Properties propertiesByTag = super.getAllPropertiesByTag(tag);
+ Properties props = new Properties();
+ Enumeration properties = propertiesByTag.propertyNames();
+ while (properties.hasMoreElements()) {
+ Object propertyName = properties.nextElement();
+ // get the current value of the property
+ Object value = updatedProps.getProperty(propertyName.toString());
+ if (value != null) {
+ props.put(propertyName, value);
+ }
+ }
+ return props;
+ }
}
diff --git a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/conf/TestOzoneConfiguration.java b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/conf/TestOzoneConfiguration.java
new file mode 100644
index 0000000000..ef6e5a84ee
--- /dev/null
+++ b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/conf/TestOzoneConfiguration.java
@@ -0,0 +1,143 @@
+/**
+ * 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
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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.hdds.conf;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.Path;
+import org.junit.Rule;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Assert;
+import org.junit.rules.TemporaryFolder;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+
+/**
+ * Test class for OzoneConfiguration.
+ */
+public class TestOzoneConfiguration {
+
+ private Configuration conf;
+
+ @Rule
+ public TemporaryFolder tempConfigs = new TemporaryFolder();
+
+ @Before
+ public void setUp() throws Exception {
+ conf = new OzoneConfiguration();
+ }
+
+ private void startConfig(BufferedWriter out) throws IOException {
+ out.write("\n");
+ out.write("\n");
+ }
+
+ private void endConfig(BufferedWriter out) throws IOException {
+ out.write("\n");
+ out.flush();
+ out.close();
+ }
+
+ @Test
+ public void testGetAllPropertiesByTags() throws Exception {
+ File coreDefault = tempConfigs.newFile("core-default-test.xml");
+ File coreSite = tempConfigs.newFile("core-site-test.xml");
+ try (BufferedWriter out = new BufferedWriter(new FileWriter(coreDefault))) {
+ startConfig(out);
+ appendProperty(out, "hadoop.tags.system", "YARN,HDFS,NAMENODE");
+ appendProperty(out, "hadoop.tags.custom", "MYCUSTOMTAG");
+ appendPropertyByTag(out, "dfs.cblock.trace.io", "false", "YARN");
+ appendPropertyByTag(out, "dfs.replication", "1", "HDFS");
+ appendPropertyByTag(out, "dfs.namenode.logging.level", "INFO",
+ "NAMENODE");
+ appendPropertyByTag(out, "dfs.random.key", "XYZ", "MYCUSTOMTAG");
+ endConfig(out);
+
+ Path fileResource = new Path(coreDefault.getAbsolutePath());
+ conf.addResource(fileResource);
+ Assert.assertEquals(conf.getAllPropertiesByTag("MYCUSTOMTAG")
+ .getProperty("dfs.random.key"), "XYZ");
+ }
+
+ try (BufferedWriter out = new BufferedWriter(new FileWriter(coreSite))) {
+ startConfig(out);
+ appendProperty(out, "dfs.random.key", "ABC");
+ appendProperty(out, "dfs.replication", "3");
+ appendProperty(out, "dfs.cblock.trace.io", "true");
+ endConfig(out);
+
+ Path fileResource = new Path(coreSite.getAbsolutePath());
+ conf.addResource(fileResource);
+ }
+
+ // Test if values are getting overridden even without tags being present
+ Assert.assertEquals("3", conf.getAllPropertiesByTag("HDFS")
+ .getProperty("dfs.replication"));
+ Assert.assertEquals("ABC", conf.getAllPropertiesByTag("MYCUSTOMTAG")
+ .getProperty("dfs.random.key"));
+ Assert.assertEquals("true", conf.getAllPropertiesByTag("YARN")
+ .getProperty("dfs.cblock.trace.io"));
+ }
+
+ private void appendProperty(BufferedWriter out, String name, String val)
+ throws IOException {
+ this.appendProperty(out, name, val, false);
+ }
+
+ private void appendProperty(BufferedWriter out, String name, String val,
+ boolean isFinal) throws IOException {
+ out.write("");
+ out.write("");
+ out.write(name);
+ out.write("");
+ out.write("");
+ out.write(val);
+ out.write("");
+ if (isFinal) {
+ out.write("true");
+ }
+ out.write("\n");
+ }
+
+ private void appendPropertyByTag(BufferedWriter out, String name, String val,
+ String tags) throws IOException {
+ this.appendPropertyByTag(out, name, val, false, tags);
+ }
+
+ private void appendPropertyByTag(BufferedWriter out, String name, String val,
+ boolean isFinal,
+ String tag) throws IOException {
+ out.write("");
+ out.write("");
+ out.write(name);
+ out.write("");
+ out.write("");
+ out.write(val);
+ out.write("");
+ if (isFinal) {
+ out.write("true");
+ }
+ out.write("");
+ out.write(tag);
+ out.write("");
+ out.write("\n");
+ }
+}
diff --git a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/conf/package-info.java b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/conf/package-info.java
new file mode 100644
index 0000000000..e72c902045
--- /dev/null
+++ b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/conf/package-info.java
@@ -0,0 +1,22 @@
+/*
+ * 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
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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.
+ */
+
+/**
+ * This package contains the OzoneConfiguration related tests.
+ */
+package org.apache.hadoop.hdds.conf;
\ No newline at end of file
diff --git a/hadoop-hdds/framework/src/main/resources/webapps/static/ozone.js b/hadoop-hdds/framework/src/main/resources/webapps/static/ozone.js
index c2ed2adce2..a31078cfd7 100644
--- a/hadoop-hdds/framework/src/main/resources/webapps/static/ozone.js
+++ b/hadoop-hdds/framework/src/main/resources/webapps/static/ozone.js
@@ -308,7 +308,6 @@
ctrl.convertToArray(response.data);
ctrl.configs = Object.values(ctrl.keyTagMap);
ctrl.component = 'All';
- console.log("ajay -> " + JSON.stringify(ctrl.configs));
ctrl.sortBy('name');
});
};
@@ -326,7 +325,6 @@
if (ctrl.component != 'All' && (item['tag'].indexOf(ctrl
.component) < 0)) {
- console.log(item['name'] + " false tag " + item['tag']);
return false;
}
diff --git a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeManager.java b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeManager.java
index b81050345f..1e9e17470c 100644
--- a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeManager.java
+++ b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeManager.java
@@ -518,7 +518,7 @@ public class TestSCMNodeManager {
// 3.5 seconds have elapsed for stale node, so it moves into Stale.
// 7 seconds have elapsed for dead node, so it moves into dead.
- // 2 Seconds have elapsed for healthy node, so it stays in healhty state.
+ // 2 Seconds have elapsed for healthy node, so it stays in healthy state.
healthyList = nodeManager.getNodes(HEALTHY);
List staleList = nodeManager.getNodes(STALE);
List deadList = nodeManager.getNodes(DEAD);
diff --git a/hadoop-ozone/dist/src/main/smoketest/test.sh b/hadoop-ozone/dist/src/main/smoketest/test.sh
index 57044043f2..582fbdf7c5 100755
--- a/hadoop-ozone/dist/src/main/smoketest/test.sh
+++ b/hadoop-ozone/dist/src/main/smoketest/test.sh
@@ -45,7 +45,7 @@ wait_for_datanodes(){
#Print it only if a number. Could be not a number if scm is not yet started
if [[ "$datanodes" ]]; then
- echo "$datanodes datanode is up and healhty (until now)"
+ echo "$datanodes datanode is up and healthy (until now)"
fi
fi