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

nanda pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git

commit 45c4cfe790bd6d7962698555c634a42b38c6cad1
Author: Nanda kumar <[email protected]>
AuthorDate: Fri Jan 25 12:16:29 2019 +0530

    HDDS-906. Display the ozone version on SCM/OM web ui instead of Hadoop 
version.
    Contributed by Doroszlai, Attila.
---
 .../org/apache/hadoop/utils/HddsVersionInfo.java   | 70 ++------------------
 .../{HddsVersionInfo.java => VersionInfo.java}     | 65 +++++++------------
 .../hadoop/hdds/server/ServiceRuntimeInfoImpl.java | 15 +++--
 .../hdds/scm/server/StorageContainerManager.java   | 24 ++++---
 .../apache/hadoop/ozone/util/OzoneVersionInfo.java | 75 ++--------------------
 .../hadoop/ozone/TestStorageContainerManager.java  |  6 ++
 .../apache/hadoop/ozone/om/TestOzoneManager.java   |  8 +++
 .../org/apache/hadoop/ozone/om/OzoneManager.java   |  2 +
 8 files changed, 68 insertions(+), 197 deletions(-)

diff --git 
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/utils/HddsVersionInfo.java 
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/utils/HddsVersionInfo.java
index 88b61f6..13c62b7 100644
--- 
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/utils/HddsVersionInfo.java
+++ 
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/utils/HddsVersionInfo.java
@@ -20,86 +20,24 @@ package org.apache.hadoop.utils;
 
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.classification.InterfaceStability;
-import org.apache.hadoop.io.IOUtils;
 import org.apache.hadoop.util.ClassUtil;
-import org.apache.hadoop.util.ThreadUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-
 /**
  * This class returns build information about Hadoop components.
  */
 @InterfaceAudience.Public
 @InterfaceStability.Stable
-public class HddsVersionInfo {
+public final class HddsVersionInfo {
 
   private static final Logger LOG = LoggerFactory.getLogger(
       HddsVersionInfo.class);
 
-  public static final HddsVersionInfo HDDS_VERSION_INFO =
-      new HddsVersionInfo("hdds");
-
-  private Properties info;
-
-  protected HddsVersionInfo(String component) {
-    info = new Properties();
-    String versionInfoFile = component + "-version-info.properties";
-    InputStream is = null;
-    try {
-      is = ThreadUtil.getResourceAsStream(
-          HddsVersionInfo.class.getClassLoader(),
-          versionInfoFile);
-      info.load(is);
-    } catch (IOException ex) {
-      LoggerFactory.getLogger(getClass()).warn("Could not read '" +
-          versionInfoFile + "', " + ex.toString(), ex);
-    } finally {
-      IOUtils.closeStream(is);
-    }
-  }
-
-  protected String getVersion() {
-    return info.getProperty("version", "Unknown");
-  }
+  public static final VersionInfo HDDS_VERSION_INFO =
+      new VersionInfo("hdds");
 
-  protected String getRevision() {
-    return info.getProperty("revision", "Unknown");
-  }
-
-  protected String getBranch() {
-    return info.getProperty("branch", "Unknown");
-  }
-
-  protected String getDate() {
-    return info.getProperty("date", "Unknown");
-  }
-
-  protected String getUser() {
-    return info.getProperty("user", "Unknown");
-  }
-
-  protected String getUrl() {
-    return info.getProperty("url", "Unknown");
-  }
-
-  protected String getSrcChecksum() {
-    return info.getProperty("srcChecksum", "Unknown");
-  }
-
-  public String getBuildVersion() {
-    return HDDS_VERSION_INFO.getVersion() +
-        " from " + HDDS_VERSION_INFO.getRevision() +
-        " by " + getUser() +
-        " source checksum " + getSrcChecksum();
-  }
-
-  protected String getProtocVersion() {
-    return info.getProperty("protocVersion", "Unknown");
-  }
+  private HddsVersionInfo() {}
 
   public static void main(String[] args) {
     System.out.println("Using HDDS " + HDDS_VERSION_INFO.getVersion());
diff --git 
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/utils/HddsVersionInfo.java 
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/utils/VersionInfo.java
similarity index 59%
copy from 
hadoop-hdds/common/src/main/java/org/apache/hadoop/utils/HddsVersionInfo.java
copy to 
hadoop-hdds/common/src/main/java/org/apache/hadoop/utils/VersionInfo.java
index 88b61f6..9b86934 100644
--- 
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/utils/HddsVersionInfo.java
+++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/utils/VersionInfo.java
@@ -15,15 +15,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.hadoop.utils;
 
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.classification.InterfaceStability;
 import org.apache.hadoop.io.IOUtils;
-import org.apache.hadoop.util.ClassUtil;
 import org.apache.hadoop.util.ThreadUtil;
-import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
@@ -35,24 +32,17 @@ import java.util.Properties;
  */
 @InterfaceAudience.Public
 @InterfaceStability.Stable
-public class HddsVersionInfo {
-
-  private static final Logger LOG = LoggerFactory.getLogger(
-      HddsVersionInfo.class);
+public class VersionInfo {
 
-  public static final HddsVersionInfo HDDS_VERSION_INFO =
-      new HddsVersionInfo("hdds");
+  private final Properties info = new Properties();
 
-  private Properties info;
-
-  protected HddsVersionInfo(String component) {
-    info = new Properties();
+  public VersionInfo(String component) {
     String versionInfoFile = component + "-version-info.properties";
     InputStream is = null;
     try {
       is = ThreadUtil.getResourceAsStream(
-          HddsVersionInfo.class.getClassLoader(),
-          versionInfoFile);
+        getClass().getClassLoader(),
+        versionInfoFile);
       info.load(is);
     } catch (IOException ex) {
       LoggerFactory.getLogger(getClass()).warn("Could not read '" +
@@ -62,57 +52,46 @@ public class HddsVersionInfo {
     }
   }
 
-  protected String getVersion() {
+  public String getRelease() {
+    return info.getProperty("release", "Unknown");
+  }
+
+  public String getVersion() {
     return info.getProperty("version", "Unknown");
   }
 
-  protected String getRevision() {
+  public String getRevision() {
     return info.getProperty("revision", "Unknown");
   }
 
-  protected String getBranch() {
+  public String getBranch() {
     return info.getProperty("branch", "Unknown");
   }
 
-  protected String getDate() {
+  public String getDate() {
     return info.getProperty("date", "Unknown");
   }
 
-  protected String getUser() {
+  public String getUser() {
     return info.getProperty("user", "Unknown");
   }
 
-  protected String getUrl() {
+  public String getUrl() {
     return info.getProperty("url", "Unknown");
   }
 
-  protected String getSrcChecksum() {
+  public String getSrcChecksum() {
     return info.getProperty("srcChecksum", "Unknown");
   }
 
-  public String getBuildVersion() {
-    return HDDS_VERSION_INFO.getVersion() +
-        " from " + HDDS_VERSION_INFO.getRevision() +
-        " by " + getUser() +
-        " source checksum " + getSrcChecksum();
-  }
-
-  protected String getProtocVersion() {
+  public String getProtocVersion() {
     return info.getProperty("protocVersion", "Unknown");
   }
 
-  public static void main(String[] args) {
-    System.out.println("Using HDDS " + HDDS_VERSION_INFO.getVersion());
-    System.out.println(
-        "Source code repository " + HDDS_VERSION_INFO.getUrl() + " -r " +
-            HDDS_VERSION_INFO.getRevision());
-    System.out.println("Compiled by " + HDDS_VERSION_INFO.getUser() + " on "
-        + HDDS_VERSION_INFO.getDate());
-    System.out.println(
-        "Compiled with protoc " + HDDS_VERSION_INFO.getProtocVersion());
-    System.out.println(
-        "From source with checksum " + HDDS_VERSION_INFO.getSrcChecksum());
-    LOG.debug("This command was run using " +
-        ClassUtil.findContainingJar(HddsVersionInfo.class));
+  public String getBuildVersion() {
+    return getVersion() +
+        " from " + getRevision() +
+        " by " + getUser() +
+        " source checksum " + getSrcChecksum();
   }
 }
diff --git 
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/ServiceRuntimeInfoImpl.java
 
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/ServiceRuntimeInfoImpl.java
index 36d6b64..850d96e 100644
--- 
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/ServiceRuntimeInfoImpl.java
+++ 
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/ServiceRuntimeInfoImpl.java
@@ -17,7 +17,7 @@
 
 package org.apache.hadoop.hdds.server;
 
-import org.apache.hadoop.util.VersionInfo;
+import org.apache.hadoop.utils.VersionInfo;
 
 /**
  * Helper base class to report the standard version and runtime information.
@@ -26,21 +26,26 @@ import org.apache.hadoop.util.VersionInfo;
 public class ServiceRuntimeInfoImpl implements ServiceRuntimeInfo {
 
   private long startedTimeInMillis;
+  private final VersionInfo versionInfo;
+
+  protected ServiceRuntimeInfoImpl(VersionInfo versionInfo) {
+    this.versionInfo = versionInfo;
+  }
 
   @Override
   public String getVersion() {
-    return VersionInfo.getVersion() + ", r" + VersionInfo.getRevision();
+    return versionInfo.getVersion() + ", r" + versionInfo.getRevision();
   }
 
   @Override
   public String getSoftwareVersion() {
-    return VersionInfo.getVersion();
+    return versionInfo.getVersion();
   }
 
   @Override
   public String getCompileInfo() {
-    return VersionInfo.getDate() + " by " + VersionInfo.getUser() + " from "
-        + VersionInfo.getBranch();
+    return versionInfo.getDate() + " by " + versionInfo.getUser() + " from "
+        + versionInfo.getBranch();
   }
 
   @Override
diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java
index a7949db..ca98033 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java
@@ -44,20 +44,17 @@ import 
org.apache.hadoop.hdds.scm.command.CommandStatusReportHandler;
 import org.apache.hadoop.hdds.scm.container.CloseContainerEventHandler;
 import org.apache.hadoop.hdds.scm.container.ContainerActionsHandler;
 import org.apache.hadoop.hdds.scm.container.ContainerID;
+import org.apache.hadoop.hdds.scm.container.ContainerInfo;
 import org.apache.hadoop.hdds.scm.container.ContainerManager;
+import org.apache.hadoop.hdds.scm.container.ContainerReportHandler;
 import org.apache.hadoop.hdds.scm.container.IncrementalContainerReportHandler;
 import org.apache.hadoop.hdds.scm.container.SCMContainerManager;
-import org.apache.hadoop.hdds.scm.container.ContainerReportHandler;
-import org.apache.hadoop.hdds.scm.container.replication
-    .ReplicationActivityStatus;
-import org.apache.hadoop.hdds.scm.container.replication.ReplicationManager;
-import org.apache.hadoop.hdds.scm.container.ContainerInfo;
-import org.apache.hadoop.hdds.scm.container.placement.algorithms
-    .ContainerPlacementPolicy;
-import org.apache.hadoop.hdds.scm.container.placement.algorithms
-    .SCMContainerPlacementCapacity;
+import 
org.apache.hadoop.hdds.scm.container.placement.algorithms.ContainerPlacementPolicy;
+import 
org.apache.hadoop.hdds.scm.container.placement.algorithms.SCMContainerPlacementCapacity;
 import org.apache.hadoop.hdds.scm.container.placement.metrics.ContainerStat;
 import org.apache.hadoop.hdds.scm.container.placement.metrics.SCMMetrics;
+import 
org.apache.hadoop.hdds.scm.container.replication.ReplicationActivityStatus;
+import org.apache.hadoop.hdds.scm.container.replication.ReplicationManager;
 import org.apache.hadoop.hdds.scm.events.SCMEvents;
 import org.apache.hadoop.hdds.scm.exceptions.SCMException;
 import org.apache.hadoop.hdds.scm.exceptions.SCMException.ResultCodes;
@@ -95,8 +92,7 @@ import 
org.apache.hadoop.security.authentication.client.AuthenticationException;
 import org.apache.hadoop.util.GenericOptionsParser;
 import org.apache.hadoop.util.JvmPauseMonitor;
 import org.apache.hadoop.util.StringUtils;
-
-
+import org.apache.hadoop.utils.HddsVersionInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -110,10 +106,11 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.TimeUnit;
+
+import static 
org.apache.hadoop.hdds.scm.ScmConfigKeys.HDDS_SCM_KERBEROS_KEYTAB_FILE_KEY;
+import static 
org.apache.hadoop.hdds.scm.ScmConfigKeys.HDDS_SCM_KERBEROS_PRINCIPAL_KEY;
 import static 
org.apache.hadoop.hdds.scm.ScmConfigKeys.HDDS_SCM_WATCHER_TIMEOUT_DEFAULT;
 import static org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_ENABLED;
-import static 
org.apache.hadoop.hdds.scm.ScmConfigKeys.HDDS_SCM_KERBEROS_PRINCIPAL_KEY;
-import static 
org.apache.hadoop.hdds.scm.ScmConfigKeys.HDDS_SCM_KERBEROS_KEYTAB_FILE_KEY;
 import static org.apache.hadoop.util.ExitUtil.terminate;
 
 /**
@@ -209,6 +206,7 @@ public final class StorageContainerManager extends 
ServiceRuntimeInfoImpl
    */
   private StorageContainerManager(OzoneConfiguration conf)
       throws IOException, AuthenticationException {
+    super(HddsVersionInfo.HDDS_VERSION_INFO);
 
     configuration = conf;
     StorageContainerManager.initMetrics();
diff --git 
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/util/OzoneVersionInfo.java
 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/util/OzoneVersionInfo.java
index c408b03..8378c5f 100644
--- 
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/util/OzoneVersionInfo.java
+++ 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/util/OzoneVersionInfo.java
@@ -20,90 +20,25 @@ package org.apache.hadoop.ozone.util;
 
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.classification.InterfaceStability;
-import org.apache.hadoop.io.IOUtils;
 import org.apache.hadoop.util.ClassUtil;
-import org.apache.hadoop.util.ThreadUtil;
 import org.apache.hadoop.utils.HddsVersionInfo;
+import org.apache.hadoop.utils.VersionInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-
 /**
  * This class returns build information about Hadoop components.
  */
 @InterfaceAudience.Public
 @InterfaceStability.Stable
-public class OzoneVersionInfo {
+public final class OzoneVersionInfo {
   private static final Logger LOG =
       LoggerFactory.getLogger(OzoneVersionInfo.class);
 
-  private Properties info;
-
-  protected OzoneVersionInfo(String component) {
-    info = new Properties();
-    String versionInfoFile = component + "-version-info.properties";
-    InputStream is = null;
-    try {
-      is = ThreadUtil
-          .getResourceAsStream(OzoneVersionInfo.class.getClassLoader(),
-              versionInfoFile);
-      info.load(is);
-    } catch (IOException ex) {
-      LoggerFactory.getLogger(getClass()).warn("Could not read '" +
-          versionInfoFile + "', " + ex.toString(), ex);
-    } finally {
-      IOUtils.closeStream(is);
-    }
-  }
-
-  protected String getVersion() {
-    return info.getProperty("version", "Unknown");
-  }
-
-  protected String getRelease() {
-    return info.getProperty("release", "Unknown");
-  }
-
-  protected String getRevision() {
-    return info.getProperty("revision", "Unknown");
-  }
-
-  protected String getBranch() {
-    return info.getProperty("branch", "Unknown");
-  }
-
-  protected String getDate() {
-    return info.getProperty("date", "Unknown");
-  }
-
-  protected String getUser() {
-    return info.getProperty("user", "Unknown");
-  }
-
-  protected String getUrl() {
-    return info.getProperty("url", "Unknown");
-  }
-
-  protected String getSrcChecksum() {
-    return info.getProperty("srcChecksum", "Unknown");
-  }
-
-  protected String getBuildVersion() {
-    return getVersion() +
-        " from " + getRevision() +
-        " by " + getUser() +
-        " source checksum " + getSrcChecksum();
-  }
-
-  protected String getProtocVersion() {
-    return info.getProperty("protocVersion", "Unknown");
-  }
+  public static final VersionInfo OZONE_VERSION_INFO =
+      new VersionInfo("ozone");
 
-  private static final OzoneVersionInfo OZONE_VERSION_INFO =
-      new OzoneVersionInfo("ozone");
+  private OzoneVersionInfo() {}
 
   public static void main(String[] args) {
     System.out.println(
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestStorageContainerManager.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestStorageContainerManager.java
index c79da17..1e2524d 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestStorageContainerManager.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestStorageContainerManager.java
@@ -62,6 +62,7 @@ import org.apache.hadoop.ozone.protocol.commands.SCMCommand;
 import 
org.apache.hadoop.security.authentication.client.AuthenticationException;
 import org.apache.hadoop.test.GenericTestUtils;
 import org.apache.hadoop.util.ExitUtil;
+import org.apache.hadoop.utils.HddsVersionInfo;
 
 import org.junit.Assert;
 import org.junit.Rule;
@@ -474,5 +475,10 @@ public class TestStorageContainerManager {
     ScmInfo scmInfo = scm.getClientProtocolServer().getScmInfo();
     Assert.assertEquals(clusterId, scmInfo.getClusterId());
     Assert.assertEquals(scmId, scmInfo.getScmId());
+
+    String expectedVersion = HddsVersionInfo.HDDS_VERSION_INFO.getVersion();
+    String actualVersion = scm.getSoftwareVersion();
+    Assert.assertEquals(expectedVersion, actualVersion);
   }
+
 }
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOzoneManager.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOzoneManager.java
index 26c2a58..45231f1 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOzoneManager.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOzoneManager.java
@@ -38,6 +38,7 @@ import org.apache.hadoop.ozone.protocol.proto
     .OzoneManagerProtocolProtos.ServicePort;
 import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
 import 
org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.VolumeList;
+import org.apache.hadoop.ozone.util.OzoneVersionInfo;
 import org.apache.hadoop.ozone.web.handlers.BucketArgs;
 import org.apache.hadoop.ozone.web.handlers.KeyArgs;
 import org.apache.hadoop.ozone.web.handlers.UserArgs;
@@ -1395,4 +1396,11 @@ public class TestOzoneManager {
         LifeCycle.State.RUNNING,
         cluster.getOzoneManager().getOmRatisServerState());
   }
+
+  @Test
+  public void testVersion() {
+    String expectedVersion = OzoneVersionInfo.OZONE_VERSION_INFO.getVersion();
+    String actualVersion = cluster.getOzoneManager().getSoftwareVersion();
+    Assert.assertEquals(expectedVersion, actualVersion);
+  }
 }
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 a921a03..9c15e31 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
@@ -99,6 +99,7 @@ import org.apache.hadoop.ozone.security.acl.OzoneObjInfo;
 import org.apache.hadoop.ozone.security.acl.RequestContext;
 import org.apache.hadoop.ozone.security.OzoneBlockTokenSecretManager;
 import org.apache.hadoop.ozone.security.OzoneDelegationTokenSecretManager;
+import org.apache.hadoop.ozone.util.OzoneVersionInfo;
 import org.apache.hadoop.security.AccessControlException;
 import org.apache.hadoop.security.SecurityUtil;
 import org.apache.hadoop.security.UserGroupInformation;
@@ -223,6 +224,7 @@ public final class OzoneManager extends 
ServiceRuntimeInfoImpl
   private volatile boolean isOmRpcServerRunning = false;
 
   private OzoneManager(OzoneConfiguration conf) throws IOException {
+    super(OzoneVersionInfo.OZONE_VERSION_INFO);
     Preconditions.checkNotNull(conf);
     configuration = conf;
     omStorage = new OMStorage(conf);


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

Reply via email to