This is an automated email from the ASF dual-hosted git repository.
krisden 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 d2ae683 KNOX-1590 - YARN v2 UI - Application - ApplicationMaster link
is broken
d2ae683 is described below
commit d2ae683078160113d8e49c55059d5ce7012910e6
Author: Prabhu Joseph <[email protected]>
AuthorDate: Sat Jul 27 02:08:53 2019 +0530
KNOX-1590 - YARN v2 UI - Application - ApplicationMaster link is broken
Have done below functional testing to verify the patch.
* ApplicationMaster link for Running job (MapReduce, YARN Native Service)
* History link for Finished, Failed, Killed job (MapReduce, Tez, Spark)
* YARN Daemon Logs
* Logs Section for Running and Finished job
* Inside ApplicationMaster UI - Logs, Stacks, Metrics, Jmx, Conf
Signed-off-by: Kevin Risden <[email protected]>
---
.../resources/services/yarnuiv2/3.0.0/rewrite.xml | 117 +++++++++++++++++++--
.../resources/services/yarnuiv2/3.0.0/service.xml | 14 +++
2 files changed, 124 insertions(+), 7 deletions(-)
diff --git
a/gateway-service-definitions/src/main/resources/services/yarnuiv2/3.0.0/rewrite.xml
b/gateway-service-definitions/src/main/resources/services/yarnuiv2/3.0.0/rewrite.xml
index e51657e..5a3e9fe 100644
---
a/gateway-service-definitions/src/main/resources/services/yarnuiv2/3.0.0/rewrite.xml
+++
b/gateway-service-definitions/src/main/resources/services/yarnuiv2/3.0.0/rewrite.xml
@@ -25,6 +25,10 @@
<rewrite template="{$serviceUrl[YARNUIV2]}/stacks"/>
</rule>
+ <rule dir="IN" name="YARNUIV2/yarnuiv2/inbound/static"
pattern="*://*:*/**/yarnuiv2/static/{**}">
+ <rewrite template="{$serviceUrl[YARNUIV2]}/static/{**}"/>
+ </rule>
+
<rule dir="IN" name="YARNUIV2/yarnuiv2/inbound/redirect"
pattern="*://*:*/**/yarnuiv2/redirect">
<rewrite template="{$serviceUrl[YARNUIV2]}/ui2/index.html"/>
</rule>
@@ -160,22 +164,113 @@
</content>
</filter>
- <rule dir="IN" name="YARNUIV2/yarnuiv2/inbound/nodemanager"
pattern="*://*:*/**/yarnuiv2/nodemanager/{**}?{**}?{scheme}?{host}?{port}">
- <rewrite template="{scheme}://{host}:{port}/ws/v1/node/{**}?{**}"/>
+ <rule dir="OUT" name="YARNUIV2/yarnuiv2/outbound/static"
pattern="/static/{**}">
+ <rewrite template="{$frontend[url]}/yarnuiv2/static/{**}"/>
</rule>
- <rule dir="OUT" name="YARNUIV2/yarnuiv2/outbound/nodemanager"
pattern="{scheme}://{host}:{port}/ws/v1/node/{**}?{**}">
- <rewrite
template="{$frontend[url]}/yarnuiv2/nodemanager/{**}?{**}?{scheme}?{host}?{port}"/>
+ <rule dir="OUT" name="YARNUIV2/yarnuiv2/outbound/conf" pattern="/conf">
+ <rewrite template="{$frontend[url]}/yarnuiv2/conf"/>
</rule>
- <rule dir="OUT" name="YARNUIV2/yarnuiv2/outbound/apps/history"
pattern="*://*:*/proxy/{**}">
- <rewrite template="{$frontend[url]}/yarnuiv2/proxy/{**}"/>
+ <rule dir="OUT" name="YARNUIV2/yarnuiv2/outbound/stacks" pattern="/stacks">
+ <rewrite template="{$frontend[url]}/yarnuiv2/stacks"/>
+ </rule>
+
+ <rule dir="OUT" name="YARNUIV2/yarnuiv2/outbound/metrics" pattern="/metrics">
+ <rewrite template="{$frontend[url]}/yarnuiv2/metrics"/>
+ </rule>
+
+ <rule dir="OUT" name="YARNUIV2/yarnuiv2/outbound/jmx" pattern="/jmx?{**}">
+ <rewrite template="{$frontend[url]}/yarnuiv2/jmx?{**}"/>
+ </rule>
+
+ <filter name="YARNUIV2/yarnuiv2/outbound/apps">
+ <content type="*/html">
+ <apply path="/proxy/[^']*"
rule="YARNUIV2/yarnuiv2/outbound/apps/history"/>
+ <apply
path="(https?:)?//[^/':,]+:[\d]+/node/containerlogs/container(_[^/':,]+)+/[^/':,]+"
rule="YARNUIV2/yarnuiv2/outbound/node/containerlogs"/>
+ </content>
+ </filter>
+
+ <rule dir="OUT" name="YARNUIV2/yarnuiv2/outbound/apps/history">
+ <match pattern="/proxy/{**}?{**}"/>
+ <rewrite template="{$frontend[url]}/yarnuiv2/proxy/{**}/?{**}"/>
</rule>
<rule dir="IN" name="YARNUIV2/yarnuiv2/inbound/proxy"
pattern="*://*:*/**/yarnuiv2/proxy/{**}?{**}">
<rewrite template="{$serviceUrl[YARNUIV2]}/proxy/{**}?{**}"/>
</rule>
+ <rule dir="OUT" name="YARNUIV2/yarnuiv2/outbound/proxy"
pattern="*://*:*/proxy/{**}">
+ <rewrite template="{$frontend[url]}/yarnuiv2/proxy/{**}"/>
+ </rule>
+
+ <rule dir="OUT" name="YARNUIV2/yarnuiv2/outbound/cluster/apps"
pattern="*://*:*/cluster/app/{**}">
+ <rewrite template="{$frontend[url]}/yarnuiv2/cluster/app/{**}"/>
+ </rule>
+
+ <rule dir="OUT" name="YARNUIV2/yarnuiv2/outbound/node/containerlogs">
+ <match pattern="{scheme}://{host}:{port}/node/containerlogs/{**}"/>
+ <rewrite
template="{$frontend[url]}/yarnuiv2/node/containerlogs/{**}?{scheme}?host={$hostmap(host)}?{port}"/>
+ </rule>
+
+ <rule dir="OUT" name="YARNUIV2/yarnuiv2/outbound/node/containerlogs2"
pattern="*://*:*/node/containerlogs/{**}?{**}">
+ <match pattern="{scheme}://{host}:{port}/node/containerlogs/{**}?{**}"/>
+ <rewrite
template="{$frontend[url]}/yarnuiv2/node/containerlogs/{**}?{**}?{scheme}?{host}?{port}"/>
+ </rule>
+
+ <rule dir="IN" name="YARNUIV2/yarnuiv2/inbound/containerlogs1"
pattern="*://*:*/**/yarnuiv2/node/containerlogs/{**}?{**}?{scheme}?{host}?{port}">
+ <rewrite template="{scheme}://{host}:{port}/node/containerlogs/{**}?{**}"/>
+ </rule>
+
+ <rule dir="IN" name="YARNUIV2/yarnuiv2/inbound/containerlogs"
pattern="*://*:*/**/yarnuiv2/node/containerlogs/{**}?{scheme}?{host}?{port}">
+ <rewrite template="{scheme}://{host}:{port}/node/containerlogs/{**}"/>
+ </rule>
+
+ <rule dir="OUT" name="YARNUIV2/yarnuiv2/outbound/node4"
pattern="/node/containerlogs/{**}?{start}">
+ <rewrite
template="{$frontend[url]}/yarnuiv2/node/containerlogs/{**}?{start}?scheme={$inboundurl[scheme]}?host={$inboundurl[host]}?port={$inboundurl[port]}"/>
+ </rule>
+
+ <rule dir="OUT" name="YARNUIV2/yarnuiv2/outbound/logs" pattern="/logs">
+ <rewrite template="{$frontend[url]}/yarnuiv2/logs"/>
+ </rule>
+
+ <rule dir="IN" name="YARNUIV2/yarnuiv2/inbound/nodelogs"
pattern="*://*:*/**/yarnuiv2/logs?{scheme}?{host}?{port}?{**}">
+ <rewrite template="{scheme}://{host}:{port}/logs/?{**}"/>
+ </rule>
+
+ <rule dir="OUT" name="YARNUIV2/yarnuiv2/outbound/headers/logs/location">
+ <match pattern="{scheme}://{host}:{port}/logs/?{**}"/>
+ <rewrite
template="{$frontend[url]}/yarnuiv2/logs?{scheme}?host={$hostmap(host)}?{port}?{**}"/>
+ </rule>
+
+ <rule dir="IN" name="YARNUIV2/yarnuiv2/inbound/logs/files"
pattern="*://*:*/**/yarnuiv2/logs/{**}">
+ <rewrite template="{$serviceUrl[YARNUIV2]}/logs/{**}"/>
+ </rule>
+
+ <rule dir="OUT" name="YARNUIV2/yarnuiv2/outbound/nodelink"
pattern="{scheme}://{host}:{port}">
+ <rewrite template="{$frontend[url]}/yarnuiv2/nodemanager/node?{host}"/>
+ </rule>
+
+ <rule dir="OUT" name="YARNUIV2/yarnuiv2/outbound/node" pattern="/node/{**}">
+ <rewrite
template="{$frontend[url]}/yarnuiv2/nodemanager/node/{**}?scheme={$inboundurl[scheme]}?host={$inboundurl[host]}?port={$inboundurl[port]}"/>
+ </rule>
+
+ <rule dir="IN" name="YARNUIV2/yarnuiv2/inbound/nodemanager1"
pattern="*://*:*/**/yarnuiv2/nodemanager/node/{**}?{scheme}?{host}?{port}">
+ <rewrite template="{scheme}://{host}:{port}/node/{**}"/>
+ </rule>
+
+ <rule dir="IN" name="YARNUIV2/yarnuiv2/inbound/cluster"
pattern="*://*:*/**/yarnuiv2/cluster/{**}">
+ <rewrite template="{$serviceUrl[YARNUIV2]}/cluster/{**}"/>
+ </rule>
+
+ <rule dir="IN" name="YARNUIV2/yarnuiv2/inbound/nodemanager"
pattern="*://*:*/**/yarnuiv2/nodemanager/{**}?{**}?{scheme}?{host}?{port}">
+ <rewrite template="{scheme}://{host}:{port}/ws/v1/node/{**}?{**}"/>
+ </rule>
+
+ <rule dir="OUT" name="YARNUIV2/yarnuiv2/outbound/nodemanager"
pattern="{scheme}://{host}:{port}/ws/v1/node/{**}?{**}">
+ <rewrite
template="{$frontend[url]}/yarnuiv2/nodemanager/{**}?{**}?{scheme}?{host}?{port}"/>
+ </rule>
+
<filter name="YARNUIV2/yarnuiv2/outbound/headers/jobhistory/job">
<content type="application/x-http-headers">
<apply path="Location"
rule="YARNUIV2/yarnuiv2/outbound/headers/jobhistory/job/location"/>
@@ -183,6 +278,12 @@
</filter>
<rule flow="OR" dir="OUT"
name="YARNUIV2/yarnuiv2/outbound/headers/jobhistory/job/location">
+ <match
pattern="{scheme}://{host}:{port}/{gateway}/{knoxsso}/{api}/{v}/websso?originalUrl={**}">
+ <rewrite
template="{scheme}://{host}:{port}/{gateway}/{knoxsso}/{api}/{v}/websso?originalUrl={$postfix[url,/yarnuiv2/]}"/>
+ </match>
+ <match pattern="{scheme}://{host}:{port}/ui2/index.html">
+ <rewrite template="{$frontend[url]}/yarnuiv2/redirect"/>
+ </match>
<match pattern="{scheme}://{host}:{port}/jobhistory/logs/{**}">
<rewrite
template="{$frontend[url]}/jobhistory/joblogs/{**}?{scheme}?{host}?{port}"/>
</match>
@@ -192,6 +293,9 @@
<match pattern="*://*:*/history/{**}?{**}">
<rewrite template="{$frontend[url]}/sparkhistory/history/{**}?{**}"/>
</match>
+ <match pattern="*://*:*/cluster/app/{**}">
+ <rewrite template="{$frontend[url]}/yarnuiv2/cluster/app/{**}"/>
+ </match>
</rule>
<rule flow="OR" dir="OUT"
name="YARNUIV2/yarnuiv2/outbound/headers/index/location">
@@ -209,4 +313,3 @@
</content>
</filter>
</rules>
-
diff --git
a/gateway-service-definitions/src/main/resources/services/yarnuiv2/3.0.0/service.xml
b/gateway-service-definitions/src/main/resources/services/yarnuiv2/3.0.0/service.xml
index 54103ed..5dafc9a 100644
---
a/gateway-service-definitions/src/main/resources/services/yarnuiv2/3.0.0/service.xml
+++
b/gateway-service-definitions/src/main/resources/services/yarnuiv2/3.0.0/service.xml
@@ -40,6 +40,20 @@
<route path="/yarnuiv2/proxy/**">
<rewrite apply="YARNUIV2/yarnuiv2/outbound/headers/jobhistory/job"
to="response.headers"/>
+ <rewrite apply="YARNUIV2/yarnuiv2/outbound/apps" to="response.body"/>
+ </route>
+
+ <route path="/yarnuiv2/cluster/**?**">
+ <rewrite apply="YARNUIV2/yarnuiv2/outbound/headers/jobhistory/job"
to="response.headers"/>
+ <rewrite apply="YARNUIV2/yarnuiv2/outbound/apps" to="response.body"/>
+ </route>
+
+ <route path="/yarnuiv2/node/containerlogs/**?**">
+ <rewrite apply="YARNUIV2/yarnuiv2/outbound/headers/jobhistory/job"
to="response.headers"/>
+ </route>
+
+ <route path="/yarnuiv2/nodemanager/node/**?**">
+ <rewrite apply="YARNUIV2/yarnuiv2/inbound/nodemanager1"
to="request.url"/>
</route>
<route path="/yarnuiv2/nodemanager/**?**">