/**
* Copyright 2013-2015 Seagate Technology LLC.
*
* This Source Code Form is subject to the terms of the Mozilla
* Public License, v. 2.0. If a copy of the MPL was not
* distributed with this file, You can obtain one at
* https://mozilla.org/MP:/2.0/.
*
* This program is distributed in the hope that it will be useful,
* but is provided AS-IS, WITHOUT ANY WARRANTY; including without
* the implied warranty of MERCHANTABILITY, NON-INFRINGEMENT or
* FITNESS FOR A PARTICULAR PURPOSE. See the Mozilla Public
* License for more details.
*
* See www.openkinetic.org for more project information
*/
package com.seagate.kinetic.monitor.internal.servlet;
import java.io.IOException;
import java.io.Writer;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.seagate.kinetic.monitor.internal.service.KineticHeartbeatListenerService;
/**
* Servlet implementation class KineticAdminServlet
*/
@WebServlet("/KineticAdminServlet")
public class KineticAdminServlet extends HttpServlet {
private final static Logger logger = Logger
.getLogger(KineticAdminServlet.class.getName());
private static final long serialVersionUID = 1L;
private KineticHeartbeatListenerService kineticHeartbeatListenerService;
/**
* @see HttpServlet#HttpServlet()
*/
public KineticAdminServlet() {
super();
}
public void init(ServletConfig servletConfig) throws ServletException {
super.init(servletConfig);
long unavailableThreshold = Long.parseLong(servletConfig
.getInitParameter("unavailableThreshold"));
try {
kineticHeartbeatListenerService = new KineticHeartbeatListenerService(
unavailableThreshold);
} catch (IOException e) {
logger.log(Level.SEVERE, e.getMessage());
}
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
String action = request.getParameter("action");
Writer writer = response.getWriter();
action = action == null ? "listNodesAbstract" : action;
if (action.equals("listNodesAbstract")) {
writer.write(kineticHeartbeatListenerService
.listNodesAbstractAsJson());
} else if (action.equals("getNodeDetails")) {
String node = request.getParameter("node");
writer.write(kineticHeartbeatListenerService
.getNodeDetailsAsJson(node));
} else if (action.equals("listNodesDetails")) {
writer.write(kineticHeartbeatListenerService
.listNodesDetailAsJson());
}
writer.close();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}