Forked from
DM / dm-docs
261 commits behind, 445 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
configurationManager.py 27.95 KiB
#!/usr/bin/env python
#
# Configuration manager singleton.
#
#######################################################################
import os
import socket
import pwd
import UserDict
import ConfigParser
from dm.common.constants import dmServiceConstants
from dm.common.exceptions.configurationError import ConfigurationError
#######################################################################
# Defaults.
DEFAULT_DM_ROOT_DIR = '/opt/dm'
DEFAULT_DM_INSTALL_DIR = '%s' # requires install dir
DEFAULT_DM_CONFIG_FILE = '%s/etc/%s.%s.conf' # requires install dir/db name/service name
DEFAULT_DM_SERVICE_NAME= 'web-service'
DEFAULT_DM_LOG_FILE = '%s/var/log/%s.%s.log' # requires install dir/db name/service name
DEFAULT_DM_CONSOLE_LOG_LEVEL = 'CRITICAL'
DEFAULT_DM_FILE_LOG_LEVEL = 'INFO'
#DEFAULT_DM_LOG_RECORD_FORMAT = '%(asctime)s,%(msecs)03d [%(levelname)s] %(module)s:%(lineno)d %(user)s@%(host)s %(name)s (%(process)d): %(message)s'
#DEFAULT_DM_LOG_RECORD_FORMAT = '%(asctime)s,%(msecs)03d %(levelname)s %(module)s:%(lineno)d %(process)d: %(message)s'
DEFAULT_DM_LOG_RECORD_FORMAT = '%(asctime)s,%(msecs)03d %(levelname)s %(process)d: %(message)s'
DEFAULT_DM_LOG_DATE_FORMAT = '%Y-%m-%d %H:%M:%S'
DEFAULT_DM_CHERRYPY_LOG_LEVEL = 'ERROR'
DEFAULT_DM_CHERRYPY_LOG_FILE = '%s/var/log/%s.%s.cherrypy.error' # requires install dir/db name/service name
DEFAULT_DM_CHERRYPY_ACCESS_FILE = '%s/var/log/%s.%s.cherrypy.access' # requires install dir/db name/service name
DEFAULT_DM_SERVICE_PORT = 22236 # 222DM
DEFAULT_DM_SERVICE_HOST = '0.0.0.0'
DEFAULT_DM_SERVICE_PROTOCOL = dmServiceConstants.DM_SERVICE_PROTOCOL_HTTP
DEFAULT_DM_WEB_SERVICE_PROTOCOL = DEFAULT_DM_SERVICE_PROTOCOL
DEFAULT_DM_DS_WEB_SERVICE_PORT = 22236 # 222DM
DEFAULT_DM_DS_WEB_SERVICE_HOST = '127.0.0.1'
DEFAULT_DM_DAQ_WEB_SERVICE_PORT = 33336 # 333DM
DEFAULT_DM_DAQ_WEB_SERVICE_HOST = '127.0.0.1'
DEFAULT_DM_CAT_WEB_SERVICE_PORT = 44436 # 444DM
DEFAULT_DM_CAT_WEB_SERVICE_HOST = '127.0.0.1'
DEFAULT_DM_DB = 'postgresql'
DEFAULT_DM_DB_HOST = '127.0.0.1'
DEFAULT_DM_DB_PORT = 11136
DEFAULT_DM_DB_PASSWORD = ''
DEFAULT_DM_DB_NAME = 'dm'
DEFAULT_DM_DB_SCHEMA = DEFAULT_DM_DB_NAME
DEFAULT_DM_DB_USER = DEFAULT_DM_DB_NAME
DEFAULT_DM_DB_PASSWORD_FILE = '%s/etc/%s.db.passwd' # requires install dir/db name
DEFAULT_DM_CONTEXT_ROOT = '/dm'
# Session cache file
DEFAULT_DM_SESSION_CACHE_FILE = None
# Enforce session credentials.
DEFAULT_DM_REQUIRE_SESSION_CREDENTIALS = False
# SSL variables
DEFAULT_DM_SSL_CA_CERT_FILE = None
DEFAULT_DM_SSL_CERT_FILE = None
DEFAULT_DM_SSL_KEY_FILE = None
# Login (user|password) file
DEFAULT_DM_LOGIN_FILE = None
class ConfigurationManager(UserDict.UserDict):
"""
Singleton class used for keeping system configuration data. The class
initializes its data using predefined defaults, or from certain
environment variables.
Usage:
from dm.common.utility import configurationManager
cm = configurationManager.getInstance()
cm.setConsoleLogLevel('info')
level = cm.getConsoleLogLevel()
cm['myKey'] = 'myValue'
value = cm.get('myKey')
"""
# Get singleton instance.
@classmethod
def getInstance(cls):
""" Get configuration manager singleton instance. """
from dm.common.utility.configurationManager import ConfigurationManager
try:
cm = ConfigurationManager()
except ConfigurationManager, ex:
cm = ex
return cm
# Singleton.
__instance = None
def __init__(self):
if ConfigurationManager.__instance:
raise ConfigurationManager.__instance
ConfigurationManager.__instance = self
UserDict.UserDict.__init__(self)
self['user'] = pwd.getpwuid(os.getuid())[0]
self['host'] = socket.gethostname()
self['defaultRootDir'] = DEFAULT_DM_ROOT_DIR
self.__setFromEnvVar('rootDir', 'DM_ROOT_DIR')
self['defaultInstallDir'] = DEFAULT_DM_INSTALL_DIR % self.getRootDir()
self.__setFromEnvVar('installDir', 'DM_INSTALL_DIR')
self['defaultServiceName'] = DEFAULT_DM_SERVICE_NAME
self.__setFromEnvVar('serviceName', 'DM_SERVICE_NAME')
self['defaultDbName'] = DEFAULT_DM_DB_NAME
self.__setFromEnvVar('dbName', 'DM_DB_NAME')
self.__resetDynamicDefaults()
self['defaultConsoleLogLevel'] = DEFAULT_DM_CONSOLE_LOG_LEVEL
self['defaultFileLogLevel'] = DEFAULT_DM_FILE_LOG_LEVEL
self['defaultLogRecordFormat'] = DEFAULT_DM_LOG_RECORD_FORMAT
self['defaultLogDateFormat'] = DEFAULT_DM_LOG_DATE_FORMAT
self['defaultCherrypyLogLevel'] = DEFAULT_DM_CHERRYPY_LOG_LEVEL
self['defaultServicePort'] = DEFAULT_DM_SERVICE_PORT
self['defaultServiceHost'] = DEFAULT_DM_SERVICE_HOST
self['defaultServiceProtocol'] = DEFAULT_DM_SERVICE_PROTOCOL
self['defaultWebServiceProtocol'] = DEFAULT_DM_WEB_SERVICE_PROTOCOL
self['defaultDaqWebServicePort'] = DEFAULT_DM_DAQ_WEB_SERVICE_PORT
self['defaultDaqWebServiceHost'] = DEFAULT_DM_DAQ_WEB_SERVICE_HOST
self['defaultDsWebServicePort'] = DEFAULT_DM_DS_WEB_SERVICE_PORT
self['defaultDsWebServiceHost'] = DEFAULT_DM_DS_WEB_SERVICE_HOST
self['defaultCatWebServicePort'] = DEFAULT_DM_CAT_WEB_SERVICE_PORT
self['defaultCatWebServiceHost'] = DEFAULT_DM_CAT_WEB_SERVICE_HOST
self['defaultDb'] = DEFAULT_DM_DB
self['defaultDbHost'] = DEFAULT_DM_DB_HOST
self['defaultDbPort'] = DEFAULT_DM_DB_PORT
self['defaultDbPassword'] = DEFAULT_DM_DB_PASSWORD
self['defaultContextRoot'] = DEFAULT_DM_CONTEXT_ROOT
self['defaultSessionCacheFile'] = DEFAULT_DM_SESSION_CACHE_FILE
self['defaultRequireSessionCredentials'] = DEFAULT_DM_REQUIRE_SESSION_CREDENTIALS
self['defaultSslCaCertFile'] = DEFAULT_DM_SSL_CA_CERT_FILE
self['defaultSslCertFile'] = DEFAULT_DM_SSL_CERT_FILE
self['defaultSslKeyFile'] = DEFAULT_DM_SSL_KEY_FILE
self['defaultLoginFile'] = DEFAULT_DM_LOGIN_FILE
# Settings that might come from environment variables.
self.__setFromEnvVar('logFile', 'DM_LOG_FILE')
self.__setFromEnvVar('consoleLogLevel', 'DM_CONSOLE_LOG_LEVEL')
self.__setFromEnvVar('fileLogLevel', 'DM_FILE_LOG_LEVEL')
self.__setFromEnvVar('logRecordFormat', 'DM_LOG_RECORD_FORMAT')
self.__setFromEnvVar('logDateFormat', 'DM_LOG_DATE_FORMAT')
self.__setFromEnvVar('cherrypyLogLevel', 'DM_CHERRYPY_LOG_LEVEL')
self.__setFromEnvVar('cherrypyLogFile', 'DM_CHERRYPY_LOG_FILE')
self.__setFromEnvVar('cherrypyAccessFile', 'DM_CHERRYPY_ACCESS_FILE')
self.__setFromEnvVar('serviceHost', 'DM_SERVICE_HOST')
self.__setFromEnvVar('servicePort', 'DM_SERVICE_PORT')
self.__setFromEnvVar('serviceProtocol', 'DM_SERVICE_PROTOCOL')
self.__setFromEnvVar('webServiceProtocol', 'DM_WEB_SERVICE_PROTOCOL')
self.__setFromEnvVar('daqWebServiceHost', 'DM_DAQ_WEB_SERVICE_HOST')
self.__setFromEnvVar('daqWebServicePort', 'DM_DAQ_WEB_SERVICE_PORT')
self.__setFromEnvVar('dsWebServiceHost', 'DM_DS_WEB_SERVICE_HOST')
self.__setFromEnvVar('dsWebServicePort', 'DM_DS_WEB_SERVICE_PORT')
self.__setFromEnvVar('catWebServiceHost', 'DM_CAT_WEB_SERVICE_HOST')
self.__setFromEnvVar('catWebServicePort', 'DM_CAT_WEB_SERVICE_PORT')
self.__setFromEnvVar('contextRoot', 'DM_CONTEXT_ROOT')
self.__setFromEnvVar('sessionCacheFile', 'DM_SESSION_CACHE_FILE')
self.__setFromEnvVar('sslCaCertFile', 'DM_SSL_CA_CERT_FILE')
self.__setFromEnvVar('sslCertFile', 'DM_SSL_CERT_FILE')
self.__setFromEnvVar('sslKeyFile', 'DM_SSL_KEY_FILE')
self.__setFromEnvVar('configFile', 'DM_CONFIG_FILE')
self.__setFromEnvVar('dbPasswordFile', 'DM_DB_PASSWORD_FILE')
self.__setFromEnvVar('loginFile', 'DM_LOGIN_FILE')
# Settings that might come from file.
self.__setFromVarFile('dbPassword', self.getDbPasswordFile())
# Variables we do not keep in a dictionary
self.configParser = None
# Reset defaults that depend on install dir and service name
def __resetDynamicDefaults(self):
self['defaultConfigFile'] = DEFAULT_DM_CONFIG_FILE % (self.getInstallDir(), self.getDbName(), self.getServiceName())
self['defaultLogFile'] = DEFAULT_DM_LOG_FILE % (self.getInstallDir(), self.getDbName(), self.getServiceName())
self['defaultCherrypyAccessFile'] = DEFAULT_DM_CHERRYPY_ACCESS_FILE % (self.getInstallDir(), self.getDbName(), self.getServiceName())
self['defaultCherrypyLogFile'] = DEFAULT_DM_CHERRYPY_LOG_FILE % (self.getInstallDir(), self.getDbName(), self.getServiceName())
self['defaultDbUser'] = self.getDbName()
self['defaultDbSchema'] = self.getDbName()
self['defaultDbPasswordFile'] = DEFAULT_DM_DB_PASSWORD_FILE % (self.getInstallDir(), self.getDbName())
# This function will ignore errors if environment variable is not set.
def __setFromEnvVar(self, key, envVar):
"""
Set value for the specified key from a given environment variable.
This function ignores errors for env. variables that are not set.
"""
try:
self[key] = os.environ[envVar]
except:
pass
# This function will ignore errors if variable file is not present.
def __setFromVarFile(self, key, varFile):
"""
Set value for the specified key from a given file. The first line
in the file is variable value.
This function ignores errors.
"""
try:
v = open(varFile, 'r').readline()
self[key] = v.lstrip().rstrip()
except Exception, ex:
pass
def __getKeyValue(self, key, default='__dm_default__'):
"""
Get value for a given key.
Keys will be of the form 'logFile', and the default keys have
the form 'defaultLogFile'.
"""
defaultKey = "default" + key[0].upper() + key[1:]
defaultValue = self.get(defaultKey, None)
if default != '__dm_default__':
defaultValue = default
return self.get(key, defaultValue)
def setOptionsFromConfigFile(self, configSection, keyList, configFile=None):
_configFile = configFile
if _configFile is None:
_configFile = self.getConfigFile()
if _configFile is not None and os.path.exists(_configFile):
configParser = ConfigParser.RawConfigParser()
configParser.read(_configFile)
if not configParser.has_section(configSection):
return
for key in keyList:
if configParser.has_option(configSection, key):
self[key] = configParser.get(configSection, key)
def clearConfigParser(self):
self.configParser = None
def getConfigParser(self, defaults={}):
if self.configParser is None:
configFile = self.getConfigFile()
if os.path.exists(configFile):
self.configParser = ConfigParser.ConfigParser(defaults)
self.configParser.read(configFile)
self.configParser.defaults = defaults
return self.configParser
def setConfigDefaults(self, defaults={}):
configParser = self.getConfigParser()
if configParser is not None:
configParser.defaults = defaults
def getConfigOption(self, configSection, key, defaultValue=None):
configParser = self.getConfigParser()
if self.hasConfigSection(configSection):
try:
return configParser.get(configSection, key)
except ConfigParser.NoOptionError, ex:
# ok, return default value
pass
return defaultValue
def getConfigSections(self):
configParser = self.getConfigParser()
if configParser is not None:
return configParser.sections()
return []
def hasConfigSection(self, name):
configSections = self.getConfigSections()
if name in configSections:
return True
return False
def getConfigItems(self, configSection):
configParser = self.getConfigParser()
if configParser is not None and configParser.has_section(configSection):
return configParser.items(configSection)
return []
@classmethod
def getConfigParserFromConfigFile(cls, configFile):
if not os.path.exists(configFile):
return None
configParser = ConfigParser.RawConfigParser()
configParser.read(configFile)
return configParser
@classmethod
def getOptionFromConfigParser(cls, configParser, configSection, key, defaultValue=None):
if configParser is not None and configParser.has_section(configSection):
return configParser.get(configSection, key)
else:
return defaultValue
@classmethod
def getConfigSectionsFromConfigParser(cls, configParser):
if configParser is not None:
return configParser.sections()
return []
@classmethod
def getModuleClassConstructorTuple(cls, value, creatorClass=None):
""" Extract (module,class,constructor) tuple from the given value. """
itemList = value.split('(')
if not itemList:
return ()
itemList2 = itemList[0].split('.')
moduleNameList = itemList2[0:-1]
className = itemList2[-1]
moduleName = className[0].lower() + className[1:]
# If module name list is empty, use convention
# for determining import module name (use creator class module)
if not len(moduleNameList) and creatorClass is not None:
moduleNameList = creatorClass.__module__.split('.')
moduleNameList[-1] = moduleName
if len(moduleNameList):
moduleName = '.'.join(moduleNameList)
constructor = '%s(%s' % (className, ''.join(itemList[1:]))
return (moduleName,className,constructor)
def getHost(self):
return self['host']
def getUser(self):
return self['user']
def getDefaultRootDir(self):
return self['defaultRootDir']
def setRootDir(self, rootDir):
self['rootDir'] = rootDir
def getRootDir(self, default='__dm_default__'):
return self.__getKeyValue('rootDir', default)
def getDefaultInstallDir(self):
return self['defaultInstallDir']
def setInstallDir(self, installDir):
self['installDir'] = installDir
self.__resetDynamicDefaults()
def getInstallDir(self, default='__dm_default__'):
return self.__getKeyValue('installDir', default)
def getDefaultServiceName(self):
return self['defaultServiceName']
def setServiceName(self, serviceName):
self['serviceName'] = serviceName
self.__resetDynamicDefaults()
def getServiceName(self, default='__dm_default__'):
return self.__getKeyValue('serviceName', default)
def getDefaultDbName(self):
return self['defaultDbName']
def setDbName(self, dbName):
self['dbName'] = dbName
self.__resetDynamicDefaults()
def getDbName(self, default='__dm_default__'):
return self.__getKeyValue('dbName', default)
def getDefaultLogFile(self):
return self['defaultLogFile']
def setLogFile(self, logFile):
self['logFile'] = logFile
def getLogFile(self, default='__dm_default__'):
return self.__getKeyValue('logFile', default)
def hasLogFile(self):
return self.has_key('logFile')
def getDefaultConsoleLogLevel(self):
return self['defaultConsoleLogLevel']
def setConsoleLogLevel(self, level):
self['consoleLogLevel'] = level
def getConsoleLogLevel(self, default='__dm_default__'):
return self.__getKeyValue('consoleLogLevel', default)
def getConsoleLogLevelFromEnvVar(self):
return os.environ.get('DM_CONSOLE_LOG_LEVEL')
def hasConsoleLogLevel(self):
return self.has_key('consoleLogLevel')
def getDefaultFileLogLevel(self):
return self['defaultFileLogLevel']
def setFileLogLevel(self, level):
self['fileLogLevel'] = level
def getFileLogLevel(self, default='__dm_default__'):
return self.__getKeyValue('fileLogLevel', default)
def hasFileLogLevel(self):
return self.has_key('fileLogLevel')
def getDefaultLogRecordFormat(self):
return self['defaultLogRecordFormat']
def setLogRecordFormat(self, format):
self['logRecordFormat'] = format
def getLogRecordFormat(self, default='__dm_default__'):
return self.__getKeyValue('logRecordFormat', default)
def hasLogRecordFormat(self):
return self.has_key('logRecordFormat')
def getDefaultLogDateFormat(self):
return self['defaultLogDateFormat']
def setLogDateFormat(self, format):
self['logDateFormat'] = format
def getLogDateFormat(self, default='__dm_default__'):
return self.__getKeyValue('logDateFormat', default)
def hasLogDateFormat(self):
return self.has_key('logDateFormat')
def getDefaultCherrypyLogLevel(self):
return self['defaultCherrypyLogLevel']
def setCherrypyLogLevel(self, level):
self['cherrypyLogLevel'] = level
def getCherrypyLogLevel(self, default='__dm_default__'):
return self.__getKeyValue('cherrypyLogLevel', default)
def hasCherrypyLogLevel(self):
return self.has_key('cherrypyLogLevel')
def getDefaultCherrypyLogCherrypy(self):
return self['defaultCherrypyLogFile']
def setCherrypyLogFile(self, cherrypyLogFile):
self['cherrypyLogFile'] = cherrypyLogFile
def getCherrypyLogFile(self, default='__dm_default__'):
return self.__getKeyValue('cherrypyLogFile', default)
def hasCherrypyLogFile(self):
return self.has_key('cherrypyLogFile')
def getDefaultCherrypyAccessFile(self):
return self['defaultCherrypyAccessFile']
def setCherrypyAccessFile(self, cherrypyAccessFile):
self['cherrypyAccessFile'] = cherrypyAccessFile
def getCherrypyAccessFile(self, default='__dm_default__'):
return self.__getKeyValue('cherrypyAccessFile', default)
def hasCherrypyAccessFile(self):
return self.has_key('cherrypyAccessFile')
def isDbAvailable(self):
if os.access(self.getDbPasswordFile(), os.R_OK):
return True
return False
def getDefaultServiceProtocol(self):
return self['defaultServiceProtocol']
def setServiceProtocol(self, serviceProtocol):
self['serviceProtocol'] = serviceProtocol
def getServiceProtocol(self, default='__dm_default__'):
return self.__getKeyValue('serviceProtocol', default)
def hasServiceProtocol(self):
return self.has_key('serviceProtocol')
def getDefaultServicePort(self):
return self['defaultServicePort']
def setServicePort(self, servicePort):
self['servicePort'] = servicePort
def getServicePort(self, default='__dm_default__'):
return int(self.__getKeyValue('servicePort', default))
def hasServicePort(self):
return self.has_key('servicePort')
def getDefaultServiceHost(self):
return self['defaultServiceHost']
def setServiceHost(self, serviceHost):
self['serviceHost'] = serviceHost
def getServiceHost(self, default='__dm_default__'):
return self.__getKeyValue('serviceHost', default)
def hasServiceHost(self):
return self.has_key('serviceHost')
def getDefaultWebServiceProtocol(self):
return self['defaultWebServiceProtocol']
def setWebServiceProtocol(self, webServiceProtocol):
self['webServiceProtocol'] = webServiceProtocol
def getWebServiceProtocol(self, default='__dm_default__'):
return self.__getKeyValue('webServiceProtocol', default)
def hasWebServiceProtocol(self):
return self.has_key('webServiceProtocol')
def getDefaultDaqWebServicePort(self):
return self['defaultDaqWebServicePort']
def setDaqWebServicePort(self, daqWebServicePort):
self['daqWebServicePort'] = daqWebServicePort
def getDaqWebServicePort(self, default='__dm_default__'):
return int(self.__getKeyValue('daqWebServicePort', default))
def hasDaqWebServicePort(self):
return self.has_key('daqWebServicePort')
def getDefaultDaqWebServiceHost(self):
return self['defaultDaqWebServiceHost']
def setDaqWebServiceHost(self, daqWebServiceHost):
self['daqWebServiceHost'] = daqWebServiceHost
def getDaqWebServiceHost(self, default='__dm_default__'):
return self.__getKeyValue('daqWebServiceHost', default)
def hasDaqWebServiceHost(self):
return self.has_key('daqWebServiceHost')
def getDefaultDsWebServicePort(self):
return self['defaultDsWebServicePort']
def setDsWebServicePort(self, dsWebServicePort):
self['dsWebServicePort'] = dsWebServicePort
def getDsWebServicePort(self, default='__dm_default__'):
return int(self.__getKeyValue('dsWebServicePort', default))
def hasDsWebServicePort(self):
return self.has_key('dsWebServicePort')
def getDefaultDsWebServiceHost(self):
return self['defaultDsWebServiceHost']
def setDsWebServiceHost(self, dsWebServiceHost):
self['dsWebServiceHost'] = dsWebServiceHost
def getDsWebServiceHost(self, default='__dm_default__'):
return self.__getKeyValue('dsWebServiceHost', default)
def hasDsWebServiceHost(self):
return self.has_key('dsWebServiceHost')
def getDefaultCatWebServicePort(self):
return self['defaultCatWebServicePort']
def setCatWebServicePort(self, catWebServicePort):
self['catWebServicePort'] = catWebServicePort
def getCatWebServicePort(self, default='__dm_default__'):
return int(self.__getKeyValue('catWebServicePort', default))
def hasCatWebServicePort(self):
return self.has_key('catWebServicePort')
def getDefaultCatWebServiceHost(self):
return self['defaultCatWebServiceHost']
def setCatWebServiceHost(self, catWebServiceHost):
self['catWebServiceHost'] = catWebServiceHost
def getCatWebServiceHost(self, default='__dm_default__'):
return self.__getKeyValue('catWebServiceHost', default)
def hasCatWebServiceHost(self):
return self.has_key('catWebServiceHost')
def getDefaultDb(self):
return self['defaultDb']
def setDb(self, db):
self['db'] = db
def getDb(self, default='__dm_default__'):
return self.__getKeyValue('db', default)
def hasDb(self):
return self.has_key('db')
def getDefaultDbHost(self):
return self['defaultDbHost']
def setDbHost(self, dbHost):
self['dbHost'] = dbHost
def getDbHost(self, default='__dm_default__'):
return self.__getKeyValue('dbHost', default)
def hasDbHost(self):
return self.has_key('dbHost')
def getDefaultDbPort(self):
return self['defaultDbPort']
def setDbPort(self, dbPort):
self['dbPort'] = dbPort
def getDbPort(self, default='__dm_default__'):
return self.__getKeyValue('dbPort', default)
def hasDbPort(self):
return self.has_key('dbPort')
def getDefaultDbPassword(self):
return self['defaultDbPassword']
def setDbPassword(self, dbPassword):
self['dbPassword'] = dbPassword
def getDbPassword(self, default='__dm_default__'):
return self.__getKeyValue('dbPassword', default)
def hasDbPassword(self):
return self.has_key('dbPassword')
def getDefaultDbPasswordFile(self):
return self['defaultDbPasswordFile']
def getDbPasswordFile(self, default='__dm_default__'):
return self.__getKeyValue('dbPasswordFile', default)
def setDbPasswordFile(self, f):
self['dbPasswordFile'] = f
def hasDbPasswordFile(self):
return self.has_key('dbPasswordFile')
def getDefaultDbUser(self):
return self['defaultDbUser']
def getDbUser(self, default='__dm_default__'):
return self.__getKeyValue('dbUser', default)
def setDbUser(self, dbUser):
self['dbUser'] = dbUser
def hasDbUser(self):
return self.has_key('dbUser')
def getDbSchema(self, default='__dm_default__'):
return self.__getKeyValue('dbSchema', default)
def getDefaultConfigFile(self):
return self['defaultConfigFile']
def setConfigFile(self, configFile):
self['configFile'] = configFile
# Must reinitialize config parser at this point
self.configParser = None
def getConfigFile(self, default='__dm_default__'):
return self.__getKeyValue('configFile', default)
def hasConfigFile(self):
return self.has_key('configFile')
def getDefaultContextRoot(self):
return self['defaultContextRoot']
def setContextRoot(self, contextRoot):
self['contextRoot'] = contextRoot
def getContextRoot(self, default='__dm_default__'):
return self.__getKeyValue('contextRoot', default)
def hasContextRoot(self):
return self.has_key('contextRoot')
def getDefaultSessionCacheFile(self):
return self['defaultSessionCacheFile']
def setSessionCacheFile(self, sessionCacheFile):
self['sessionCacheFile'] = sessionCacheFile
def getSessionCacheFile(self, default='__dm_default__'):
return self.__getKeyValue('sessionCacheFile', default)
def hasSessionCacheFile(self):
return self.has_key('sessionCacheFile')
def getDefaultRequireSessionCredentials(self):
return self['defaultRequireSessionCredentials']
def setRequireSessionCredentials(self, requireSessionCredentials):
self['requireSessionCredentials'] = requireSessionCredentials
def getRequireSessionCredentials(self, default='__dm_default__'):
return self.__getKeyValue('requireSessionCredentials', default)
def hasRequireSessionCredentials(self):
return self.has_key('requireSessionCredentials')
def getDefaultSslCaCertFile(self):
return self['defaultSslCaCertFile']
def setSslCaCertFile(self, sslCaCertFile):
self['sslCaCertFile'] = sslCaCertFile
def getSslCaCertFile(self, default='__dm_default__'):
return self.__getKeyValue('sslCaCertFile', default)
def hasSslCaCertFile(self):
return self.has_key('sslCaCertFile')
def getDefaultSslCertFile(self):
return self['defaultSslCertFile']
def setSslCertFile(self, sslCertFile):
self['sslCertFile'] = sslCertFile
def getSslCertFile(self, default='__dm_default__'):
return self.__getKeyValue('sslCertFile', default)
def hasSslCertFile(self):
return self.has_key('sslCertFile')
def getDefaultSslKeyFile(self):
return self['defaultSslKeyFile']
def setSslKeyFile(self, sslKeyFile):
self['sslKeyFile'] = sslKeyFile
def getSslKeyFile(self, default='__dm_default__'):
return self.__getKeyValue('sslKeyFile', default)
def hasSslKeyFile(self):
return self.has_key('sslKeyFile')
def getDefaultUsername(self):
return self['defaultUsername']
def setUsername(self, username):
self['username'] = username
def getUsername(self, default='__dm_default__'):
return self.__getKeyValue('username', default)
def hasUsername(self):
return self.has_key('username')
def getDefaultPassword(self):
return self['defaultPassword']
def setPassword(self, password):
self['password'] = password
def getPassword(self, default='__dm_default__'):
return self.__getKeyValue('password', default)
def hasPassword(self):
return self.has_key('password')
def getDefaultLoginFile(self):
return self['defaultLoginFile']
def getLoginFile(self, default='__dm_default__'):
return self.__getKeyValue('loginFile', default)
def setLoginFile(self, f):
self['loginFile'] = f
def hasLoginFile(self):
return self.has_key('loginFile')
#######################################################################
# Testing.
if __name__ == '__main__':
cm = ConfigurationManager.getInstance()
print cm