package org.ovirt.engine.core.config;
import org.apache.log4j.Logger;
import org.ovirt.engine.core.config.validation.ConfigActionType;
/**
* The <code>EngineConfig</code> class represents the main class of the EngineConfig tool.
*/
public class EngineConfig {
public static final String CONFIG_FILE_PATH_PROPERTY = "engine-config.config.file.path";
public static final String DEFAULT_CONFIG_PATH = "/etc/ovirt-engine/engine-config/";
private static final Logger log = Logger.getLogger(EngineConfig.class);
private EngineConfigCLIParser parser;
private EngineConfigLogic engineConfigLogic;
private static EngineConfig instance = new EngineConfig();
private EngineConfig() {
}
/**
* Parses the arguments, validates that they are valid, instantiates the EngineConfigLogic object and executes the
* desired action.
*
* @param args
* The arguments given by the user.
*
* @throws Exception
*/
public void setUpAndExecute(String... args) throws Exception {
parser.parse(args);
log.debug("Arguments have been parsed: " + parser.engineConfigMapToString());
ConfigActionType actionType = parser.getConfigAction();
actionType.validate(parser.getEngineConfigMap());
setEngineConfigLogic(new EngineConfigLogic(parser));
engineConfigLogic.execute();
}
/**
* The main method, instantiates the parser and executes.
*
* @param args
* The arguments given by the user.
*/
public static void main(String... args) {
try {
getInstance().setParser(new EngineConfigCLIParser());
getInstance().setUpAndExecute(args);
} catch (Throwable t) {
log.debug("Exiting with error: ", t);
System.err.println(t.getMessage());
System.exit(1);
}
}
public void setEngineConfigLogic(EngineConfigLogic engineConfigLogic) {
this.engineConfigLogic = engineConfigLogic;
}
public void setParser(EngineConfigCLIParser parser) {
this.parser = parser;
}
public EngineConfigLogic getEngineConfigLogic() {
return instance.engineConfigLogic;
}
public static EngineConfig getInstance() {
return instance;
}
}