/** * Copyright 2016 vip.com. * <p> * Licensed 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 * * http://www.apache.org/licenses/LICENSE-2.0 * * 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. * </p> */ package com.vip.saturn.job.console.controller; import java.util.Collection; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import com.vip.saturn.job.console.domain.RequestResult; import com.vip.saturn.job.console.exception.SaturnJobConsoleException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import com.google.common.base.Strings; import com.vip.saturn.job.console.domain.SaturnJunkData; import com.vip.saturn.job.console.service.SaturnJunkDataService; /** * @author yangjuanying */ @Controller @RequestMapping("/") public class SaturnJunkDataController extends AbstractController { private final static Logger LOGGER = LoggerFactory.getLogger(SaturnJunkDataController.class); @Resource private SaturnJunkDataService saturnJunkDataService; @RequestMapping(value = "junkdata",method = RequestMethod.GET) public String junkdata(HttpServletRequest request,HttpSession session,ModelMap model) { return "junkdata"; } @ResponseBody @RequestMapping(value = "getJunkdata",method = RequestMethod.GET) public Collection<SaturnJunkData> getJunkData(HttpServletRequest request,HttpSession session,ModelMap model,String zkAddr) { return saturnJunkDataService.getJunkData(zkAddr); } @ResponseBody @RequestMapping(value = "removeJunkData",method = RequestMethod.POST) public String removeJunkData(HttpServletRequest request,SaturnJunkData saturnJunkData,HttpSession session) { return removeOneJunkData(saturnJunkData,session); } private String removeOneJunkData(SaturnJunkData saturnJunkData,HttpSession session) { try { LOGGER.info("[removed junk data {}.]", saturnJunkData); if (Strings.isNullOrEmpty(saturnJunkData.getPath()) || saturnJunkData.getType() == null) { LOGGER.info("[{} junk data param error, can't be removed.]", saturnJunkData); return "传入参数有误,清理废弃数据("+saturnJunkData.getPath()+")失败"; } return saturnJunkDataService.removeSaturnJunkData(saturnJunkData); } catch (Exception e) { LOGGER.error("removeOneExecutor exception:", e); return "清理废弃数据("+saturnJunkData.getPath()+")出现异常:"+ e.getMessage(); } } @ResponseBody @RequestMapping(value = "junkData/deleteRunningNode",method = RequestMethod.POST) public RequestResult deleteRunningNode(String namespace, String jobName, Integer item) { RequestResult requestResult = new RequestResult(); try { if(namespace == null || namespace.trim().isEmpty()) { throw new SaturnJobConsoleException("The namespace can not be null or empty"); } if(jobName == null || jobName.trim().isEmpty()) { throw new SaturnJobConsoleException("The jobName can not be null or empty"); } if(item == null) { throw new SaturnJobConsoleException("The item can not be null"); } saturnJunkDataService.deleteRunningNode(namespace, jobName, item); LOGGER.info("do junkData/deleteRunningNode success, namespace is {}, jobName is {}, item is {}", namespace, jobName, item); requestResult.setSuccess(true); } catch (Throwable t) { requestResult.setSuccess(false); if(t instanceof SaturnJobConsoleException) { requestResult.setMessage(t.getMessage()); } else { requestResult.setMessage(t.toString()); } LOGGER.error(t.getMessage(), t); } return requestResult; } }