package mocks.cloud;
import beans.config.Conf;
import beans.scripts.ScriptExecutor;
import cloudify.widget.common.asyncscriptexecutor.*;
import models.ServerNode;
import org.apache.commons.exec.CommandLine;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
/**
* Created with IntelliJ IDEA.
* User: guym
* Date: 8/13/14
* Time: 1:00 PM
*/
public class FileBasedScriptExecutorMock implements ScriptExecutor{
private static Logger logger = LoggerFactory.getLogger(FileBasedScriptExecutorMock.class);
public String nodeId;
private Conf conf;
@Override
public IAsyncExecution runBootstrapScript(CommandLine cmdLine, ServerNode serverNode) {
IAsyncExecution impl = new AsyncExecutionImpl();
IAsyncExecutionDetails executionDetails = getExecutionDetails(serverNode, "bootstrap");
impl.setDetails(executionDetails);
logger.info("new bootstrap task written to [{}]", executionDetails.getTaskFile());
return impl;
}
public IAsyncExecutionDetails getExecutionDetails( ServerNode serverNode, String action ){
IAsyncExecutionDetails details = new AsyncExecutionDetails();
details.setNewScriptsDir( conf.asyncExecution.newScriptsDir);
details.setTaskFile( new File(conf.asyncExecution.newScriptsDir, String.format("%s_%s.json", nodeId, action)));
details.setOutputFile( new File(conf.asyncExecution.executingScriptsDir, String.format("%s/output.log", nodeId)));
details.setStatusFile( new File(conf.asyncExecution.executingScriptsDir, String.format("%s/%s.status", nodeId,action)));
return details;
}
@Override
public IAsyncExecution getBootstrapExecution(ServerNode serverNode) {
return null;
}
@Override
public void runInstallationManagementScript(CommandLine cmdLine, ServerNode server) {
}
@Override
public void runTearDownCommand(CommandLine cmdLine) {
}
public Conf getConf() {
return conf;
}
public void setConf(Conf conf) {
this.conf = conf;
}
public String getNodeId() {
return nodeId;
}
public void setNodeId(String nodeId) {
this.nodeId = nodeId;
}
}