package org.ovirt.engine.core.utils.kerberos; import java.io.IOException; import org.apache.log4j.Logger; import org.ovirt.engine.core.common.config.ConfigValues; public class ConfigurationProvider { private String AdUserName; private String AdUserPassword; private String DomainName; private String LDAPSecurityAuthentication; private String LdapServers; private String AdUserId; private String engineConfigExecutable; private String engineConfigProperties; private final static Logger log = Logger.getLogger(ManageDomainsDAOImpl.class); public ConfigurationProvider(String adUserName, String adUserPassword, String domainName, String ldapSecurityAuthentication, String ldapServers, String adUserId, String engineConfigExecutable, String engineConfigProperties) { super(); AdUserName = adUserName; AdUserPassword = adUserPassword; DomainName = domainName; LDAPSecurityAuthentication = ldapSecurityAuthentication; LdapServers = ldapServers; AdUserId = adUserId; this.engineConfigExecutable = engineConfigExecutable; this.engineConfigProperties = engineConfigProperties; } public String getConfigValue(ConfigValues enumValue) { if (enumValue.equals(ConfigValues.AdUserName)) { return AdUserName; } else if (enumValue.equals(ConfigValues.AdUserPassword)) { return AdUserPassword; } else if (enumValue.equals(ConfigValues.LDAPSecurityAuthentication)) { return LDAPSecurityAuthentication; } else if (enumValue.equals(ConfigValues.DomainName)) { return DomainName; } else if (enumValue.equals(ConfigValues.LdapServers)) { return LdapServers; } else if (enumValue.equals(ConfigValues.AdUserId)) { return AdUserId; } else { return ""; } } public ManageDomainsResult setConfigValue(ConfigValues enumValue, String value, String loggingValue) { log.info("Setting value for " + enumValue.toString() + " to " + loggingValue); try { Process engineConfigProcess = Runtime.getRuntime().exec(engineConfigExecutable + " -s " + enumValue.name() + "=" + value + " -p " + engineConfigProperties); int retVal = engineConfigProcess.waitFor(); if (retVal != 0) { return new ManageDomainsResult(ManageDomainsResultEnum.FAILED_SETTING_CONFIGURATION_VALUE_FOR_OPTION, enumValue.name()); } return new ManageDomainsResult(ManageDomainsResultEnum.OK); } catch (IOException e) { return new ManageDomainsResult(ManageDomainsResultEnum.FAILED_SETTING_CONFIGURATION_VALUE_FOR_OPTION_WITH_DETAILS, new String[] { enumValue.name(), e.getMessage() }); } catch (InterruptedException e) { return new ManageDomainsResult(ManageDomainsResultEnum.FAILED_SETTING_CONFIGURATION_VALUE_FOR_OPTION_WITH_DETAILS, new String[] { enumValue.name(), e.getMessage() }); } } }