package com.dianping.pigeon.console.servlet.json;
import com.dianping.pigeon.console.domain.RegionStatus;
import com.dianping.pigeon.console.servlet.ServiceServlet;
import com.dianping.pigeon.remoting.invoker.route.region.RegionPolicyManager;
import com.dianping.pigeon.remoting.provider.config.ServerConfig;
import com.google.common.collect.Maps;
import javax.servlet.Servlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
/**
* Created by chenchongze on 16/4/1.
*/
public class RegionStatusServlet extends ServiceServlet {
private final RegionPolicyManager regionPolicyManager = RegionPolicyManager.INSTANCE;
public RegionStatusServlet(ServerConfig serverConfig, int port) {
super(serverConfig, port);
}
@Override
protected boolean initServicePage(HttpServletRequest request, HttpServletResponse response) throws IOException {
RegionStatus regionStatus = new RegionStatus();
boolean isEnableRegionPolicy = regionPolicyManager.isEnableRegionPolicy();
if (isEnableRegionPolicy) {
regionStatus.setRegionPolicyEnabled(Boolean.TRUE);
String localRegionName = regionPolicyManager.getLocalRegion().getName();
regionStatus.setLocalRegion(localRegionName);
regionStatus.setRegionInfos(configManager.getStringValue(regionPolicyManager.KEY_REGIONINFO));
regionStatus.setRegionPrefer(
configManager.getStringValue(regionPolicyManager.KEY_REGION_PREFER_BASE + localRegionName));
}
this.model = regionStatus;
return true;
}
@Override
public String getView() {
return "RegionStatus.ftl";
}
@Override
public String getContentType() {
return "application/json; charset=UTF-8";
}
}