mirror of
https://github.com/ctripcorp/zeus.git
synced 2024-09-22 08:36:24 +08:00
fix get status bug
This commit is contained in:
parent
f0e2e0d905
commit
6a6852ea71
|
@ -43,7 +43,7 @@ public class StatusClient extends AbstractRestClient {
|
||||||
|
|
||||||
public GroupStatus getGroupStatus(Long groupId , Long slbId)throws Exception
|
public GroupStatus getGroupStatus(Long groupId , Long slbId)throws Exception
|
||||||
{
|
{
|
||||||
String responseStr = getTarget().path("/api/status/group").queryParam("groupId", groupId).queryParam("slbId", slbId)
|
String responseStr = getTarget().path("/api/status/group/"+groupId+"/slb/"+slbId)
|
||||||
.request(MediaType.APPLICATION_JSON).headers(getDefaultHeaders()).get(String.class);
|
.request(MediaType.APPLICATION_JSON).headers(getDefaultHeaders()).get(String.class);
|
||||||
return DefaultJsonParser.parse(GroupStatus.class, responseStr);
|
return DefaultJsonParser.parse(GroupStatus.class, responseStr);
|
||||||
}
|
}
|
||||||
|
|
|
@ -142,6 +142,23 @@ public class StatusResource {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Path("/group/{groupId:[0-9]+}/slb/{slbId:[0-9]+}")
|
||||||
|
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||||
|
@Authorize(name = "getGroupStatus", uriGroupHint = -1)
|
||||||
|
public Response groupStatus(@Context HttpServletRequest request, @Context HttpHeaders hh, @PathParam("groupId") Long groupId, @PathParam("slbId") Long slbId) throws Exception {
|
||||||
|
|
||||||
|
GroupStatus groupStatus = groupStatusService.getLocalGroupStatus(groupId, slbId);
|
||||||
|
|
||||||
|
if (MediaType.APPLICATION_XML_TYPE.equals(hh.getMediaType())) {
|
||||||
|
return Response.status(200).entity(String.format(GroupServerStatus.XML, groupStatus)).type(MediaType.APPLICATION_XML).build();
|
||||||
|
} else {
|
||||||
|
return Response.status(200).entity(String.format(GroupServerStatus.JSON, groupStatus)).type(MediaType.APPLICATION_JSON).build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("/traffic")
|
@Path("/traffic")
|
||||||
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||||
|
|
|
@ -30,5 +30,7 @@ public interface GroupStatusService {
|
||||||
|
|
||||||
GroupStatus getGroupStatus(Long groupId,Long slbId) throws Exception;
|
GroupStatus getGroupStatus(Long groupId,Long slbId) throws Exception;
|
||||||
|
|
||||||
|
GroupStatus getLocalGroupStatus(Long groupId , Long slbId) throws Exception;
|
||||||
|
|
||||||
GroupServerStatus getGroupServerStatus(Long groupId, Long slbId, String ip, Integer port) throws Exception;
|
GroupServerStatus getGroupServerStatus(Long groupId, Long slbId, String ip, Integer port) throws Exception;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@ import com.ctrip.zeus.service.model.GroupRepository;
|
||||||
import com.ctrip.zeus.service.model.SlbRepository;
|
import com.ctrip.zeus.service.model.SlbRepository;
|
||||||
import com.ctrip.zeus.service.status.GroupStatusService;
|
import com.ctrip.zeus.service.status.GroupStatusService;
|
||||||
import com.ctrip.zeus.service.status.StatusService;
|
import com.ctrip.zeus.service.status.StatusService;
|
||||||
|
import com.ctrip.zeus.util.AssertUtils;
|
||||||
import com.netflix.config.DynamicIntProperty;
|
import com.netflix.config.DynamicIntProperty;
|
||||||
import com.netflix.config.DynamicPropertyFactory;
|
import com.netflix.config.DynamicPropertyFactory;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
@ -69,17 +70,14 @@ public class GroupStatusServiceImpl implements GroupStatusService {
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GroupStatus getGroupStatus(Long groupId, Long slbId) throws Exception {
|
public GroupStatus getLocalGroupStatus(Long groupId , Long slbId) throws Exception
|
||||||
if (!isCurrentSlb(slbId))
|
{
|
||||||
{
|
|
||||||
Slb slb = slbRepository.getById(slbId);
|
|
||||||
StatusClient client = StatusClient.getClient("http://"+slb.getSlbServers().get(0).getIp()+":"+adminServerPort.get());
|
|
||||||
return client.getGroupStatus(groupId,slbId);
|
|
||||||
}
|
|
||||||
Slb slb = slbRepository.getById(slbId);
|
Slb slb = slbRepository.getById(slbId);
|
||||||
Group group = groupRepository.getById(groupId);
|
Group group = groupRepository.getById(groupId);
|
||||||
|
AssertUtils.isNull(group,"group Id not found!");
|
||||||
|
AssertUtils.isNull(slb,"slb Id not found!");
|
||||||
|
|
||||||
GroupStatus status = new GroupStatus();
|
GroupStatus status = new GroupStatus();
|
||||||
status.setGroupId(groupId);
|
status.setGroupId(groupId);
|
||||||
status.setSlbId(slbId);
|
status.setSlbId(slbId);
|
||||||
|
@ -93,15 +91,16 @@ public class GroupStatusServiceImpl implements GroupStatusService {
|
||||||
}
|
}
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public GroupStatus getGroupStatus(Long groupId, Long slbId) throws Exception {
|
||||||
|
Slb slb = slbRepository.getById(slbId);
|
||||||
|
AssertUtils.isNull(slb,"slbId not found!");
|
||||||
|
StatusClient client = StatusClient.getClient("http://"+slb.getSlbServers().get(0).getIp()+":"+adminServerPort.get());
|
||||||
|
return client.getGroupStatus(groupId,slbId);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GroupServerStatus getGroupServerStatus(Long groupId, Long slbId, String ip, Integer port) throws Exception {
|
public GroupServerStatus getGroupServerStatus(Long groupId, Long slbId, String ip, Integer port) throws Exception {
|
||||||
if (!isCurrentSlb(slbId))
|
|
||||||
{
|
|
||||||
Slb slb = slbRepository.getById(slbId);
|
|
||||||
StatusClient client = StatusClient.getClient("http://"+slb.getSlbServers().get(0).getIp()+":"+adminServerPort.get());
|
|
||||||
return client.getGroupServerStatus(groupId, slbId, ip + ":" + port);
|
|
||||||
}
|
|
||||||
|
|
||||||
GroupServerStatus groupServerStatus = new GroupServerStatus();
|
GroupServerStatus groupServerStatus = new GroupServerStatus();
|
||||||
groupServerStatus.setIp(ip);
|
groupServerStatus.setIp(ip);
|
||||||
|
|
Loading…
Reference in a new issue