package com.github.ltsopensource.admin.web.view;
import com.github.ltsopensource.admin.cluster.BackendAppContext;
import com.github.ltsopensource.core.cluster.NodeType;
import com.github.ltsopensource.core.commons.utils.DateUtils;
import com.github.ltsopensource.queue.domain.NodeGroupPo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.Date;
import java.util.List;
/**
* @author Robert HG (254963746@qq.com) on 6/6/15.
*/
@Controller
public class CommonView {
@Autowired
private BackendAppContext appContext;
@RequestMapping("index")
public String index(){
return "index";
}
@RequestMapping("node-manager")
public String nodeManagerUI() {
return "nodeManager";
}
@RequestMapping("node-group-manager")
public String nodeGroupManagerUI() {
return "nodeGroupManager";
}
@RequestMapping("node-onoffline-log")
public String nodeOnOfflineLogUI(Model model) {
model.addAttribute("startLogTime", DateUtils.formatYMD_HMS(DateUtils.addDay(new Date(), -10)));
model.addAttribute("endLogTime", DateUtils.formatYMD_HMS(new Date()));
return "nodeOnOfflineLog";
}
@RequestMapping("node-jvm-info")
public String nodeJVMInfo(Model model, String identity) {
model.addAttribute("identity", identity);
return "nodeJvmInfo";
}
@RequestMapping("job-add")
public String addJobUI(Model model) {
setAttr(model);
return "jobAdd";
}
@RequestMapping("job-logger")
public String jobLoggerUI(Model model, String realTaskId, String taskTrackerNodeGroup,
Date startLogTime, Date endLogTime) {
model.addAttribute("realTaskId", realTaskId);
model.addAttribute("taskTrackerNodeGroup", taskTrackerNodeGroup);
if (startLogTime == null) {
startLogTime = DateUtils.addMinute(new Date(), -10);
}
model.addAttribute("startLogTime", DateUtils.formatYMD_HMS(startLogTime));
if (endLogTime == null) {
endLogTime = new Date();
}
model.addAttribute("endLogTime", DateUtils.formatYMD_HMS(endLogTime));
setAttr(model);
return "jobLogger";
}
@RequestMapping("cron-job-queue")
public String cronJobQueueUI(Model model) {
setAttr(model);
return "cronJobQueue";
}
@RequestMapping("repeat-job-queue")
public String repeatJobQueueUI(Model model) {
setAttr(model);
return "repeatJobQueue";
}
@RequestMapping("executable-job-queue")
public String executableJobQueueUI(Model model) {
setAttr(model);
return "executableJobQueue";
}
@RequestMapping("executing-job-queue")
public String executingJobQueueUI(Model model) {
setAttr(model);
return "executingJobQueue";
}
@RequestMapping("load-job")
public String loadJobUI(Model model) {
setAttr(model);
return "loadJob";
}
@RequestMapping("cron_generator_iframe")
public String cronGeneratorIframe(Model model){
return "cron/cronGenerator";
}
@RequestMapping("suspend-job-queue")
public String suspendJobQueueUI(Model model) {
setAttr(model);
return "suspendJobQueue";
}
private void setAttr(Model model) {
List<NodeGroupPo> jobClientNodeGroups = appContext.getNodeGroupStore().getNodeGroup(NodeType.JOB_CLIENT);
model.addAttribute("jobClientNodeGroups", jobClientNodeGroups);
List<NodeGroupPo> taskTrackerNodeGroups = appContext.getNodeGroupStore().getNodeGroup(NodeType.TASK_TRACKER);
model.addAttribute("taskTrackerNodeGroups", taskTrackerNodeGroups);
}
}