package com.baidu.disconf.web.web.zookeeper.controller; import javax.validation.Valid; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import com.baidu.disconf.core.common.constants.Constants; import com.baidu.disconf.core.common.json.ValueVo; import com.baidu.disconf.web.service.zookeeper.config.ZooConfig; import com.baidu.disconf.web.service.zookeeper.form.ZkDeployForm; import com.baidu.disconf.web.service.zookeeper.service.ZkDeployMgr; import com.baidu.disconf.web.web.config.dto.ConfigFullModel; import com.baidu.disconf.web.web.zookeeper.validator.ZkDeployValidator; import com.baidu.dsp.common.annotation.NoAuth; import com.baidu.dsp.common.constant.WebConstants; import com.baidu.dsp.common.controller.BaseController; import com.baidu.dsp.common.vo.JsonObjectBase; /** * Zoo API * * @author liaoqiqi * @version 2014-1-20 */ @Controller @RequestMapping(WebConstants.API_PREFIX + "/zoo") public class ZooController extends BaseController { protected static final Logger LOG = LoggerFactory.getLogger(ZooController.class); @Autowired private ZooConfig zooConfig; @Autowired private ZkDeployValidator zkDeployValidator; @Autowired private ZkDeployMgr zkDeployMgr; /** * 获取Zookeeper地址 * * @return */ @NoAuth @RequestMapping(value = "/hosts", method = RequestMethod.GET) @ResponseBody public ValueVo getHosts() { ValueVo confItemVo = new ValueVo(); confItemVo.setStatus(Constants.OK); confItemVo.setValue(zooConfig.getZooHosts()); return confItemVo; } /** * 获取ZK prefix * * @return */ @NoAuth @RequestMapping(value = "/prefix", method = RequestMethod.GET) @ResponseBody public ValueVo getPrefixUrl() { ValueVo confItemVo = new ValueVo(); confItemVo.setStatus(Constants.OK); confItemVo.setValue(zooConfig.getZookeeperUrlPrefix()); return confItemVo; } /** * 获取ZK 部署情况 * * @param zkDeployForm * * @return */ @RequestMapping(value = "/zkdeploy", method = RequestMethod.GET) @ResponseBody public JsonObjectBase getZkDeployInfo(@Valid ZkDeployForm zkDeployForm) { LOG.info(zkDeployForm.toString()); ConfigFullModel configFullModel = zkDeployValidator.verify(zkDeployForm); String data = zkDeployMgr.getDeployInfo(configFullModel.getApp().getName(), configFullModel.getEnv().getName(), zkDeployForm.getVersion()); return buildSuccess("hostInfo", data); } }