You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by rz...@apache.org on 2023/09/25 18:12:05 UTC
[storm] branch master updated: STORM-3958: Capacity to set Storm UI's title in conf/storm.yaml
This is an automated email from the ASF dual-hosted git repository.
rzo1 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/storm.git
The following commit(s) were added to refs/heads/master by this push:
new f28798e9e STORM-3958: Capacity to set Storm UI's title in conf/storm.yaml
f28798e9e is described below
commit f28798e9e94f4f51cdb8a392add17ef7631884b3
Author: Alexandre Vermeerbergen <av...@3ds.com>
AuthorDate: Sun Sep 10 12:37:34 2023 +0200
STORM-3958: Capacity to set Storm UI's title in conf/storm.yaml
---
conf/defaults.yaml | 1 +
.../main/java/org/apache/storm/DaemonConfig.java | 6 ++++++
.../apache/storm/daemon/ui/WEB-INF/component.html | 6 +++---
.../org/apache/storm/daemon/ui/WEB-INF/index.html | 7 ++++---
.../org/apache/storm/daemon/ui/WEB-INF/js/script.js | 10 ++++++++++
.../org/apache/storm/daemon/ui/WEB-INF/owner.html | 9 ++++++---
.../apache/storm/daemon/ui/WEB-INF/supervisor.html | 9 ++++++---
.../daemon/ui/WEB-INF/templates/title-template.html | 21 +++++++++++++++++++++
.../apache/storm/daemon/ui/WEB-INF/topology.html | 6 +++---
9 files changed, 60 insertions(+), 15 deletions(-)
diff --git a/conf/defaults.yaml b/conf/defaults.yaml
index bf19496e8..cef7cec45 100644
--- a/conf/defaults.yaml
+++ b/conf/defaults.yaml
@@ -87,6 +87,7 @@ nimbus.topology.blobstore.deletion.delay.ms: 300000
### ui.* configs are for the master
ui.host: 0.0.0.0
ui.port: 8080
+ui.title: "Storm UI"
ui.childopts: "-Xmx768m"
ui.actions.enabled: true
ui.filter: null
diff --git a/storm-server/src/main/java/org/apache/storm/DaemonConfig.java b/storm-server/src/main/java/org/apache/storm/DaemonConfig.java
index 2402da1bb..76dae92b4 100644
--- a/storm-server/src/main/java/org/apache/storm/DaemonConfig.java
+++ b/storm-server/src/main/java/org/apache/storm/DaemonConfig.java
@@ -339,6 +339,12 @@ public class DaemonConfig implements Validated {
@IsInteger
@IsPositiveNumber
public static final String UI_PORT = "ui.port";
+
+ /**
+ * Storm UI's title.
+ */
+ @IsString
+ public static final String UI_TITLE = "ui.title";
/**
* This controls wheather Storm UI should bind to http port even if ui.port is > 0.
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/component.html b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/component.html
index e48e96c15..578c6ef82 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/component.html
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/component.html
@@ -37,9 +37,7 @@
<body>
<div class="container-fluid">
<div class="row">
- <div class="col-md-11">
- <h1><a href="/">Storm UI</a></h1>
- </div>
+ <div id="ui-title" class="col-md-11"></div>
<div id="ui-user" class="col-md-1"></div>
</div>
<div class="row">
@@ -153,6 +151,8 @@ $(document).ready(function() {
});
$.getJSON("/api/v1/cluster/configuration",function(response,status,jqXHR) {
+ var uiTitle = $("#ui-title");
+ setStormUITitle(uiTitle, response);
$.extend( $.fn.dataTable.defaults, {
stateSave: true,
stateSaveCallback: function (oSettings, oData) {
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 d41944dea..e8fd8c8ff 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
@@ -37,9 +37,7 @@
<body>
<div class="container-fluid">
<div class="row">
- <div class="col-md-9">
- <h1><a href="/">Storm UI</a></h1>
- </div>
+ <div id="ui-title" class="col-md-9"></div>
<div id="ui-user" class="col-md-2"></div>
</div>
<div class="row">
@@ -128,6 +126,7 @@ $(document).ready(function() {
});
var uiUser = $("#ui-user");
+ var uiTitle = $("#ui-title");
var clusterSummary = $("#cluster-summary");
var clusterResources = $("#cluster-resources");
var nimbusSummary = $("#nimbus-summary");
@@ -135,6 +134,8 @@ $(document).ready(function() {
var topologySummary = $("#topology-summary");
var supervisorSummary = $("#supervisor-summary");
var config = $("#nimbus-configuration");
+
+ setStormUITitle(uiTitle, responseClusterConfig);
getStatic("/templates/index-page-template.html", function(indexTemplate) {
$.getJSON("/api/v1/cluster/summary",function(response,status,jqXHR) {
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/js/script.js b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/js/script.js
index 115249988..c3685e8f3 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/js/script.js
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/js/script.js
@@ -614,3 +614,13 @@ var makeOwnerSummaryTable = function(response, elId, parentId) {
function getPageRenderedTimestamp(eId) {
document.getElementById(eId).innerHTML = "Page rendered at: " + Date();
};
+
+function setStormUITitle(uiTitle, clusterConfig) {
+ title = clusterConfig["ui.title"];
+ $(document).prop('title', title);
+ getStatic("/templates/title-template.html", function(template) {
+ jsError(function() {
+ uiTitle.append(Mustache.render($(template).filter("#title-template").html(),{title:title}));
+ });
+ });
+};
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/owner.html b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/owner.html
index 5d5eda4ca..d5506ce44 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/owner.html
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/owner.html
@@ -44,9 +44,7 @@
<div class="warning" id="ras-warning-top-buffer"></div>
<div class="container-fluid">
<div class="row">
- <div class="col-md-11">
- <h1><a href="/">Storm UI</a></h1>
- </div>
+ <div id="ui-title" class="col-md-11"></div>
<div id="ui-user" class="col-md-1"></div>
</div>
<div class="row">
@@ -125,6 +123,11 @@
}
});
+ $.getJSON("/api/v1/cluster/configuration",function(response,status,jqXHR) {
+ var uiTitle = $("#ui-title");
+ setStormUITitle(uiTitle, response);
+ });
+
function jsError(other) {
try {
other();
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/supervisor.html b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/supervisor.html
index 8cb16493c..ba4af197b 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/supervisor.html
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/supervisor.html
@@ -39,9 +39,7 @@
<body>
<div class="supervisor-page container-fluid">
<div class="row">
- <div class="col-md-11">
- <h1><a href="/">Storm UI</a></h1>
- </div>
+ <div id="ui-title" class="col-md-11"></div>
<div id="ui-user" class="col-md-1"></div>
</div>
<div class="row">
@@ -115,6 +113,11 @@ $(document).ready(function() {
}
});
+ $.getJSON("/api/v1/cluster/configuration",function(response,status,jqXHR) {
+ var uiTitle = $("#ui-title");
+ setStormUITitle(uiTitle, response);
+ };
+
$.getJSON(url,function(response,status,jqXHR) {
getStatic("/templates/supervisor-page-template.html", function(template) {
jsError(function() {
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/templates/title-template.html b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/templates/title-template.html
new file mode 100644
index 000000000..158dd1eea
--- /dev/null
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/templates/title-template.html
@@ -0,0 +1,21 @@
+<!--
+ 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.
+-->
+<script id="title-template" type="text/html">
+ <div class="ui-title">
+ <h1><a href="/">{{ui.title}}</a></h1>
+ </div>
+</script>
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/topology.html b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/topology.html
index f0d108825..bc48d562e 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/topology.html
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/WEB-INF/topology.html
@@ -39,9 +39,7 @@
<body>
<div class="container-fluid">
<div class="row">
- <div class="col-md-11">
- <h1><a href="/">Storm UI</a></h1>
- </div>
+ <div id="ui-title" class="col-md-11"></div>
<div id="ui-user" class="col-md-1"></div>
</div>
<div class="row">
@@ -275,6 +273,8 @@ $(document).ready(function() {
});
$.getJSON("/api/v1/cluster/configuration",function(response,status,jqXHR) {
+ var uiTitle = $("#ui-title");
+ setStormUITitle(uiTitle, response);
$.extend( $.fn.dataTable.defaults, {
stateSave: true,
stateSaveCallback: function (oSettings, oData) {