package org.ovirt.engine.ssoreg.core;
import java.io.File;
import java.util.Map;
import org.ovirt.engine.core.uutils.config.ShellLikeConfd;
/**
* This class stores the local configuration (understanding local as the
* configuration of the local machine, as opposed to the global configuration
* stored in the database) of the engine loaded from the file specified by the
* <code>ENGINE_VARS</code> environment variable.
*/
public class SsoLocalConfig extends ShellLikeConfd {
// Default files for defaults and overridden values:
private static final String DEFAULTS_PATH = "/usr/share/ovirt-engine/conf/engine.conf.defaults";
private static final String VARS_PATH = "/etc/ovirt-engine/engine.conf";
// This is a singleton and this is the instance:
private static volatile SsoLocalConfig instance;
public static SsoLocalConfig getInstance() {
return getInstance(null);
}
public static SsoLocalConfig getInstance(Map<String, String> values) {
if (values != null) {
instance = new SsoLocalConfig(values);
}
else {
if (instance == null) {
synchronized(SsoLocalConfig.class) {
if (instance == null) {
instance = new SsoLocalConfig();
}
}
}
}
return instance;
}
protected SsoLocalConfig(Map<String, String> values) {
setConfig(values);
}
private SsoLocalConfig() {
String v;
String defaultsPath = System.getProperty("ovirt-engine.config.defaults", DEFAULTS_PATH);
v = System.getenv("ENGINE_DEFAULTS");
if (v != null) {
defaultsPath = v;
}
String varsPath = System.getProperty("ovirt-engine.config.vars", VARS_PATH);
v = System.getenv("ENGINE_VARS");
if (v != null) {
varsPath = v;
}
loadConfig(defaultsPath, varsPath);
}
public File getLogDir() {
return getFile("ENGINE_LOG");
}
public File getTmpDir() {
return getFile("ENGINE_TMP");
}
}