package com.github.ltsopensource.admin.web.api; import com.github.ltsopensource.admin.cluster.BackendAppContext; import com.github.ltsopensource.admin.support.I18nManager; import com.github.ltsopensource.admin.web.AbstractMVC; import com.github.ltsopensource.admin.web.support.Builder; import com.github.ltsopensource.admin.web.vo.RestfulResponse; import com.github.ltsopensource.cmd.DefaultHttpCmd; import com.github.ltsopensource.cmd.HttpCmd; import com.github.ltsopensource.cmd.HttpCmdClient; import com.github.ltsopensource.cmd.HttpCmdResponse; import com.github.ltsopensource.core.cluster.Node; import com.github.ltsopensource.core.cmd.HttpCmdNames; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.Collections; /** * @author Robert HG (254963746@qq.com) on 9/28/15. */ @RestController @RequestMapping("/jvm") public class JvmDataApi extends AbstractMVC { @Autowired private BackendAppContext appContext; @RequestMapping("node-jvm-info-get") public RestfulResponse getNodeList(String identity) { RestfulResponse restfulResponse = new RestfulResponse(); Node node = appContext.getNodeMemCacheAccess().getNodeByIdentity(identity); if (node == null) { return Builder.build(false, I18nManager.getMessage("node.dose.not.alive")); } HttpCmd cmd = new DefaultHttpCmd(); cmd.setCommand(HttpCmdNames.HTTP_CMD_JVM_INFO_GET); cmd.setNodeIdentity(identity); HttpCmdResponse response = HttpCmdClient.doGet(node.getIp(), node.getHttpCmdPort(), cmd); if (response.isSuccess()) { restfulResponse.setSuccess(true); restfulResponse.setResults(1); restfulResponse.setRows(Collections.singletonList(response.getObj())); } else { restfulResponse.setSuccess(false); restfulResponse.setMsg(response.getMsg()); } return restfulResponse; } }