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 2017/07/24 17:10:09 UTC
[16/19] storm git commit: STORM-1280 port
backtype.storm.daemon.logviewer to java
STORM-1280 port backtype.storm.daemon.logviewer to java
* fix a bug: parameter swapped
* move 'file' param for '/search' from path to query param
* also applied to static html files
* select current file in file list dropdown in log page
Project: http://git-wip-us.apache.org/repos/asf/storm/repo
Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/35ca265a
Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/35ca265a
Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/35ca265a
Branch: refs/heads/master
Commit: 35ca265af963dc21b356e1a305fea897c58a59fa
Parents: 37f9c59
Author: Jungtaek Lim <ka...@gmail.com>
Authored: Mon Jul 24 11:44:28 2017 +0900
Committer: Jungtaek Lim <ka...@gmail.com>
Committed: Mon Jul 24 11:44:28 2017 +0900
----------------------------------------------------------------------
storm-core/src/ui/public/logviewer_search.html | 2 +-
storm-core/src/ui/public/search_result.html | 2 +-
.../org/apache/storm/utils/ServerConfigUtils.java | 3 ++-
.../logviewer/handler/LogviewerLogPageHandler.java | 17 ++++++++++-------
.../handler/LogviewerLogSearchHandler.java | 2 +-
.../daemon/logviewer/webapp/LogviewerResource.java | 5 +++--
6 files changed, 18 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/storm/blob/35ca265a/storm-core/src/ui/public/logviewer_search.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/logviewer_search.html b/storm-core/src/ui/public/logviewer_search.html
index 89a7854..96ecd8c 100644
--- a/storm-core/src/ui/public/logviewer_search.html
+++ b/storm-core/src/ui/public/logviewer_search.html
@@ -55,7 +55,7 @@ $(document).ready(function() {
$("#search-form").append(Mustache.render($(template).filter("#search-single-file").html(),{file: file, search: search, isDaemon: isDaemon}));
var result = $("#result");
- var url = "/api/v1/search/"+encodeURIComponent(file)+"?search-string="+search+"&start-byte-offset="+offset+"&is-daemon="+isDaemon;
+ var url = "/api/v1/search?file="+encodeURIComponent(file)+"&search-string="+search+"&start-byte-offset="+offset+"&is-daemon="+isDaemon;
$.getJSON(url,function(response,status,jqXHR) {
response.file = file;
result.append(Mustache.render($(template).filter("#logviewer-search-result-template").html(),response));
http://git-wip-us.apache.org/repos/asf/storm/blob/35ca265a/storm-core/src/ui/public/search_result.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/search_result.html b/storm-core/src/ui/public/search_result.html
index 216a700..d6ebb44 100644
--- a/storm-core/src/ui/public/search_result.html
+++ b/storm-core/src/ui/public/search_result.html
@@ -68,7 +68,7 @@ $(document).ready(function() {
var port = response.hostPortList[index].port;
var elemId = response.hostPortList[index].elemId;
var file = id+"/"+port+"/worker.log";
- var searchURL = "http://"+host+":"+logviewerPort+"/api/v1/search/"+encodeURIComponent(file)+"?search-string="+search+"&num-matches="+count;
+ var searchURL = "http://"+host+":"+logviewerPort+"/api/v1/search?file="+encodeURIComponent(file)+"&search-string="+search+"&num-matches="+count;
if (searchArchived != "") {
searchURL = "http://"+host+":"+logviewerPort+"/api/v1/deepSearch/"+id+"?search-string="+search+"&num-matches="+count+"&search-archived=true&port="+port;
}
http://git-wip-us.apache.org/repos/asf/storm/blob/35ca265a/storm-server/src/main/java/org/apache/storm/utils/ServerConfigUtils.java
----------------------------------------------------------------------
diff --git a/storm-server/src/main/java/org/apache/storm/utils/ServerConfigUtils.java b/storm-server/src/main/java/org/apache/storm/utils/ServerConfigUtils.java
index cd63395..426e190 100644
--- a/storm-server/src/main/java/org/apache/storm/utils/ServerConfigUtils.java
+++ b/storm-server/src/main/java/org/apache/storm/utils/ServerConfigUtils.java
@@ -30,6 +30,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.regex.Pattern;
public class ServerConfigUtils {
public static final String FILE_SEPARATOR = File.separator;
@@ -161,7 +162,7 @@ public class ServerConfigUtils {
}
public static File getLogMetaDataFile(String fname) {
- String[] subStrings = fname.split(FILE_SEPARATOR); // TODO: does this work well on windows?
+ String[] subStrings = fname.split(Pattern.quote(FILE_SEPARATOR)); // TODO: does this work well on windows?
String id = subStrings[0];
Integer port = Integer.parseInt(subStrings[1]);
return getLogMetaDataFile(Utils.readStormConfig(), id, port);
http://git-wip-us.apache.org/repos/asf/storm/blob/35ca265a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogPageHandler.java
----------------------------------------------------------------------
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogPageHandler.java b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogPageHandler.java
index 47fa4b3..c6e9828 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogPageHandler.java
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogPageHandler.java
@@ -27,6 +27,7 @@ import static j2html.TagCreator.head;
import static j2html.TagCreator.html;
import static j2html.TagCreator.input;
import static j2html.TagCreator.link;
+import static j2html.TagCreator.option;
import static j2html.TagCreator.p;
import static j2html.TagCreator.pre;
import static j2html.TagCreator.select;
@@ -226,7 +227,7 @@ public class LogviewerLogPageHandler {
bodyContents.add(searchFileForm(fileName, "no"));
// list all files for this topology
- bodyContents.add(logFileSelectionForm(reorderedFilesStr, "log"));
+ bodyContents.add(logFileSelectionForm(reorderedFilesStr, fileName, "log"));
if (pagerData != null) {
bodyContents.add(pagerData);
}
@@ -306,7 +307,7 @@ public class LogviewerLogPageHandler {
bodyContents.add(searchFileForm(fileName, "yes"));
// list all daemon logs
- bodyContents.add(logFileSelectionForm(reorderedFilesStr, "daemonlog"));
+ bodyContents.add(logFileSelectionForm(reorderedFilesStr, fileName, "daemonlog"));
if (pagerData != null) {
bodyContents.add(pagerData);
}
@@ -360,16 +361,18 @@ public class LogviewerLogPageHandler {
return a(content).withHref(url);
}
- private DomContent logFileSelectionForm(List<String> logFiles, String type) {
+ private DomContent logFileSelectionForm(List<String> logFiles, String selectedFile, String type) {
return form(
- dropDown("file", logFiles),
+ dropDown("file", logFiles, selectedFile),
input().withType("submit").withValue("Switch file")
).withAction(type).withId("list-of-files");
}
- private DomContent dropDown(String name, List<String> logFiles) {
- List<DomContent> options = logFiles.stream().map(TagCreator::option).collect(toList());
- return select(options.toArray(new DomContent[]{})).withName(name).withId(name);
+ private DomContent dropDown(String name, List<String> logFiles, String selectedFile) {
+ List<DomContent> options = logFiles.stream()
+ .map(file -> option(file).condAttr(file.equals(selectedFile), "selected", "selected"))
+ .collect(toList());
+ return select(options.toArray(new DomContent[]{})).withName(name).withId(name).withValue(selectedFile);
}
private DomContent searchFileForm(String fileName, String isDaemonValue) {
http://git-wip-us.apache.org/repos/asf/storm/blob/35ca265a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogSearchHandler.java
----------------------------------------------------------------------
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogSearchHandler.java b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogSearchHandler.java
index 76f1683..117cb86 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogSearchHandler.java
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogSearchHandler.java
@@ -119,7 +119,7 @@ public class LogviewerLogSearchHandler {
File file = new File(rootDir, fileName).getCanonicalFile();
Response response;
if (file.exists()) {
- if (isDaemon || resourceAuthorizer.isUserAllowedToAccessFile(user, fileName)) {
+ if (isDaemon || resourceAuthorizer.isUserAllowedToAccessFile(fileName, user)) {
Integer numMatchesInt = numMatchesStr != null ? tryParseIntParam("num-matches", numMatchesStr) : null;
Integer offsetInt = offsetStr != null ? tryParseIntParam("start-byte-offset", offsetStr) : null;
http://git-wip-us.apache.org/repos/asf/storm/blob/35ca265a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/webapp/LogviewerResource.java
----------------------------------------------------------------------
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/webapp/LogviewerResource.java b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/webapp/LogviewerResource.java
index 478001d..6478ca6 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/webapp/LogviewerResource.java
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/webapp/LogviewerResource.java
@@ -214,10 +214,11 @@ public class LogviewerResource {
* Handles '/search' (searching from specific worker or daemon log file) request.
*/
@GET
- @Path("/search/{file}")
- public Response search(@PathParam("file") String file, @Context HttpServletRequest request) throws IOException {
+ @Path("/search")
+ public Response search(@Context HttpServletRequest request) throws IOException {
String user = httpCredsHandler.getUserName(request);
boolean isDaemon = StringUtils.equals(request.getParameter("is-daemon"), "yes");
+ String file = request.getParameter("file");
String decodedFileName = URLDecoder.decode(file);
String searchString = request.getParameter("search-string");
String numMatchesStr = request.getParameter("num-matches");