From a1b18eb599eb75be9eaea6d4f93025f5d9ada3d1 Mon Sep 17 00:00:00 2001 From: Ashish Singhi Date: Thu, 11 Sep 2014 16:45:46 +0530 Subject: [PATCH] HBASE-11873 Hbase Version CLI enhancement --- .../java/org/apache/hadoop/hbase/VersionAnnotation.java | 6 ++++++ .../java/org/apache/hadoop/hbase/util/VersionInfo.java | 13 +++++++++++-- hbase-common/src/saveVersion.sh | 14 +++++++++++++- .../apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon | 5 +++++ .../hadoop/hbase/tmpl/regionserver/RSStatusTmpl.jamon | 5 +++++ 5 files changed, 40 insertions(+), 3 deletions(-) diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/VersionAnnotation.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/VersionAnnotation.java index db2a1d5..34f0336 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/VersionAnnotation.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/VersionAnnotation.java @@ -57,4 +57,10 @@ public @interface VersionAnnotation { * @return the revision number as a string (eg. "451451") */ String revision(); + + /** + * Get a checksum of the source files from which HBase was compiled. + * @return a string that uniquely identifies the source + **/ + String srcChecksum(); } diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/VersionInfo.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/VersionInfo.java index 8921935..cd78eba 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/VersionInfo.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/VersionInfo.java @@ -93,11 +93,20 @@ public class VersionInfo { static String[] versionReport() { return new String[] { "HBase " + getVersion(), - "Subversion " + getUrl() + " -r " + getRevision(), - "Compiled by " + getUser() + " on " + getDate() + "Source code repository " + getUrl() + " -r " + getRevision(), + "Compiled by " + getUser() + " on " + getDate(), + "From source with checksum " + getSrcChecksum() }; } + /** + * Get the checksum of the source files from which Hadoop was compiled. + * @return a string that uniquely identifies the source + **/ + public static String getSrcChecksum() { + return version != null ? version.srcChecksum() : "Unknown"; + } + public static void writeTo(PrintWriter out) { for (String line : versionReport()) { out.println(line); diff --git a/hbase-common/src/saveVersion.sh b/hbase-common/src/saveVersion.sh index 5edb8ea..890dc5a 100644 --- a/hbase-common/src/saveVersion.sh +++ b/hbase-common/src/saveVersion.sh @@ -41,6 +41,17 @@ else revision="Unknown" url="file://$cwd" fi +which md5sum > /dev/null +if [ "$?" != "0" ] ; then + which md5 > /dev/null + if [ "$?" != "0" ] ; then + srcChecksum="Unknown" + else + srcChecksum=`find hbase-*/src/main/ | grep -e "\.java" -e "\.proto" | LC_ALL=C sort | xargs md5 | md5 | cut -d ' ' -f 1` + fi +else + srcChecksum=`find hbase-*/src/main/ | grep -e "\.java" -e "\.proto" | LC_ALL=C sort | xargs md5sum | md5sum | cut -d ' ' -f 1` +fi popd mkdir -p "$outputDirectory/org/apache/hadoop/hbase" @@ -49,7 +60,8 @@ cat >"$outputDirectory/org/apache/hadoop/hbase/package-info.java" <When HBase version was compiled and by whom + HBase Source Checksum + <% org.apache.hadoop.util.VersionInfo.getSrcChecksum() %> + HBase source MD5 checksum + + Hadoop Version <% org.apache.hadoop.util.VersionInfo.getVersion() %>, r<% org.apache.hadoop.util.VersionInfo.getRevision() %> Hadoop version and revision diff --git a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.jamon b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.jamon index 3fcac73..68b4b7d 100644 --- a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.jamon +++ b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.jamon @@ -141,6 +141,11 @@ org.apache.hadoop.hbase.zookeeper.MasterAddressTracker; When HBase version was compiled and by whom + HBase Source Checksum + <% org.apache.hadoop.util.VersionInfo.getSrcChecksum() %> + HBase source MD5 checksum + + Zookeeper Quorum <% regionServer.getZooKeeper().getQuorum() %> Addresses of all registered ZK servers -- 1.9.2.msysgit.0