package net.juniper.contrail.sandesh; import java.util.Map; import net.juniper.contrail.vcenter.VCenterNotify; import net.juniper.contrail.vcenter.VRouterNotifier; import net.juniper.contrail.contrail_vrouter_api.ContrailVRouterApi; public class VRouterListResp { private SandeshObjectList<VRouterInfo> vrouterInfoList; public VRouterListResp(VRouterListReq req) { vrouterInfoList = new SandeshObjectList<VRouterInfo>(VRouterInfo.class, new ComparatorVRouterInfo()); Map<String, String> host2VrouterMap = VCenterNotify.getVcenterDB().getEsxiToVRouterIpMap(); Map<String, ContrailVRouterApi> vRouters = VRouterNotifier.getVrouterApiMap(); for (Map.Entry<String, ContrailVRouterApi> entry: vRouters.entrySet()) { boolean state_up = (entry.getValue()!= null); if (req.total || (req.up && state_up) || (req.down && !state_up)) { VRouterInfo vrInfo = new VRouterInfo(); String vRouterIPAddr = entry.getKey(); vrInfo.setIpAddr(vRouterIPAddr); vrInfo.setState(entry.getValue()!= null); for (Map.Entry<String, String> map_entry : host2VrouterMap.entrySet()) { if (map_entry.getValue().equals(vRouterIPAddr)) { vrInfo.setEsxiHost(map_entry.getKey()); } } vrouterInfoList.add(vrInfo); } } } public void writeObject(StringBuilder s) { s.append("<vRouterListResp type=\"sandesh\">"); vrouterInfoList.writeObject(s, "VirtualRouters", DetailLevel.REGULAR, 1); s.append("</vRouterListResp>"); } }