Repository: ambari Updated Branches: refs/heads/branch-2.2 8eb62315f -> db7ebc0c8
AMBARI-14951. Tez Ambari View: Add protocol configuration for YARN. (Sreenath Somarajapuram via yusaku) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/db7ebc0c Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/db7ebc0c Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/db7ebc0c Branch: refs/heads/branch-2.2 Commit: db7ebc0c820923ab6bbd24d2b15ed22d669f4028 Parents: 8eb6231 Author: Yusaku Sako <[email protected]> Authored: Mon Feb 29 11:21:28 2016 -0800 Committer: Yusaku Sako <[email protected]> Committed: Mon Feb 29 11:23:38 2016 -0800 ---------------------------------------------------------------------- contrib/views/capacity-scheduler/pom.xml | 2 +- contrib/views/files/pom.xml | 2 +- contrib/views/hive/pom.xml | 2 +- contrib/views/pig/pom.xml | 2 +- contrib/views/pom.xml | 2 +- contrib/views/slider/pom.xml | 2 +- contrib/views/tez/pom.xml | 2 +- .../apache/ambari/view/tez/ViewController.java | 6 +++ .../ambari/view/tez/ViewControllerImpl.java | 6 +++ .../resources/ui/scripts/init-ambari-view.js | 40 +++++++++++++++++++- contrib/views/utils/pom.xml | 2 +- .../ambari/view/utils/ambari/Services.java | 15 ++++++++ .../ambari/view/utils/ambari/ServicesTest.java | 16 ++++++++ 13 files changed, 89 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/db7ebc0c/contrib/views/capacity-scheduler/pom.xml ---------------------------------------------------------------------- diff --git a/contrib/views/capacity-scheduler/pom.xml b/contrib/views/capacity-scheduler/pom.xml index cacd3d3..5569859 100644 --- a/contrib/views/capacity-scheduler/pom.xml +++ b/contrib/views/capacity-scheduler/pom.xml @@ -81,7 +81,7 @@ <dependency> <groupId>org.apache.ambari.contrib.views</groupId> <artifactId>ambari-views-utils</artifactId> - <version>0.0.1.0-SNAPSHOT</version> + <version>2.0.0.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.easymock</groupId> http://git-wip-us.apache.org/repos/asf/ambari/blob/db7ebc0c/contrib/views/files/pom.xml ---------------------------------------------------------------------- diff --git a/contrib/views/files/pom.xml b/contrib/views/files/pom.xml index 0a8a752..ccea5ab 100644 --- a/contrib/views/files/pom.xml +++ b/contrib/views/files/pom.xml @@ -94,7 +94,7 @@ <dependency> <groupId>org.apache.ambari.contrib.views</groupId> <artifactId>ambari-views-utils</artifactId> - <version>0.0.1.0-SNAPSHOT</version> + <version>2.0.0.0-SNAPSHOT</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> http://git-wip-us.apache.org/repos/asf/ambari/blob/db7ebc0c/contrib/views/hive/pom.xml ---------------------------------------------------------------------- diff --git a/contrib/views/hive/pom.xml b/contrib/views/hive/pom.xml index 9ad4296..1f150ff 100644 --- a/contrib/views/hive/pom.xml +++ b/contrib/views/hive/pom.xml @@ -199,7 +199,7 @@ <dependency> <groupId>org.apache.ambari.contrib.views</groupId> <artifactId>ambari-views-utils</artifactId> - <version>0.0.1.0-SNAPSHOT</version> + <version>2.0.0.0-SNAPSHOT</version> </dependency> <dependency> <groupId>commons-validator</groupId> http://git-wip-us.apache.org/repos/asf/ambari/blob/db7ebc0c/contrib/views/pig/pom.xml ---------------------------------------------------------------------- diff --git a/contrib/views/pig/pom.xml b/contrib/views/pig/pom.xml index fe5fcdf..97160cc 100644 --- a/contrib/views/pig/pom.xml +++ b/contrib/views/pig/pom.xml @@ -138,7 +138,7 @@ <dependency> <groupId>org.apache.ambari.contrib.views</groupId> <artifactId>ambari-views-utils</artifactId> - <version>0.0.1.0-SNAPSHOT</version> + <version>2.0.0.0-SNAPSHOT</version> </dependency> </dependencies> http://git-wip-us.apache.org/repos/asf/ambari/blob/db7ebc0c/contrib/views/pom.xml ---------------------------------------------------------------------- diff --git a/contrib/views/pom.xml b/contrib/views/pom.xml index 32ea74f..6509277 100644 --- a/contrib/views/pom.xml +++ b/contrib/views/pom.xml @@ -34,13 +34,13 @@ <hadoop.version>2.7.1</hadoop.version> </properties> <modules> + <module>utils</module> <module>files</module> <module>jobs</module> <module>pig</module> <module>slider</module> <module>capacity-scheduler</module> <module>tez</module> - <module>utils</module> <module>storm</module> </modules> <build> http://git-wip-us.apache.org/repos/asf/ambari/blob/db7ebc0c/contrib/views/slider/pom.xml ---------------------------------------------------------------------- diff --git a/contrib/views/slider/pom.xml b/contrib/views/slider/pom.xml index f66d71a..608988f 100644 --- a/contrib/views/slider/pom.xml +++ b/contrib/views/slider/pom.xml @@ -129,7 +129,7 @@ <dependency> <groupId>org.apache.ambari.contrib.views</groupId> <artifactId>ambari-views-utils</artifactId> - <version>0.0.1.0-SNAPSHOT</version> + <version>2.0.0.0-SNAPSHOT</version> </dependency> </dependencies> http://git-wip-us.apache.org/repos/asf/ambari/blob/db7ebc0c/contrib/views/tez/pom.xml ---------------------------------------------------------------------- diff --git a/contrib/views/tez/pom.xml b/contrib/views/tez/pom.xml index 450cf9f..8e82c5e 100644 --- a/contrib/views/tez/pom.xml +++ b/contrib/views/tez/pom.xml @@ -210,7 +210,7 @@ <dependency> <groupId>org.apache.ambari.contrib.views</groupId> <artifactId>ambari-views-utils</artifactId> - <version>0.0.1.0-SNAPSHOT</version> + <version>2.0.0.0-SNAPSHOT</version> </dependency> </dependencies> http://git-wip-us.apache.org/repos/asf/ambari/blob/db7ebc0c/contrib/views/tez/src/main/java/org/apache/ambari/view/tez/ViewController.java ---------------------------------------------------------------------- diff --git a/contrib/views/tez/src/main/java/org/apache/ambari/view/tez/ViewController.java b/contrib/views/tez/src/main/java/org/apache/ambari/view/tez/ViewController.java index 16b470a..440ac65 100644 --- a/contrib/views/tez/src/main/java/org/apache/ambari/view/tez/ViewController.java +++ b/contrib/views/tez/src/main/java/org/apache/ambari/view/tez/ViewController.java @@ -28,6 +28,7 @@ public interface ViewController { public static final String PARAM_YARN_ATS_URL = "yarn.timeline-server.url"; public static final String PARAM_YARN_RESOURCEMANAGER_URL = "yarn.resourcemanager.url"; + public static final String PARAM_YARN_PROTOCOL = "yarn.protocol"; /** * @return Get the properties that any user is allowed to see, even non-admin users. @@ -45,4 +46,9 @@ public interface ViewController { * @return The active resource manager URL. */ String getActiveRMUrl(); + + /** + * @return The protocol used by YARN daemons. + */ + String getYARNProtocol(); } http://git-wip-us.apache.org/repos/asf/ambari/blob/db7ebc0c/contrib/views/tez/src/main/java/org/apache/ambari/view/tez/ViewControllerImpl.java ---------------------------------------------------------------------- diff --git a/contrib/views/tez/src/main/java/org/apache/ambari/view/tez/ViewControllerImpl.java b/contrib/views/tez/src/main/java/org/apache/ambari/view/tez/ViewControllerImpl.java index c1456bc..981353b 100644 --- a/contrib/views/tez/src/main/java/org/apache/ambari/view/tez/ViewControllerImpl.java +++ b/contrib/views/tez/src/main/java/org/apache/ambari/view/tez/ViewControllerImpl.java @@ -61,6 +61,7 @@ public class ViewControllerImpl implements ViewController { Map<String, String> parameters = new HashMap<String, String>(); parameters.put(ViewController.PARAM_YARN_ATS_URL, getActiveATSUrl()); parameters.put(ViewController.PARAM_YARN_RESOURCEMANAGER_URL, getActiveRMUrl()); + parameters.put(ViewController.PARAM_YARN_PROTOCOL, getYARNProtocol()); status.setParameters(parameters); return status; } @@ -82,5 +83,10 @@ public class ViewControllerImpl implements ViewController { throw new ActiveRMFetchException(ex); } } + + @Override + public String getYARNProtocol() { + return ambariApi.getServices().getYARNProtocol(); + } } http://git-wip-us.apache.org/repos/asf/ambari/blob/db7ebc0c/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 c246536..25d4da0 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 @@ -21,6 +21,32 @@ App.deferReadiness(); var PATH_PARAM_NAME = "viewPath"; /** + * Constructs URL for fetching Ambari view instance parameters. + * @return {String} + */ +function getStatusURL() { + var urlParts = location.pathname.split('/'); + + return "/api/v1/views/%@/versions/%@/instances/%@/resources/status".fmt( + urlParts[2], + urlParts[3], + urlParts[4] + ); +} + +function getStatus() { + var hashArray = location.pathname.split('/'); + + return $.ajax({ + type: 'GET', + dataType: 'json', + async: true, + context: this, + url: getStatusURL(), + }); +} + +/** * Creates an object from query string * @param getQueryObject {String} * @return {Object} @@ -142,7 +168,7 @@ function scheduleChangeHandler(arguments) { setTimeout(onPathChange, 100); } -function setConfigs() { +function setConfigs(parameters) { var host = window.location.protocol + "//" + window.location.hostname + @@ -154,11 +180,14 @@ function setConfigs() { urlParts[4] ); + parameters = parameters || {}; + $.extend(true, App.Configs, { envDefaults: { isStandalone: false, timelineBaseUrl: host, RMWebUrl: host, + yarnProtocol: parameters["yarn.protocol"] }, restNamespace: { timeline: '%@atsproxy/ws/v1/timeline'.fmt(resourcesPrefix), @@ -180,6 +209,13 @@ function setConfigs() { App.advanceReadiness(); } +function loadParams() { + getStatus().always(function(status) { + status = status || {}; + setConfigs(status.parameters); + }); +} + if(!redirectionCheck()) { App.ApplicationRoute.reopen({ actions: { @@ -189,5 +225,5 @@ if(!redirectionCheck()) { }); allowFullScreen(); - setConfigs(); + loadParams(); } http://git-wip-us.apache.org/repos/asf/ambari/blob/db7ebc0c/contrib/views/utils/pom.xml ---------------------------------------------------------------------- diff --git a/contrib/views/utils/pom.xml b/contrib/views/utils/pom.xml index 89ecc68..40031ba 100644 --- a/contrib/views/utils/pom.xml +++ b/contrib/views/utils/pom.xml @@ -19,7 +19,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.apache.ambari.contrib.views</groupId> <artifactId>ambari-views-utils</artifactId> - <version>0.0.1.0-SNAPSHOT</version> + <version>2.0.0.0-SNAPSHOT</version> <name>Ambari View Utils</name> <parent> http://git-wip-us.apache.org/repos/asf/ambari/blob/db7ebc0c/contrib/views/utils/src/main/java/org/apache/ambari/view/utils/ambari/Services.java ---------------------------------------------------------------------- diff --git a/contrib/views/utils/src/main/java/org/apache/ambari/view/utils/ambari/Services.java b/contrib/views/utils/src/main/java/org/apache/ambari/view/utils/ambari/Services.java index 8a50012..a8ef43f 100644 --- a/contrib/views/utils/src/main/java/org/apache/ambari/view/utils/ambari/Services.java +++ b/contrib/views/utils/src/main/java/org/apache/ambari/view/utils/ambari/Services.java @@ -267,6 +267,21 @@ public class Services { } } + /** + * @return Returns the protocol used by YARN daemons, the value is always taken from the + * yarn-site.xml. + */ + public String getYARNProtocol() { + String httpPolicy = getYarnConfig(YARN_HTTP_POLICY); + + if (!(HTTP_ONLY.equals(httpPolicy) || HTTPS_ONLY.equals(httpPolicy))) { + LOG.error(String.format("RA030 Unknown value %s of yarn-site/yarn.http.policy. HTTP_ONLY assumed.", httpPolicy)); + httpPolicy = HTTP_ONLY; + } + + return getProtocol(httpPolicy); + } + private String getATSUrlFromCluster() { String url; http://git-wip-us.apache.org/repos/asf/ambari/blob/db7ebc0c/contrib/views/utils/src/test/java/org/apache/ambari/view/utils/ambari/ServicesTest.java ---------------------------------------------------------------------- diff --git a/contrib/views/utils/src/test/java/org/apache/ambari/view/utils/ambari/ServicesTest.java b/contrib/views/utils/src/test/java/org/apache/ambari/view/utils/ambari/ServicesTest.java index 1cf5747..455ca20 100644 --- a/contrib/views/utils/src/test/java/org/apache/ambari/view/utils/ambari/ServicesTest.java +++ b/contrib/views/utils/src/test/java/org/apache/ambari/view/utils/ambari/ServicesTest.java @@ -377,6 +377,22 @@ public class ServicesTest extends EasyMockSupport { assertEquals(HTTPS_RM_URL2, services.getRMUrl()); } + @Test + public void basicGetYARNProtocol() throws Exception { + ViewContext viewContext = getViewContext(new HashMap<String, String>()); + AmbariApi ambariApi = createNiceMock(AmbariApi.class); + Cluster cluster = createNiceMock(Cluster.class); + + expect(ambariApi.isClusterAssociated()).andReturn(true).anyTimes(); + setClusterExpectationWithEmptyWebappConfig(cluster, "HTTP_ONLY"); + expect(ambariApi.getCluster()).andReturn(cluster).anyTimes(); + + Services services = new Services(ambariApi, viewContext); + + replayAll(); + assertEquals("http", services.getYARNProtocol()); + } + private void setClusterExpectation(Cluster cluster, String httpPolicy) { expect(cluster.getConfigurationValue("yarn-site", "yarn.resourcemanager.ha.enabled")).andReturn("false"); expect(cluster.getConfigurationValue("yarn-site", "yarn.http.policy")).andReturn(httpPolicy);
