You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by pa...@apache.org on 2016/06/01 11:01:56 UTC
ambari git commit: AMBARI-16957. Zeppelin views : UI broken when
service is not running (Renjith Kamath via pallavkul)
Repository: ambari
Updated Branches:
refs/heads/trunk 2426d02d0 -> f1e7d1707
AMBARI-16957. Zeppelin views : UI broken when service is not running (Renjith Kamath via pallavkul)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/f1e7d170
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/f1e7d170
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/f1e7d170
Branch: refs/heads/trunk
Commit: f1e7d1707b26b21e4def3ce19d5f235029a78783
Parents: 2426d02
Author: Pallav Kulshreshtha <pa...@gmail.com>
Authored: Wed Jun 1 16:30:57 2016 +0530
Committer: Pallav Kulshreshtha <pa...@gmail.com>
Committed: Wed Jun 1 16:30:57 2016 +0530
----------------------------------------------------------------------
contrib/views/zeppelin/pom.xml | 12 ++++
.../view/zeppelin/ZeppelinServiceCheck.java | 64 ++++++++++++++++++++
.../src/main/resources/WEB-INF/index.jsp | 38 ++++++++++--
.../zeppelin/src/main/resources/WEB-INF/web.xml | 13 +++-
4 files changed, 121 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/f1e7d170/contrib/views/zeppelin/pom.xml
----------------------------------------------------------------------
diff --git a/contrib/views/zeppelin/pom.xml b/contrib/views/zeppelin/pom.xml
index 3d0161c..6dd17f3 100644
--- a/contrib/views/zeppelin/pom.xml
+++ b/contrib/views/zeppelin/pom.xml
@@ -86,6 +86,18 @@
<artifactId>ambari-views-utils</artifactId>
<version>2.0.0.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.json</groupId>
+ <artifactId>json</artifactId>
+ <version>20160212</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>4.3.6</version>
+ </dependency>
+
</dependencies>
http://git-wip-us.apache.org/repos/asf/ambari/blob/f1e7d170/contrib/views/zeppelin/src/main/java/org/apache/ambari/view/zeppelin/ZeppelinServiceCheck.java
----------------------------------------------------------------------
diff --git a/contrib/views/zeppelin/src/main/java/org/apache/ambari/view/zeppelin/ZeppelinServiceCheck.java b/contrib/views/zeppelin/src/main/java/org/apache/ambari/view/zeppelin/ZeppelinServiceCheck.java
new file mode 100644
index 0000000..e80f884
--- /dev/null
+++ b/contrib/views/zeppelin/src/main/java/org/apache/ambari/view/zeppelin/ZeppelinServiceCheck.java
@@ -0,0 +1,64 @@
+/**
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.
+ */
+
+package org.apache.ambari.view.zeppelin;
+
+import org.apache.http.HttpResponse;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.json.JSONObject;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+
+public class ZeppelinServiceCheck extends HttpServlet {
+ @Override
+ public void init(ServletConfig config) throws ServletException {
+ super.init(config);
+ }
+
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
+ String url = "http:" + request.getParameter("url");
+ PrintWriter printwriter = response.getWriter();
+ JSONObject json = new JSONObject();
+ response.setContentType("application/json");
+ response.setStatus(HttpServletResponse.SC_OK);
+
+ try {
+ HttpClient httpclient = HttpClientBuilder.create().build();
+ HttpGet httpget = new HttpGet(url);
+ HttpResponse httpresponse = httpclient.execute(httpget);
+ if (httpresponse.getStatusLine().getStatusCode() == 200) {
+ json.put("status", "SUCCESS");
+ json.put("message", "Zeppelin is running");
+ }
+ } catch (Exception e) {
+ json.put("status", "ERROR");
+ json.put("message", "Zeppelin is not running");
+ }
+ printwriter.print(json.toString());
+ }
+}
http://git-wip-us.apache.org/repos/asf/ambari/blob/f1e7d170/contrib/views/zeppelin/src/main/resources/WEB-INF/index.jsp
----------------------------------------------------------------------
diff --git a/contrib/views/zeppelin/src/main/resources/WEB-INF/index.jsp b/contrib/views/zeppelin/src/main/resources/WEB-INF/index.jsp
index 9247b8b..493473e 100644
--- a/contrib/views/zeppelin/src/main/resources/WEB-INF/index.jsp
+++ b/contrib/views/zeppelin/src/main/resources/WEB-INF/index.jsp
@@ -19,16 +19,29 @@
<html lang="en">
<head>
<meta charset="utf-8"/>
+ <link rel="stylesheet" href="/stylesheets/vendor.css">
</head>
<body>
+<div class="container-fluid" id="messageContainer" style="display:none;">
+ <h1>Welcome to the Zeppelin View</h1>
+ <h3>Service check failed</h3>
+
+ <table class="table">
+ <tbody>
+ <tr>
+ <td>zeppelin service is not running</td>
+ </tr>
+ </tbody>
+ </table>
+
+</div>
+
<iframe id='zeppelinIFrame' width="100%" seamless="seamless" style="border: 0px;"></iframe>
<script>
var $ = jQuery = parent.jQuery;
var iframe = document.querySelector('#zeppelinIFrame');
var port = "${port}";
- var publicName = "${publicname}";
-
$.getJSON('/api/v1/clusters', function (data) {
$.getJSON('/api/v1/clusters/' +
@@ -39,8 +52,7 @@
for (var j = 0; j < data['items'][i]['host_components'].length; j++) {
if (data['items'][i]['host_components'][j]['HostRoles']['component_name'] == 'ZEPPELIN_MASTER') {
var url = '//' + data['items'][i]['host_components'][j]['HostRoles']['host_name'] + ':' + port;
- iframe.src = url;
- iframe.height = window.innerHeight;
+ validateAndLoadZeppelinUI(iframe, url);
return;
}
}
@@ -51,6 +63,22 @@
$(window).resize(function () {
iframe.height = window.innerHeight;
});
+
+ function validateAndLoadZeppelinUI(iframe, url) {
+ $.get(location.href + "zeppelin-service-check?url=" + url, function (response) {
+ if (response.status === "SUCCESS") {
+ messageContainer.style.display = "none";
+ iframe.style.display = "block";
+ iframe.src = url;
+ iframe.height = window.innerHeight;
+ } else {
+ messageContainer.style.display = "block";
+ iframe.style.display = "none";
+ }
+ });
+
+
+ }
</script>
</body>
-</html>
\ No newline at end of file
+</html>
http://git-wip-us.apache.org/repos/asf/ambari/blob/f1e7d170/contrib/views/zeppelin/src/main/resources/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/contrib/views/zeppelin/src/main/resources/WEB-INF/web.xml b/contrib/views/zeppelin/src/main/resources/WEB-INF/web.xml
index cb0bcd9..2ca5664 100644
--- a/contrib/views/zeppelin/src/main/resources/WEB-INF/web.xml
+++ b/contrib/views/zeppelin/src/main/resources/WEB-INF/web.xml
@@ -27,6 +27,16 @@ limitations under the License. Kerberos, LDAP, Custom. Binary/Htt
This is the Zeppelin view servlet application.
</description>
<servlet>
+ <servlet-name>ZeppelinServiceCheck</servlet-name>
+ <servlet-class>org.apache.ambari.view.zeppelin.ZeppelinServiceCheck</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>ZeppelinServiceCheck</servlet-name>
+ <url-pattern>/zeppelin-service-check</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
<servlet-name>ZeppelinServlet</servlet-name>
<servlet-class>org.apache.ambari.view.zeppelin.ZeppelinServlet</servlet-class>
</servlet>
@@ -35,4 +45,5 @@ limitations under the License. Kerberos, LDAP, Custom. Binary/Htt
<servlet-name>ZeppelinServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
-</web-app>
\ No newline at end of file
+
+</web-app>