/**
*
*/
package org.ourgrid.common.executor.config;
import java.io.File;
import org.ourgrid.common.util.OS;
import org.ourgrid.worker.WorkerConstants;
public class VMWareExecutorConfiguration extends AbstractExecutorConfiguration {
public static enum PROPERTIES{
START_VM_COMMAND, STOP_VM_COMMAND,
LIST_VM_COMMAND, VM_IMAGE_PATH,
VM_HOST_ADDRESS, VM_HOST_USER,
VM_HOST_PASSWD, APP_STD_OUTPUT_FILE_NAME,
APP_STD_ERROR_FILE_NAME, APP_STD_EXITVALUE_FILE_NAME,
COPY_FROM_GUEST_VM_COMMAND, VM_GUEST_USER,
VM_GUEST_PASSWD, EXEC_VM_COMMAND,
VMWARE_SCRIPTS_DIR, CREATE_DIR_VM_COMMAND,
COPY_FROM_HOST_VM_COMMAND, PLAYPEN_DIR_IN_VM,
STORAGE_DIR_IN_VM
}
/**
* @param rootDir
* @param propNames
*/
public VMWareExecutorConfiguration(File rootDir, String[] propNames) {
super(rootDir, propNames);
}
public VMWareExecutorConfiguration(File rootDir) {
super(rootDir, parseProperties());
}
private static String[] parseProperties(){
String[] properties = new String[PROPERTIES.values().length] ;
for (int i = 0; i < PROPERTIES.values().length; i++) {
properties[i] = WorkerConstants.PREFIX + PROPERTIES.values()[i].toString();
}
return properties;
}
/* (non-Javadoc)
* @see org.ourgrid.common.executor.config.AbstractExecutorConfiguration#setDefaultProperties()
*/
@Override
public void setDefaultProperties() {
String startvmCmd = null;
String stopvmCmd = null;
String listvmCmd = null;
String execCmd = null;
String copyFromGuestCmd = null;
String copyFromHostCmd = null;
String createDirCmd = null;
String vmwareScriptsDir = null;
String path = getRootDir().getAbsolutePath() + File.separator + "vmware_scripts";
path = path.replace("," , "");
String quotes = "\"";
if (OS.isFamilyWin9x() || OS.isFamilyWindows()) {
startvmCmd = quotes + path + File.separator + "start-vm.bat" + quotes;
stopvmCmd = quotes + path + File.separator + "kill-vm.bat" + quotes;
listvmCmd = quotes + path + File.separator + "list-vm.bat" + quotes;
execCmd = quotes + path + File.separator + "execcmd-vm.bat" + quotes;
copyFromGuestCmd = quotes + path + File.separator + "copyFileFromGuestToHost.bat" + quotes;
copyFromHostCmd = quotes + path + File.separator + "copyFileFromHostToGuest.bat" + quotes;
createDirCmd = quotes + path + File.separator + "createDirInGuest.bat" + quotes;
vmwareScriptsDir = path;
}
else if(OS.isFamilyUnix()){
startvmCmd = path + File.separator + "start-vm.sh";
stopvmCmd = path + File.separator + "kill-vm.sh";
listvmCmd = path + File.separator + "list-vm.sh";
execCmd = path + File.separator + "execcmd-vm.sh";
copyFromGuestCmd = path + File.separator + "copyFileFromGuestToHost.sh" ;
copyFromHostCmd = path + File.separator + "copyFileFromHostToGuest.sh";
createDirCmd = path + File.separator + "createDirInGuest.sh";
vmwareScriptsDir = path + quotes;
}
this.properties.put(PROPERTIES.START_VM_COMMAND.toString(), startvmCmd);
this.properties.put(PROPERTIES.STOP_VM_COMMAND.toString(), stopvmCmd);
this.properties.put(PROPERTIES.LIST_VM_COMMAND.toString(), listvmCmd);
this.properties.put(PROPERTIES.EXEC_VM_COMMAND.toString(), execCmd);
this.properties.put(PROPERTIES.COPY_FROM_GUEST_VM_COMMAND.toString(), copyFromGuestCmd);
this.properties.put(PROPERTIES.COPY_FROM_HOST_VM_COMMAND.toString(), copyFromHostCmd);
this.properties.put(PROPERTIES.CREATE_DIR_VM_COMMAND.toString(), createDirCmd);
this.properties.put(PROPERTIES.VMWARE_SCRIPTS_DIR.toString(), vmwareScriptsDir);
this.properties.put(PROPERTIES.APP_STD_OUTPUT_FILE_NAME.toString(), "app.stdout");
this.properties.put(PROPERTIES.APP_STD_ERROR_FILE_NAME.toString(), "app.sdterror");
this.properties.put(PROPERTIES.APP_STD_EXITVALUE_FILE_NAME.toString(), "terminate");
}
}