package org.fastcatsearch.http.action.management.common; import org.fastcatsearch.cluster.Node; import org.fastcatsearch.cluster.NodeService; import org.fastcatsearch.control.ResultFuture; import org.fastcatsearch.http.ActionAuthority; import org.fastcatsearch.http.ActionAuthorityLevel; import org.fastcatsearch.http.ActionMapping; import org.fastcatsearch.http.action.ActionRequest; import org.fastcatsearch.http.action.ActionResponse; import org.fastcatsearch.http.action.AuthAction; import org.fastcatsearch.job.management.UpdateModuleStateJob; import org.fastcatsearch.service.ServiceManager; import org.fastcatsearch.util.ResponseWriter; @ActionMapping(value = "/management/common/update-modules-state", authority = ActionAuthority.Servers, authorityLevel = ActionAuthorityLevel.WRITABLE) public class UpdateModuleStateAction extends AuthAction { @SuppressWarnings("unchecked") @Override public void doAuthAction(ActionRequest request, ActionResponse response) throws Exception { boolean isSuccess = false; String nodeId = request.getParameter("nodeId"); String action = request.getParameter("action"); String classNames = request.getParameter("services",""); UpdateModuleStateJob job = new UpdateModuleStateJob(); job.setAction(action); job.setServiceClasses(classNames); NodeService nodeService = ServiceManager.getInstance().getService(NodeService.class); Node node = nodeService.getNodeById(nodeId); ResultFuture resultFuture = nodeService.sendRequest(node, job); if(resultFuture!=null) { Object obj = resultFuture.take(); if(Boolean.TRUE.equals(obj)) { isSuccess = true; } } ResponseWriter responseWriter = getDefaultResponseWriter(response.getWriter()); responseWriter.object(); responseWriter.key("success").value(isSuccess); responseWriter.endObject(); responseWriter.done(); } }