/*******************************************************************************
* ===========================================================
* Ankush : Big Data Cluster Management Solution
* ===========================================================
*
* (C) Copyright 2014, by Impetus Technologies
*
* This is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License (LGPL v3) as
* published by the Free Software Foundation;
*
* This software is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this software; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
******************************************************************************/
package com.impetus.ankush.common.controller.view;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
/**
* The Class AnkushHadoopClusterMonitoring.
*/
@Controller
@RequestMapping("/hadoop-cluster-monitoring")
public class AnkushHadoopClusterMonitoring extends AbstractController {
/** The Constant logger. */
private static final Logger logger = LoggerFactory
.getLogger(AnkushHadoopClusterMonitoring.class);
/** The css files. */
private ArrayList<String> cssFiles;
/** The js files. */
private ArrayList<String> jsFiles;
/**
* Instantiates a new ankush hadoop cluster monitoring.
*/
public AnkushHadoopClusterMonitoring() {
// TODO Auto-generated constructor stub
cssFiles = new ArrayList<String>();
jsFiles = new ArrayList<String>();
jsFiles.add("hadoop/hadoopMonitoring");
jsFiles.add("ankush.common");
jsFiles.add("hadoop/heatMap");
}
/**
* Hadoop submit jobs.
*
* @param model the model
* @param clusterId the cluster id
* @return the string
*/
@RequestMapping(value = "/hadoopUtilizationTrend", method = RequestMethod.GET)
public String hadoopUtilizationtrend(ModelMap model) {
model.addAttribute("title", "hadoopUtilizationTrend");
return "hadoop/monitoring_hadoop/hadoopUtilizationTrend";
}
/**
* Hadoop submit jobs.
*
* @param model the model
* @param clusterId the cluster id
* @return the string
*/
@RequestMapping(value = "/{clusterName}/{hybridTechnology}/submitJobs/C-D/{clusterId}/{clusterTechnology}", method = RequestMethod.GET)
public String hadoopSubmitJobs(ModelMap model
,@PathVariable("clusterId") String clusterId
,@PathVariable("clusterName") String clusterName
,@PathVariable("clusterTechnology") String clusterTechnology
,@PathVariable("hybridTechnology") String hybridTechnology) {
logger.info("Inside Hadoop Submit Jobs view");
model.addAttribute("clusterId",clusterId);
model.addAttribute("clusterTechnology",clusterTechnology);
model.addAttribute("clusterName",clusterName);
model.addAttribute("hybridTechnology",hybridTechnology);
model.addAttribute("page","submitJob");
return "hadoop/monitoring_hadoop/jobSubmission";
}
/**
* Hadoop job details.
*
* @param model the model
* @param jobId the job id
* @return the string
*/
@RequestMapping(value = "/jobDetails/{jobId}", method = RequestMethod.GET)
public String hadoopJobDetails(ModelMap model,@PathVariable("jobId") String jobId) {
logger.info("Inside Hadoop Job Details view");
model.addAttribute("title", "hadoopJobDetails");
model.addAttribute("jobId",jobId);
return "hadoop/monitoring_hadoop/jobDetailsChildPage";
}
/**
* Hadoop job monitoring.
*
* @param model the model
* @param clusterId the cluster id
* @return the string
*/
@RequestMapping(value = "/{clusterName}/{hybridTechnology}/jobMonitoring/C-D/{clusterId}/{clusterTechnology}", method = RequestMethod.GET)
public String hadoopJobMonitoring(ModelMap model,
@PathVariable("clusterId") String clusterId,
@PathVariable("clusterName") String clusterName,
@PathVariable("clusterTechnology") String clusterTechnology,
@PathVariable("hybridTechnology") String hybridTechnology) {
logger.info("Inside Hadoop Job Monitoring view");
model.addAttribute("page", "hadoopJobMonitoring");
model.addAttribute("clusterId", clusterId);
model.addAttribute("clusterName", clusterName);
model.addAttribute("clusterTechnology", clusterTechnology);
model.addAttribute("hybridTechnology", hybridTechnology);
return "hadoop/monitoring_hadoop/jobMonitoring";
}
/**
* Hadoop job monitoring.
*
* @param model the model
* @param clusterId the cluster id
* @return the string
*/
@RequestMapping(value = "/{clusterName}/{hybridTechnology}/applicationMonitoring/C-D/{clusterId}/{clusterTechnology}", method = RequestMethod.GET)
public String hadoopAppMonitoring(ModelMap model,
@PathVariable("clusterId") String clusterId,
@PathVariable("clusterName") String clusterName,
@PathVariable("clusterTechnology") String clusterTechnology,
@PathVariable("hybridTechnology") String hybridTechnology) {
logger.info("Inside Hadoop Job Monitoring view");
model.addAttribute("clusterId",clusterId);
model.addAttribute("clusterName",clusterName);
model.addAttribute("clusterTechnology",clusterTechnology);
model.addAttribute("hybridTechnology",hybridTechnology);
model.addAttribute("page","applicationMonitoring");
return "hadoop/monitoring_hadoop/applicationMonitoring";
}
/**
* Hadoop job monitoring.
*
* @param model the model
* @param clusterId the cluster id
* @return the string
*/
@RequestMapping(value = "/appMonitoringDrillDown/{clusterId}/{clusterName}/{clusterTechnology}/{hybridTechnology}/{applicationId}", method = RequestMethod.GET)
public String hadoopAppMonitoringDrillDown(ModelMap model,
@PathVariable("clusterId") String clusterId,
@PathVariable("clusterName") String clusterName,
@PathVariable("clusterTechnology") String clusterTechnology,
@PathVariable("hybridTechnology") String hybridTechnology,
@PathVariable("applicationId") String applicationId){
logger.info("Inside Hadoop Job Monitoring view");
model.addAttribute("clusterId",clusterId);
model.addAttribute("clusterName",clusterName);
model.addAttribute("clusterTechnology",clusterTechnology);
model.addAttribute("hybridTechnology",hybridTechnology);
model.addAttribute("applicationId",applicationId);
model.addAttribute("page","applicationMonitoringDrillDown");
return "hadoop/monitoring_hadoop/applicationMonitoringDrillDown";
}
/* (non-Javadoc)
* @see org.springframework.web.servlet.mvc.AbstractController#handleRequestInternal(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
return null;
}
}