41 lines
984 B
Java
41 lines
984 B
Java
package com.flaremicro.crossjeeves;
|
|
|
|
import java.util.List;
|
|
|
|
import com.flaremicro.crossjeeves.net.ClientHandler;
|
|
import com.flaremicro.crossjeeves.net.ErrorCodes;
|
|
|
|
public class CrossJeevesClient {
|
|
private List<AgentInfo> agentList;
|
|
private String script;
|
|
|
|
//TODO Make configurable
|
|
private static final int MAX_ATTEMPTS = 2;
|
|
|
|
public CrossJeevesClient(List<AgentInfo> agentList, String script) {
|
|
this.agentList = agentList;
|
|
this.script = script;
|
|
}
|
|
|
|
public void beginJob() {
|
|
for(int i = 0; i < MAX_ATTEMPTS; i++)
|
|
{
|
|
for(AgentInfo agent : agentList)
|
|
{
|
|
int exitCode = ClientHandler.connect(agent.addr, agent.port, script);
|
|
if(ErrorCodes.getErrorCode(exitCode) == null || ErrorCodes.getErrorCode(exitCode).isTerminal)
|
|
{
|
|
System.out.println("Recieved terminal exit code " + exitCode);
|
|
System.exit(exitCode);
|
|
}
|
|
else if(exitCode == ErrorCodes.OK.id)
|
|
{
|
|
System.out.println("Job Completed!");
|
|
System.exit(0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|