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

smolnar 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 95d5b6eba KNOX-3012 - Fix the DN links on the Ozone SCM UI (#873)
95d5b6eba is described below

commit 95d5b6eba21ed0fd80551f40556de02318f22fe1
Author: Zita Dombi <50611074+dombiz...@users.noreply.github.com>
AuthorDate: Mon Mar 4 14:50:30 2024 +0100

    KNOX-3012 - Fix the DN links on the Ozone SCM UI (#873)
    
    * Fix outbound rule for DN links
    
    * Fix filter path too
    
    * Add new version directory for ozone-scm and add changes there
---
 .../resources/services/ozone-scm/1.4.0/rewrite.xml | 197 +++++++++++++++++++++
 .../resources/services/ozone-scm/1.4.0/service.xml |  50 ++++++
 2 files changed, 247 insertions(+)

diff --git 
a/gateway-service-definitions/src/main/resources/services/ozone-scm/1.4.0/rewrite.xml
 
b/gateway-service-definitions/src/main/resources/services/ozone-scm/1.4.0/rewrite.xml
new file mode 100644
index 000000000..7599e6c8f
--- /dev/null
+++ 
b/gateway-service-definitions/src/main/resources/services/ozone-scm/1.4.0/rewrite.xml
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+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.
+-->
+
+
+<rules>
+    <!-- SCM inbound rule -->
+    <rule dir="IN" name="OZONE-SCM/ozone-scm/inbound/request" 
pattern="*://*:*/**/ozone-scm/{path=**}?host={host}?{**}">
+        <rewrite template="{host}/{path=**}?{**}"/>
+    </rule>
+
+    <!-- SCM outbound rules -->
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/outbound/filter/scmjs" 
pattern="scm.js">
+        <rewrite 
template="{gateway.url}/ozone-scm/scm.js?host={$inboundurl[host]}"/>
+    </rule>
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/outbound/filter/main" 
pattern="main.html">
+        <rewrite template="main.html?host={$inboundurl[host]}"/>
+    </rule>
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/outbound/filter/scmoverview" 
pattern="scm-overview.html">
+        <rewrite template="scm-overview.html?host={$inboundurl[host]}"/>
+    </rule>
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/outbound/filter/jmx" 
pattern="/jmx?{**}">
+        <rewrite 
template="{gateway.url}/ozone-scm/jmx?host={$inboundurl[host]}?{**}"/>
+    </rule>
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/outbound/filter/jmx2" 
pattern="jmx?{**}">
+        <rewrite template="jmx?host={$inboundurl[host]}?{**}"/>
+    </rule>
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/outbound/filter/conf" 
pattern="conf?{**}">
+        <rewrite 
template="{gateway.url}/ozone-scm/conf?host={$inboundurl[host]}?{**}"/>
+    </rule>
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/outbound/filter/logLevel" 
pattern="logLevel">
+        <rewrite 
template="{gateway.url}/ozone-scm/logLevel/?host={$inboundurl[host]}"/>
+    </rule>
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/outbound/filter/stacks" 
pattern="stacks">
+        <rewrite 
template="{gateway.url}/ozone-scm/stacks/?host={$inboundurl[host]}"/>
+    </rule>
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/outbound/filter/static">
+        <match pattern="/static/{path=**}">
+            <rewrite 
template="{gateway.url}/ozone-scm/static/{path=**}?host={$inboundurl[host]}"/>
+        </match>
+    </rule>
+
+    <rule dir="OUT" name="OZONE-SCM/ozone-scm/outbound/filter/docs">
+        <rewrite 
template="{gateway.url}/ozone-scm/documentation/docs/index.html?host={$inboundurl[host]}"/>
+    </rule>
+
+    <!-- SCM filter -->
+
+    <filter name="OZONE-SCM/ozone-scm/outbound/response">
+        <content type="*/html">
+            <apply path="scm.js" 
rule="OZONE-SCM/ozone-scm/outbound/filter/scmjs"/>
+            <apply path=".*\.js" 
rule="OZONE-SCM/ozone-scm/outbound/filter/static"/>
+            <apply path=".*\.css" 
rule="OZONE-SCM/ozone-scm/outbound/filter/static"/>
+            <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\.protocol\}\}\:\/\/\{\{typestat\.hostname\}\}\:\{\{typestat\.port\}\}"
 rule="OZONE-SCM/ozone-scm/outbound/datanode/address"/>
+        </content>
+        <content type="*/javascript">
+            <apply path="main\.html" 
rule="OZONE-SCM/ozone-scm/outbound/filter/main"/>
+            <apply path="scm-overview\.html" 
rule="OZONE-SCM/ozone-scm/outbound/filter/scmoverview"/>
+            <apply path="docs/index\.html" 
rule="OZONE-SCM/ozone-scm/outbound/filter/docs"/>
+            <apply path="static/templates/.*\.html" 
rule="OZONE-SCM/ozone-scm/outbound/filter/static"/>
+            <apply path="/jmx" rule="OZONE-SCM/ozone-scm/outbound/filter/jmx"/>
+            <apply path="jmx\?qry" 
rule="OZONE-SCM/ozone-scm/outbound/filter/jmx2"/>
+            <apply path="conf\?cmd" 
rule="OZONE-SCM/ozone-scm/outbound/filter/conf"/>
+        </content>
+    </filter>
+
+    <!-- documentation inbound rule -->
+
+    <rule dir="IN" name="OZONE-SCM/ozone-scm/documentation/inbound/request" 
pattern="*://*:*/**/ozone-scm/documentation/{path=**}?host={host}?{**}">
+        <rewrite template="{host}/{path=**}?{**}"/>
+    </rule>
+
+    <!-- documentation outbound rule -->
+
+    <rule dir="OUT" 
name="OZONE-SCM/ozone-scm/documentation/outbound/filter/docs">
+        <match pattern="{**}">
+            <rewrite template="{**}?host={$inboundurl[host]}"/>
+        </match>
+    </rule>
+
+    <!-- documentation filter -->
+
+    <filter name="OZONE-SCM/ozone-scm/documentation/outbound/response">
+        <content type="*/html">
+            <apply path=".*\.js" 
rule="OZONE-SCM/ozone-scm/documentation/outbound/filter/docs"/>
+            <apply path=".*\.css" 
rule="OZONE-SCM/ozone-scm/documentation/outbound/filter/docs"/>
+            <apply path=".*\.png" 
rule="OZONE-SCM/ozone-scm/documentation/outbound/filter/docs"/>
+            <apply path=".*\.html" 
rule="OZONE-SCM/ozone-scm/documentation/outbound/filter/docs"/>
+        </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.protocol}}://{{typestat.hostname}}:{{typestat.port}}"/>
+        <rewrite 
template="{gateway.url}/ozone-scm/datanode/index.html?host={{typestat.protocol}}://{{typestat.hostname}}:{{typestat.port}}
 "/>
+    </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.4.0/service.xml
 
b/gateway-service-definitions/src/main/resources/services/ozone-scm/1.4.0/service.xml
new file mode 100644
index 000000000..9968ef13a
--- /dev/null
+++ 
b/gateway-service-definitions/src/main/resources/services/ozone-scm/1.4.0/service.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+   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.
+ -->
+<service role="OZONE-SCM" name="ozone-scm" version="1.2.0">
+       <metadata>
+               <type>UI</type>
+               <context>/ozone-scm/index.html?host={{BACKEND_HOST}}</context>
+               <shortDesc>OZONE SCM UI</shortDesc>
+       </metadata>
+       <routes>
+                       <!-- SCM routes -->
+                       <route path="/ozone-scm/">
+                               <rewrite 
apply="OZONE-SCM/ozone-scm/inbound/request" to="request.url"/>
+                               <rewrite 
apply="OZONE-SCM/ozone-scm/outbound/response" to="response.body"/>
+                       </route>
+      <route path="/ozone-scm/**">
+                                <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"/>
+                               <rewrite 
apply="OZONE-SCM/ozone-scm/documentation/outbound/response" to="response.body"/>
+                       </route>
+       </routes>
+       <dispatch 
classname="org.apache.knox.gateway.dispatch.URLDecodingDispatch" 
ha-classname="org.apache.knox.gateway.dispatch.URLDecodingDispatch"/>
+</service>

Reply via email to