package com.taobao.zeus.socket.master.reqresp;
import com.taobao.zeus.model.DebugHistory;
import com.taobao.zeus.model.JobHistory;
import com.taobao.zeus.socket.SocketLog;
import com.taobao.zeus.socket.master.MasterContext;
import com.taobao.zeus.socket.protocol.Protocol.ExecuteKind;
import com.taobao.zeus.socket.protocol.Protocol.Status;
import com.taobao.zeus.socket.protocol.Protocol.WebOperate;
import com.taobao.zeus.socket.protocol.Protocol.WebRequest;
import com.taobao.zeus.socket.protocol.Protocol.WebResponse;
public class MasterBeWebExecute {
public WebResponse beWebExecute(MasterContext context,WebRequest req) {
if(req.getEk()==ExecuteKind.ManualKind || req.getEk()==ExecuteKind.ScheduleKind){
String historyId=req.getId();
JobHistory history=context.getJobHistoryManager().findJobHistory(historyId);
String jobId=history.getJobId();
context.getMaster().run(history);
WebResponse resp=WebResponse.newBuilder().setRid(req.getRid()).setOperate(WebOperate.ExecuteJob)
.setStatus(Status.OK).build();
SocketLog.info("send web execute response,rid="+req.getRid()+",jobId="+jobId);
return resp;
}else if(req.getEk()==ExecuteKind.DebugKind){
String debugId=req.getId();
DebugHistory history=context.getDebugHistoryManager().findDebugHistory(debugId);
SocketLog.info("receive web debug request,rid="+req.getRid()+",debugId="+debugId);
context.getMaster().debug(history);
WebResponse resp=WebResponse.newBuilder().setRid(req.getRid()).setOperate(WebOperate.ExecuteJob)
.setStatus(Status.OK).build();
SocketLog.info("send web debug response,rid="+req.getRid()+",debugId="+debugId);
return resp;
}
return null;
}
}