You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by bo...@apache.org on 2018/09/25 17:45:56 UTC
[2/3] storm git commit: STORM-621: Added in full version info
STORM-621: Added in full version info
Project: http://git-wip-us.apache.org/repos/asf/storm/repo
Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/1f1fb0a1
Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/1f1fb0a1
Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/1f1fb0a1
Branch: refs/heads/master
Commit: 1f1fb0a129a2bbf3a5065af08fc28e309612dea6
Parents: 70dd313
Author: Robert (Bobby) Evans <ev...@yahoo-inc.com>
Authored: Fri Sep 21 08:41:29 2018 -0500
Committer: Robert (Bobby) Evans <ev...@yahoo-inc.com>
Committed: Fri Sep 21 08:59:38 2018 -0500
----------------------------------------------------------------------
.../org/apache/storm/utils/IVersionInfo.java | 2 +-
.../src/jvm/org/apache/storm/utils/Utils.java | 48 ++++++++++++++++++--
.../jvm/org/apache/storm/utils/VersionInfo.java | 21 ++++-----
.../jvm/org/apache/storm/utils/UtilsTest.java | 6 +--
.../org/apache/storm/daemon/ui/UIHelpers.java | 29 ++++++++++--
.../apache/storm/daemon/ui/WEB-INF/index.html | 7 +++
.../WEB-INF/templates/index-page-template.html | 21 ++++++++-
7 files changed, 108 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/storm/blob/1f1fb0a1/storm-client/src/jvm/org/apache/storm/utils/IVersionInfo.java
----------------------------------------------------------------------
diff --git a/storm-client/src/jvm/org/apache/storm/utils/IVersionInfo.java b/storm-client/src/jvm/org/apache/storm/utils/IVersionInfo.java
index 9750d37..b25547f 100644
--- a/storm-client/src/jvm/org/apache/storm/utils/IVersionInfo.java
+++ b/storm-client/src/jvm/org/apache/storm/utils/IVersionInfo.java
@@ -21,7 +21,7 @@ package org.apache.storm.utils;
/**
* Implementation of VersionInfo that uses a properties file to get the VersionInfo.
*/
-interface IVersionInfo {
+public interface IVersionInfo {
/**
* Get the version number of the build.
* @return the version number of the build.
http://git-wip-us.apache.org/repos/asf/storm/blob/1f1fb0a1/storm-client/src/jvm/org/apache/storm/utils/Utils.java
----------------------------------------------------------------------
diff --git a/storm-client/src/jvm/org/apache/storm/utils/Utils.java b/storm-client/src/jvm/org/apache/storm/utils/Utils.java
index 1d0dad9..a0406e0 100644
--- a/storm-client/src/jvm/org/apache/storm/utils/Utils.java
+++ b/storm-client/src/jvm/org/apache/storm/utils/Utils.java
@@ -1462,17 +1462,57 @@ public class Utils {
* @param conf what to read the configuration out of.
* @return the map.
*/
- public static NavigableMap<String, String> getAlternativeVersionsMap(Map<String, Object> conf) {
- TreeMap<String, String> ret = new TreeMap<>();
+ public static NavigableMap<String, IVersionInfo> getAlternativeVersionsMap(Map<String, Object> conf) {
+ TreeMap<String, IVersionInfo> ret = new TreeMap<>();
Map<String, String> fromConf =
(Map<String, String>) conf.getOrDefault(Config.SUPERVISOR_WORKER_VERSION_CLASSPATH_MAP, Collections.emptyMap());
for (Map.Entry<String, String> entry : fromConf.entrySet()) {
IVersionInfo version = VersionInfo.getFromClasspath(entry.getValue());
if (version != null) {
- ret.put(entry.getKey(), version.getVersion());
+ ret.put(entry.getKey(), version);
} else {
LOG.error("Could not find the real version of {} from CP {}", entry.getKey(), entry.getValue());
- ret.put(entry.getKey(), "Unknown");
+ ret.put(entry.getKey(), new IVersionInfo() {
+ @Override
+ public String getVersion() {
+ return "Unknown";
+ }
+
+ @Override
+ public String getRevision() {
+ return "Unknown";
+ }
+
+ @Override
+ public String getBranch() {
+ return "Unknown";
+ }
+
+ @Override
+ public String getDate() {
+ return "Unknown";
+ }
+
+ @Override
+ public String getUser() {
+ return "Unknown";
+ }
+
+ @Override
+ public String getUrl() {
+ return "Unknown";
+ }
+
+ @Override
+ public String getSrcChecksum() {
+ return "Unknown";
+ }
+
+ @Override
+ public String getBuildVersion() {
+ return "Unknown";
+ }
+ });
}
}
return ret;
http://git-wip-us.apache.org/repos/asf/storm/blob/1f1fb0a1/storm-client/src/jvm/org/apache/storm/utils/VersionInfo.java
----------------------------------------------------------------------
diff --git a/storm-client/src/jvm/org/apache/storm/utils/VersionInfo.java b/storm-client/src/jvm/org/apache/storm/utils/VersionInfo.java
index 2490d98..9805d8b 100644
--- a/storm-client/src/jvm/org/apache/storm/utils/VersionInfo.java
+++ b/storm-client/src/jvm/org/apache/storm/utils/VersionInfo.java
@@ -30,7 +30,6 @@ import java.util.Arrays;
import java.util.Enumeration;
import java.util.List;
import java.util.Properties;
-import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import java.util.zip.ZipEntry;
import org.slf4j.Logger;
@@ -39,8 +38,8 @@ import org.slf4j.LoggerFactory;
public final class VersionInfo {
private static final Logger LOG = LoggerFactory.getLogger(VersionInfo.class);
private static final String STORM_CORE_PROPERTIES_NAME = "storm-core-version-info.properties";
- private static final VersionInfoImpl COMMON_VERSION_INFO = new VersionInfoImpl("storm-core");
- public static final SimpleVersion OUR_VERSION = new SimpleVersion(COMMON_VERSION_INFO.getVersion());
+ public static final IVersionInfo OUR_FULL_VERSION = new VersionInfoImpl("storm-core");
+ public static final SimpleVersion OUR_VERSION = new SimpleVersion(OUR_FULL_VERSION.getVersion());
private static class VersionInfoImpl implements IVersionInfo {
private Properties info;
@@ -169,7 +168,7 @@ public final class VersionInfo {
* @return the version number of the build.
*/
public static String getVersion() {
- return COMMON_VERSION_INFO.getVersion();
+ return OUR_FULL_VERSION.getVersion();
}
/**
@@ -177,7 +176,7 @@ public final class VersionInfo {
* @return the SCM revision number of the build.
*/
public static String getRevision() {
- return COMMON_VERSION_INFO.getRevision();
+ return OUR_FULL_VERSION.getRevision();
}
/**
@@ -185,7 +184,7 @@ public final class VersionInfo {
* @return the SCM branch of the build.
*/
public static String getBranch() {
- return COMMON_VERSION_INFO.getBranch();
+ return OUR_FULL_VERSION.getBranch();
}
/**
@@ -193,7 +192,7 @@ public final class VersionInfo {
* @return the date/time of the build.
*/
public static String getDate() {
- return COMMON_VERSION_INFO.getDate();
+ return OUR_FULL_VERSION.getDate();
}
/**
@@ -201,7 +200,7 @@ public final class VersionInfo {
* @return the name of the user that did the build.
*/
public static String getUser() {
- return COMMON_VERSION_INFO.getUser();
+ return OUR_FULL_VERSION.getUser();
}
/**
@@ -209,7 +208,7 @@ public final class VersionInfo {
* @return the SCM URL of the build.
*/
public static String getUrl() {
- return COMMON_VERSION_INFO.getUrl();
+ return OUR_FULL_VERSION.getUrl();
}
/**
@@ -217,7 +216,7 @@ public final class VersionInfo {
* @return the checksum of the source.
*/
public static String getSrcChecksum() {
- return COMMON_VERSION_INFO.getSrcChecksum();
+ return OUR_FULL_VERSION.getSrcChecksum();
}
/**
@@ -225,7 +224,7 @@ public final class VersionInfo {
* @return a descriptive representation of the build.
*/
public static String getBuildVersion() {
- return COMMON_VERSION_INFO.getBuildVersion();
+ return OUR_FULL_VERSION.getBuildVersion();
}
public static void main(String[] args) {
http://git-wip-us.apache.org/repos/asf/storm/blob/1f1fb0a1/storm-client/test/jvm/org/apache/storm/utils/UtilsTest.java
----------------------------------------------------------------------
diff --git a/storm-client/test/jvm/org/apache/storm/utils/UtilsTest.java b/storm-client/test/jvm/org/apache/storm/utils/UtilsTest.java
index 185e797..d42a7b1 100644
--- a/storm-client/test/jvm/org/apache/storm/utils/UtilsTest.java
+++ b/storm-client/test/jvm/org/apache/storm/utils/UtilsTest.java
@@ -231,10 +231,10 @@ public class UtilsTest {
versions.put(key, System.getProperty("java.class.path"));
Map<String, Object> conf = new HashMap<>();
conf.put(Config.SUPERVISOR_WORKER_VERSION_CLASSPATH_MAP, versions);
- NavigableMap<String, String> alternativeVersions = Utils.getAlternativeVersionsMap(conf);
+ NavigableMap<String, IVersionInfo> alternativeVersions = Utils.getAlternativeVersionsMap(conf);
assertEquals(1, alternativeVersions.size());
- String found = alternativeVersions.get(key);
+ IVersionInfo found = alternativeVersions.get(key);
assertNotNull(found);
- assertEquals(key, found);
+ assertEquals(key, found.getVersion());
}
}
http://git-wip-us.apache.org/repos/asf/storm/blob/1f1fb0a1/storm-webapp/src/main/java/org/apache/storm/daemon/ui/UIHelpers.java
----------------------------------------------------------------------
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/UIHelpers.java b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/UIHelpers.java
index 627f3e7..ab307e8 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/UIHelpers.java
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/UIHelpers.java
@@ -87,6 +87,7 @@ import org.apache.storm.generated.WorkerSummary;
import org.apache.storm.logging.filters.AccessLoggingFilter;
import org.apache.storm.stats.StatsUtil;
import org.apache.storm.thrift.TException;
+import org.apache.storm.utils.IVersionInfo;
import org.apache.storm.utils.ObjectReader;
import org.apache.storm.utils.TopologySpoutLag;
import org.apache.storm.utils.Utils;
@@ -520,7 +521,21 @@ public class UIHelpers {
return responseBuilder.build();
}
- private static final AtomicReference<List<Map<String, String>>> MEMORIZED_VERSIONS = new AtomicReference<List<Map<String, String>>>();
+ private static final AtomicReference<List<Map<String, String>>> MEMORIZED_VERSIONS = new AtomicReference<>();
+ private static final AtomicReference<Map<String, String>> MEMORIZED_FULL_VERSION = new AtomicReference<>();
+
+
+ private static Map<String, String> toJsonStruct(IVersionInfo info) {
+ Map<String, String> ret = new HashMap<>();
+ ret.put("version", info.getVersion());
+ ret.put("revision", info.getRevision());
+ ret.put("branch", info.getBranch());
+ ret.put("date", info.getDate());
+ ret.put("user", info.getUser());
+ ret.put("url", info.getUrl());
+ ret.put("srcChecksum", info.getSrcChecksum());
+ return ret;
+ }
/**
* Converts thrift call result into map fit for UI/api.
@@ -565,12 +580,11 @@ public class UIHelpers {
if (MEMORIZED_VERSIONS.get() == null) {
//Races are okay this is just to avoid extra work for each page load.
- NavigableMap<String, String> versionsMap = Utils.getAlternativeVersionsMap(conf);
+ NavigableMap<String, IVersionInfo> versionsMap = Utils.getAlternativeVersionsMap(conf);
List<Map<String, String>> versionList = new ArrayList<>();
- for (Map.Entry<String, String> entry : versionsMap.entrySet()) {
- Map<String, String> single = new HashMap<>();
+ for (Map.Entry<String, IVersionInfo> entry : versionsMap.entrySet()) {
+ Map<String, String> single = new HashMap<>(toJsonStruct(entry.getValue()));
single.put("versionMatch", entry.getKey());
- single.put("installedVersion", entry.getValue());
versionList.add(single);
}
MEMORIZED_VERSIONS.set(versionList);
@@ -580,8 +594,13 @@ public class UIHelpers {
result.put("alternativeWorkerVersions", versions);
}
+ if (MEMORIZED_FULL_VERSION.get() == null) {
+ MEMORIZED_FULL_VERSION.set(toJsonStruct(VersionInfo.OUR_FULL_VERSION));
+ }
+
result.put("user", user);
result.put("stormVersion", VersionInfo.getVersion());
+ result.put("stormVersionInfo", MEMORIZED_FULL_VERSION.get());
result.put("supervisors", supervisorSummaries.size());
result.put("topologies", clusterSummary.get_topologies_size());
result.put("slotsUsed", usedSlots);
http://git-wip-us.apache.org/repos/asf/storm/blob/1f1fb0a1/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/index.html
----------------------------------------------------------------------
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/index.html b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/index.html
index 545c157..0ea07bc 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/index.html
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/index.html
@@ -148,6 +148,13 @@ $(document).ready(function() {
jsError(function() {
clusterSummary.append(Mustache.render($(indexTemplate).filter("#cluster-summary-template").html(),response));
$('#cluster-summary [data-toggle="tooltip"]').tooltip();
+ $('#cluster-summary [data-toggle="toggle"]').each(function(index) {
+ var details = $(this).find('[toggle="details"]')
+ details.hide()
+ $(this).find('[toggle="link"]').on("click", function() {
+ details.toggle(500);
+ });
+ });
});
jsError(function() {
http://git-wip-us.apache.org/repos/asf/storm/blob/1f1fb0a1/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/templates/index-page-template.html
----------------------------------------------------------------------
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/templates/index-page-template.html b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/templates/index-page-template.html
index bec24d4..027333b 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/templates/index-page-template.html
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/templates/index-page-template.html
@@ -57,9 +57,26 @@
</thead>
<tbody>
<tr>
- <td>{{stormVersion}}
+ <td>
+ <div data-toggle="toggle">
+ {{#stormVersionInfo}}
+ <a toggle="link">{{version}}</a>
+ <div toggle="details">
+ URL: {{url}}
+ </br>Revision: {{revision}}
+ </br>Compiled from branch {{branch}} by {{user}} on {{date}}
+ </div>
+ </div>
+ {{/stormVersionInfo}}
{{#alternativeWorkerVersions}}
- </br>Topologies matching {{versionMatch}} will run under {{installedVersion}}.
+ <div data-toggle="toggle">
+ Topologies matching {{versionMatch}} will run under <a toggle="link">{{version}}</a>.
+ <div toggle="details">
+ URL: {{url}}
+ </br>Revision: {{revision}}
+ </br>Compiled from branch {{branch}} by {{user}} on {{date}}
+ </div>
+ </div>
{{/alternativeWorkerVersions}}
</td>
<td>{{supervisors}}</td>