/** * Copyright (c) 2014 Red Hat, Inc. * * This software is licensed to you under the GNU General Public License, * version 2 (GPLv2). There is NO WARRANTY for this software, express or * implied, including the implied warranties of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 * along with this software; if not, see * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. * * Red Hat trademarks are not licensed under GPLv2. No permission is * granted to use or replicate Red Hat trademarks that are incorporated * in this software or its documentation. */ package com.redhat.rhn.domain.common; import com.redhat.rhn.common.db.datasource.DataResult; import com.redhat.rhn.common.db.datasource.ModeFactory; import com.redhat.rhn.common.db.datasource.SelectMode; import com.redhat.rhn.common.db.datasource.WriteMode; import com.redhat.rhn.common.hibernate.HibernateFactory; import org.apache.commons.lang.BooleanUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import java.util.HashMap; import java.util.Map; /** * SatConfigFactory * @version $Rev$ */ public class SatConfigFactory extends HibernateFactory { private static SatConfigFactory singleton = new SatConfigFactory(); private static Logger log = Logger.getLogger(CommonFactory.class); public static final String EXT_AUTH_DEFAULT_ORGID = "extauth_default_orgid"; public static final String EXT_AUTH_USE_ORGUNIT = "extauth_use_orgunit"; public static final String EXT_AUTH_KEEP_ROLES = "extauth_keep_temproles"; private SatConfigFactory() { super(); } @Override protected Logger getLogger() { return log; } /** * return satellite configuration boolean value for a specified key * @param key key * @return value boolean value */ public static boolean getSatConfigBooleanValue(String key) { return BooleanUtils.toBoolean(getSatConfigValue(key)); } /** * return satellite configuration long value for a specified key * @param key key * @return value long value */ public static Long getSatConfigLongValue(String key) { String stringValue = getSatConfigValue(key); if (stringValue != null) { try { return Long.parseLong(stringValue); } catch (NumberFormatException nfe) { log.error("Satellite configuration '" + key + "' value (" + stringValue + ") cannot be converted to Long."); } } return null; } /** * return satellite configuration value for a specified key * @param key key * @return value */ public static String getSatConfigValue(String key) { Map<String, Object> params = new HashMap<String, Object>(); params.put("key", key); SelectMode m = ModeFactory.getMode("util_queries", "get_satconfig_value"); DataResult<Map> dr = m.execute(params); if (!dr.isEmpty()) { return (String) dr.get(0).get("value"); } log.error("'" + key + "' not found within the satellite configuration."); return null; } /** * set a satellite configuration value for a specified key * @param key key * @param value value */ public static void setSatConfigValue(String key, String value) { Map<String, Object> params = new HashMap<String, Object>(); params.put("key", key); if (StringUtils.isEmpty(value)) { params.put("value", null); } else { params.put("value", value); } WriteMode m = ModeFactory.getWriteMode("util_queries", "set_satconfig_value"); m.executeUpdate(params); } /** * set a satellite configuration value for a specified key * @param key key * @param value value */ public static void setSatConfigBooleanValue(String key, Boolean value) { if (value == null) { setSatConfigValue(key, Boolean.FALSE.toString()); } else { setSatConfigValue(key, value.toString()); } } /** * reset a satellite configuration value to a default value for a specified key * @param key key */ public static void resetSatConfigDefaultValue(String key) { Map<String, Object> params = new HashMap<String, Object>(); params.put("key", key); WriteMode m = ModeFactory.getWriteMode("util_queries", "reset_satconfig_default_value"); m.executeUpdate(params); } }