You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by am...@apache.org on 2023/07/21 14:15:15 UTC

[knox] branch master updated: KNOX-2887 - Add required changes to ozone-scm service definitions to handle DataNode WebUIs (#768)

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

amagyar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/knox.git


The following commit(s) were added to refs/heads/master by this push:
     new 74883eb1a KNOX-2887 - Add required changes to ozone-scm service definitions to handle DataNode WebUIs (#768)
74883eb1a is described below

commit 74883eb1a383216518d67950368337bc2ae47073
Author: Zita Dombi <50...@users.noreply.github.com>
AuthorDate: Fri Jul 21 16:15:11 2023 +0200

    KNOX-2887 - Add required changes to ozone-scm service definitions to handle DataNode WebUIs (#768)
---
 .../resources/services/ozone-scm/1.2.0/rewrite.xml | 80 ++++++++++++++++++++++
 .../resources/services/ozone-scm/1.2.0/service.xml |  9 +++
 2 files changed, 89 insertions(+)

diff --git a/gateway-service-definitions/src/main/resources/services/ozone-scm/1.2.0/rewrite.xml b/gateway-service-definitions/src/main/resources/services/ozone-scm/1.2.0/rewrite.xml
index 8c2b12602..b2fd4c7b3 100644
--- a/gateway-service-definitions/src/main/resources/services/ozone-scm/1.2.0/rewrite.xml
+++ b/gateway-service-definitions/src/main/resources/services/ozone-scm/1.2.0/rewrite.xml
@@ -76,6 +76,7 @@ Licensed to the Apache Software Foundation (ASF) under one or more
             <apply path="/docs" rule="OZONE-SCM/ozone-scm/outbound/filter/docs"/>
             <apply path="logLevel" rule="OZONE-SCM/ozone-scm/outbound/filter/logLevel"/>
             <apply path="stacks" rule="OZONE-SCM/ozone-scm/outbound/filter/stacks"/>
+            <apply path="\{\{typestat\.portval\.toLowerCase\(\)\}\}\:\/\/\{\{typestat\.hostname\}\}\:\{\{typestat\.portno\}\}" rule="OZONE-SCM/ozone-scm/outbound/datanode/address"/>
         </content>
         <content type="*/javascript">
             <apply path="main\.html" rule="OZONE-SCM/ozone-scm/outbound/filter/main"/>
@@ -113,5 +114,84 @@ Licensed to the Apache Software Foundation (ASF) under one or more
         </content>
     </filter>
 
+    <!-- outbound rule for the datanode links on SCM UI -->
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/outbound/datanode/address">
+        <match pattern="{{typestat.portval.toLowerCase()}}://{{typestat.hostname}}:{{typestat.portno}}"/>
+        <rewrite template="{gateway.url}/ozone-scm/datanode/index.html?host={{typestat.portval.toLowerCase()}}://{{typestat.hostname}}:{{typestat.portno}} "/>
+    </rule>
+
+    <!-- datanode inbound rules -->
+
+    <rule dir="IN" name="OZONE-SCM/ozone-scm/datanode/inbound/request" pattern="*://*:*/**/ozone-scm/datanode/{path=**}?host={host}?{**}">
+        <rewrite template="{host}/{path=**}?{**}"/>
+    </rule>
+
+    <!-- datanode outbound rules -->
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/datanode/outbound/filter/dnjs" pattern="dn.js">
+        <rewrite template="{gateway.url}/ozone-scm/datanode/dn.js?host={$inboundurl[host]}"/>
+    </rule>
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/datanode/outbound/filter/main" pattern="main.html">
+        <rewrite template="main.html?host={$inboundurl[host]}"/>
+    </rule>
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/datanode/outbound/filter/dnoverview" pattern="dn-overview.html">
+        <rewrite template="dn-overview.html?host={$inboundurl[host]}"/>
+    </rule>
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/datanode/outbound/filter/jmx" pattern="/jmx?{**}">
+        <rewrite template="{gateway.url}/ozone-scm/datanode/jmx?host={$inboundurl[host]}?{**}"/>
+    </rule>
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/datanode/outbound/filter/jmx2" pattern="jmx?{**}">
+        <rewrite template="jmx?host={$inboundurl[host]}?{**}"/>
+    </rule>
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/datanode/outbound/filter/conf" pattern="conf?{**}">
+        <rewrite template="{gateway.url}/ozone-scm/datanode/conf?host={$inboundurl[host]}?{**}"/>
+    </rule>
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/datanode/outbound/filter/logLevel" pattern="logLevel">
+        <rewrite template="{gateway.url}/ozone-scm/datanode/logLevel/?host={$inboundurl[host]}"/>
+    </rule>
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/datanode/outbound/filter/stacks" pattern="stacks">
+        <rewrite template="{gateway.url}/ozone-scm/datanode/stacks/?host={$inboundurl[host]}"/>
+    </rule>
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/datanode/outbound/filter/static">
+        <match pattern="/static/{path=**}">
+            <rewrite template="{gateway.url}/ozone-scm/datanode/static/{path=**}?host={$inboundurl[host]}"/>
+        </match>
+    </rule>
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/datanode/outbound/filter/docs">
+        <rewrite template="{gateway.url}/ozone-scm/documentation/docs/index.html?host={$inboundurl[host]}"/>
+    </rule>
+
+    <!-- datanode filter -->
+
+    <filter name="OZONE-SCM/ozone-scm/datanode/outbound/response">
+        <content type="*/html">
+            <apply path="dn.js" rule="OZONE-SCM/ozone-scm/datanode/outbound/filter/dnjs"/>
+            <apply path=".*\.js" rule="OZONE-SCM/ozone-scm/datanode/outbound/filter/static"/>
+            <apply path=".*\.css" rule="OZONE-SCM/ozone-scm/datanode/outbound/filter/static"/>
+            <apply path="/docs" rule="OZONE-SCM/ozone-scm/datanode/outbound/filter/docs"/>
+            <apply path="logLevel" rule="OZONE-SCM/ozone-scm/datanode/outbound/filter/logLevel"/>
+            <apply path="stacks" rule="OZONE-SCM/ozone-scm/datanode/outbound/filter/stacks"/>
+        </content>
+        <content type="*/javascript">
+            <apply path="main\.html" rule="OZONE-SCM/ozone-scm/datanode/outbound/filter/main"/>
+            <apply path="dn-overview\.html" rule="OZONE-SCM/ozone-scm/datanode/outbound/filter/dnoverview"/>
+            <apply path="docs/index\.html" rule="OZONE-SCM/ozone-scm/datanode/outbound/filter/docs"/>
+            <apply path="static/templates/.*\.html" rule="OZONE-SCM/ozone-scm/datanode/outbound/filter/static"/>
+            <apply path="/jmx" rule="OZONE-SCM/ozone-scm/datanode/outbound/filter/jmx"/>
+            <apply path="jmx\?qry" rule="OZONE-SCM/ozone-scm/datanode/outbound/filter/jmx2"/>
+            <apply path="conf\?cmd" rule="OZONE-SCM/ozone-scm/datanode/outbound/filter/conf"/>
+        </content>
+    </filter>
+
 </rules>
 
diff --git a/gateway-service-definitions/src/main/resources/services/ozone-scm/1.2.0/service.xml b/gateway-service-definitions/src/main/resources/services/ozone-scm/1.2.0/service.xml
index 6517e3ee0..9968ef13a 100644
--- a/gateway-service-definitions/src/main/resources/services/ozone-scm/1.2.0/service.xml
+++ b/gateway-service-definitions/src/main/resources/services/ozone-scm/1.2.0/service.xml
@@ -31,6 +31,15 @@
 				 <rewrite apply="OZONE-SCM/ozone-scm/inbound/request" to="request.url"/>
 				 <rewrite apply="OZONE-SCM/ozone-scm/outbound/response" to="response.body"/>
 			</route>
+			<!-- datanode routes -->
+			<route path="/ozone-scm/datanode/">
+				<rewrite apply="OZONE-SCM/ozone-scm/datanode/inbound/request" to="request.url"/>
+				<rewrite apply="OZONE-SCM/ozone-scm/datanode/outbound/response" to="response.body"/>
+			</route>
+			<route path="/ozone-scm/datanode/**">
+				<rewrite apply="OZONE-SCM/ozone-scm/datanode/inbound/request" to="request.url"/>
+				<rewrite apply="OZONE-SCM/ozone-scm/datanode/outbound/response" to="response.body"/>	 
+			</route>
 			<!-- documentation route -->
 			<route path="/ozone-scm/documentation/**">
 				<rewrite apply="OZONE-SCM/ozone-scm/documentation/inbound/request" to="request.url"/>