You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sr...@apache.org on 2017/05/03 17:41:05 UTC
ambari git commit: AMBARI-20791: Storm Ambari view doesn't work for
non-admin users. (Sanket Shah via Sriharsha Chintalapani).
Repository: ambari
Updated Branches:
refs/heads/1.x-branch [created] 240775107
AMBARI-20791: Storm Ambari view doesn't work for non-admin
users. (Sanket Shah via Sriharsha Chintalapani).
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/24077510
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/24077510
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/24077510
Branch: refs/heads/1.x-branch
Commit: 24077510723ede93d3024784f0b04422adaf56d6
Parents: 928f809
Author: Sriharsha Chintalapani <ha...@hortonworks.com>
Authored: Wed May 3 10:39:57 2017 -0700
Committer: Sriharsha Chintalapani <ha...@hortonworks.com>
Committed: Wed May 3 10:39:57 2017 -0700
----------------------------------------------------------------------
.../org/apache/ambari/storm/ProxyServlet.java | 12 ++++++++--
.../src/main/resources/scripts/router/Router.js | 6 ++---
.../src/main/resources/scripts/utils/Utils.js | 25 --------------------
contrib/views/storm/src/main/resources/view.xml | 8 +++----
4 files changed, 17 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/24077510/contrib/views/storm/src/main/java/org/apache/ambari/storm/ProxyServlet.java
----------------------------------------------------------------------
diff --git a/contrib/views/storm/src/main/java/org/apache/ambari/storm/ProxyServlet.java b/contrib/views/storm/src/main/java/org/apache/ambari/storm/ProxyServlet.java
index 6e6bea2..f87b29f 100644
--- a/contrib/views/storm/src/main/java/org/apache/ambari/storm/ProxyServlet.java
+++ b/contrib/views/storm/src/main/java/org/apache/ambari/storm/ProxyServlet.java
@@ -38,6 +38,10 @@ import java.io.*;
public class ProxyServlet extends HttpServlet {
private ViewContext viewContext;
+ private static final String STORM_HOST = "storm.host";
+ private static final String STORM_PORT = "storm.port";
+ private static final String STORM_SSL_ENABLED = "storm.sslEnabled";
+ private String stormURL;
@Override
public void init(ServletConfig config) throws ServletException {
@@ -45,12 +49,16 @@ public class ProxyServlet extends HttpServlet {
ServletContext context = config.getServletContext();
viewContext = (ViewContext) context.getAttribute(ViewContext.CONTEXT_ATTRIBUTE);
+ String sslEnabled = viewContext.getProperties().get(STORM_SSL_ENABLED);
+ String hostname = viewContext.getProperties().get(STORM_HOST);
+ String port = viewContext.getProperties().get(STORM_PORT);
+ stormURL = (sslEnabled.equals("true") ? "https" : "http") + "://" + hostname + ":" + port;
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
InputStream body = null;
- String urlToRead = URLDecoder.decode(request.getParameter("url"));
+ String urlToRead = stormURL + URLDecoder.decode(request.getParameter("url"));
HashMap<String,String> headersMap = this.getHeaders(request);
InputStream resultStream = viewContext.getURLStreamProvider().readAsCurrent(urlToRead, "GET", body, headersMap);
this.setResponse(request, response, resultStream);
@@ -59,7 +67,7 @@ public class ProxyServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
InputStream stream = request.getInputStream();
- String urlToRead = URLDecoder.decode(request.getParameter("url"));
+ String urlToRead = stormURL + URLDecoder.decode(request.getParameter("url"));
HashMap<String,String> headersMap = this.getHeaders(request);
InputStream resultStream = viewContext.getURLStreamProvider().readAsCurrent(urlToRead, "POST", stream, headersMap);
this.setResponse(request, response, resultStream);
http://git-wip-us.apache.org/repos/asf/ambari/blob/24077510/contrib/views/storm/src/main/resources/scripts/router/Router.js
----------------------------------------------------------------------
diff --git a/contrib/views/storm/src/main/resources/scripts/router/Router.js b/contrib/views/storm/src/main/resources/scripts/router/Router.js
index cd498c0..be6943e 100644
--- a/contrib/views/storm/src/main/resources/scripts/router/Router.js
+++ b/contrib/views/storm/src/main/resources/scripts/router/Router.js
@@ -22,7 +22,7 @@ define([
'react',
'react-dom',
'utils/Utils'
-], function(require, Backbone, React, ReactDOM, Utils) {
+], function(require, Backbone, React, ReactDOM, Utils) {
'use strict';
var rRender;
var AppRouter = Backbone.Router.extend({
@@ -37,7 +37,7 @@ define([
'*actions' : 'defaultAction'
},
initialize: function() {
- App.baseURL = Utils.getStormHostDetails();
+ App.baseURL = location.pathname+'proxy?url=';
this.showRegions();
this.listenTo(this, "route", this.postRouteExecute, this);
},
@@ -82,7 +82,7 @@ define([
/**
* Define route handlers here
*/
-
+
dashboardAction: function(){
require(['jsx!views/Dashboard'], function(DashboardView){
ReactDOM.render(React.createElement(DashboardView), App.Container);
http://git-wip-us.apache.org/repos/asf/ambari/blob/24077510/contrib/views/storm/src/main/resources/scripts/utils/Utils.js
----------------------------------------------------------------------
diff --git a/contrib/views/storm/src/main/resources/scripts/utils/Utils.js b/contrib/views/storm/src/main/resources/scripts/utils/Utils.js
index 05f992b..d9a9dd6 100644
--- a/contrib/views/storm/src/main/resources/scripts/utils/Utils.js
+++ b/contrib/views/storm/src/main/resources/scripts/utils/Utils.js
@@ -25,31 +25,6 @@ define(['require',
'use strict';
var Utils = {};
- Utils.getStormHostDetails = function() {
- var url = location.pathname+'proxy?url=';
- var urlParts = location.pathname.split('/');
- var apiUrl = '/api/v1/'+urlParts[1]+'/'+urlParts[2]+'/versions/'+urlParts[3]+'/instances/'+urlParts[4];
- $.ajax({
- url: apiUrl,
- cache: false,
- type: 'GET',
- async: false,
- dataType: 'json',
- success: function(response){
- var props = response.ViewInstanceInfo.properties;
- if(props['storm.host'] && props['storm.port']){
- url += (props['storm.sslEnabled'] === "true" ? "https://" : "http://")+props['storm.host']+":"+props['storm.port'];
- } else {
- Utils.notifyError("Failed to get storm hostname and port.");
- }
- },
- error: function(error){
- Utils.notifyError("Failed to get storm hostname and port.");
- }
- });
- return url;
- };
-
Utils.ArrayToCollection = function(array, collection){
if(array.length){
array.map(function(obj){
http://git-wip-us.apache.org/repos/asf/ambari/blob/24077510/contrib/views/storm/src/main/resources/view.xml
----------------------------------------------------------------------
diff --git a/contrib/views/storm/src/main/resources/view.xml b/contrib/views/storm/src/main/resources/view.xml
index 0e83ec2..105b3eb 100644
--- a/contrib/views/storm/src/main/resources/view.xml
+++ b/contrib/views/storm/src/main/resources/view.xml
@@ -22,15 +22,15 @@ limitations under the License. Kerberos, LDAP, Custom. Binary/Htt
<description>Ambari view for Apache Storm</description>
<parameter>
<name>storm.host</name>
- <description>Enter the Storm host name for accessing Storm. Host must be accessible from Ambari Server.</description>
- <label>Storm Hostname</label>
+ <description>Enter the Storm UI Server hostname for accessing Storm. Host must be accessible from Ambari Server.</description>
+ <label>Storm UI Server Hostname</label>
<placeholder>storm-host.example.com</placeholder>
<required>true</required>
</parameter>
<parameter>
<name>storm.port</name>
- <description>Enter the Storm port for accessing Storm.</description>
- <label>Storm Port</label>
+ <description>Enter the Storm UI Server port for accessing Storm.</description>
+ <label>Storm UI Server Port</label>
<placeholder>8744</placeholder>
<required>true</required>
</parameter>