You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by yu...@apache.org on 2015/12/01 00:52:03 UTC
ambari git commit: AMBARI-14058. "Application Tracking URL" in Tez
View broken due to RM HA changes in Ambari views framework. (Dipayan
Bhowmick)
Repository: ambari
Updated Branches:
refs/heads/trunk fe690bfdc -> 89c6f2628
AMBARI-14058. "Application Tracking URL" in Tez View broken due to RM HA changes in Ambari views framework. (Dipayan Bhowmick)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/89c6f262
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/89c6f262
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/89c6f262
Branch: refs/heads/trunk
Commit: 89c6f26286540651ee46bcb50f618014863c5e79
Parents: fe690bf
Author: Yusaku Sako <yu...@hortonworks.com>
Authored: Mon Nov 30 15:51:15 2015 -0800
Committer: Yusaku Sako <yu...@hortonworks.com>
Committed: Mon Nov 30 15:51:15 2015 -0800
----------------------------------------------------------------------
.../ambari/view/tez/rest/BaseProxyResource.java | 21 +++++++++++++++++++-
.../resources/ui/scripts/init-ambari-view.js | 3 +++
2 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/89c6f262/contrib/views/tez/src/main/java/org/apache/ambari/view/tez/rest/BaseProxyResource.java
----------------------------------------------------------------------
diff --git a/contrib/views/tez/src/main/java/org/apache/ambari/view/tez/rest/BaseProxyResource.java b/contrib/views/tez/src/main/java/org/apache/ambari/view/tez/rest/BaseProxyResource.java
index 3670a40..5f8fb91 100644
--- a/contrib/views/tez/src/main/java/org/apache/ambari/view/tez/rest/BaseProxyResource.java
+++ b/contrib/views/tez/src/main/java/org/apache/ambari/view/tez/rest/BaseProxyResource.java
@@ -19,6 +19,7 @@
package org.apache.ambari.view.tez.rest;
import com.google.inject.Inject;
+import org.apache.ambari.view.tez.exceptions.ProxyException;
import org.apache.ambari.view.tez.utils.ProxyHelper;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
@@ -27,7 +28,13 @@ import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
-import javax.ws.rs.core.*;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.util.HashMap;
/**
@@ -50,6 +57,18 @@ public abstract class BaseProxyResource {
String response = proxyHelper.getResponse(url, new HashMap<String, String>());
JSONObject jsonObject = (JSONObject) JSONValue.parse(response);
+
+ // If the endpoint returns some other format apart from JSON,
+ // we will only redirect the request. This is required because UI may call
+ // the proxy endpoint to directly point to any URL of RM/ATS.
+ if (jsonObject == null) {
+ try {
+ return Response.temporaryRedirect(new URI(url)).build();
+ } catch (URISyntaxException e) {
+ throw new ProxyException("Failed to set the redirection url to : " + url + ".Internal Error.",
+ Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), e.getMessage());
+ }
+ }
return Response.ok(jsonObject).type(MediaType.APPLICATION_JSON).build();
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/89c6f262/contrib/views/tez/src/main/resources/ui/scripts/init-ambari-view.js
----------------------------------------------------------------------
diff --git a/contrib/views/tez/src/main/resources/ui/scripts/init-ambari-view.js b/contrib/views/tez/src/main/resources/ui/scripts/init-ambari-view.js
index 5152fb9..c443726 100644
--- a/contrib/views/tez/src/main/resources/ui/scripts/init-ambari-view.js
+++ b/contrib/views/tez/src/main/resources/ui/scripts/init-ambari-view.js
@@ -164,6 +164,9 @@ function setConfigs() {
aminfo: '%@rmproxy/proxy/__app_id__/ws/v1/tez'.fmt(resourcesPrefix),
aminfoV2: '%@rmproxy/proxy/__app_id__/ws/v2/tez'.fmt(resourcesPrefix),
cluster: '%@rmproxy/ws/v1/cluster'.fmt(resourcesPrefix)
+ },
+ otherNamespace: {
+ cluster: '%@rmproxy/cluster'.fmt(resourcesPrefix)
}
});