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
|
||||
{
|
||||
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);
|
||||
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
|
||||
@Path("/traffic")
|
||||
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
|
|
|
@ -30,5 +30,7 @@ public interface GroupStatusService {
|
|||
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import com.ctrip.zeus.service.model.GroupRepository;
|
|||
import com.ctrip.zeus.service.model.SlbRepository;
|
||||
import com.ctrip.zeus.service.status.GroupStatusService;
|
||||
import com.ctrip.zeus.service.status.StatusService;
|
||||
import com.ctrip.zeus.util.AssertUtils;
|
||||
import com.netflix.config.DynamicIntProperty;
|
||||
import com.netflix.config.DynamicPropertyFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@ -69,17 +70,14 @@ public class GroupStatusServiceImpl implements GroupStatusService {
|
|||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GroupStatus getGroupStatus(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);
|
||||
}
|
||||
public GroupStatus getLocalGroupStatus(Long groupId , Long slbId) throws Exception
|
||||
{
|
||||
Slb slb = slbRepository.getById(slbId);
|
||||
Group group = groupRepository.getById(groupId);
|
||||
AssertUtils.isNull(group,"group Id not found!");
|
||||
AssertUtils.isNull(slb,"slb Id not found!");
|
||||
|
||||
GroupStatus status = new GroupStatus();
|
||||
status.setGroupId(groupId);
|
||||
status.setSlbId(slbId);
|
||||
|
@ -93,15 +91,16 @@ public class GroupStatusServiceImpl implements GroupStatusService {
|
|||
}
|
||||
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
|
||||
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.setIp(ip);
|
||||
|
|
Loading…
Reference in a new issue