From 9d26526f2e27fb1f299eb78c0359a0a351c894df Mon Sep 17 00:00:00 2001 From: Sinisa Veseli <sveseli@aps.anl.gov> Date: Mon, 13 Apr 2015 13:17:04 +0000 Subject: [PATCH] changes needed to allow proper configuration for both DAQ and DS web services --- .../dm/common/utility/configurationManager.py | 93 +++++++++++++------ 1 file changed, 67 insertions(+), 26 deletions(-) diff --git a/src/python/dm/common/utility/configurationManager.py b/src/python/dm/common/utility/configurationManager.py index 9f4afe20..156b73af 100755 --- a/src/python/dm/common/utility/configurationManager.py +++ b/src/python/dm/common/utility/configurationManager.py @@ -36,11 +36,14 @@ 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 = '127.0.0.1' +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_SERVICE_USERNAME = '' -DEFAULT_DM_SERVICE_PASSWORD = '' + +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_DB = 'postgresql' DEFAULT_DM_DB_HOST = '127.0.0.1' @@ -121,8 +124,12 @@ class ConfigurationManager(UserDict.UserDict): self['defaultServicePort'] = DEFAULT_DM_SERVICE_PORT self['defaultServiceHost'] = DEFAULT_DM_SERVICE_HOST self['defaultServiceProtocol'] = DEFAULT_DM_SERVICE_PROTOCOL - self['defaultServiceUsername'] = DEFAULT_DM_SERVICE_USERNAME - self['defaultServicePassword'] = DEFAULT_DM_SERVICE_PASSWORD + + 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['defaultDb'] = DEFAULT_DM_DB self['defaultDbHost'] = DEFAULT_DM_DB_HOST self['defaultDbPort'] = DEFAULT_DM_DB_PORT @@ -147,11 +154,14 @@ class ConfigurationManager(UserDict.UserDict): self.__setFromEnvVar('cherrypyLogFile', 'DM_CHERRYPY_LOG_FILE') self.__setFromEnvVar('cherrypyAccessFile', 'DM_CHERRYPY_ACCESS_FILE') - self.__setFromEnvVar('serviceProtocol', 'DM_SERVICE_PROTOCOL') self.__setFromEnvVar('serviceHost', 'DM_SERVICE_HOST') self.__setFromEnvVar('servicePort', 'DM_SERVICE_PORT') - self.__setFromEnvVar('serviceUsername', 'DM_SERVICE_USERNAME') - self.__setFromEnvVar('servicePassword', 'DM_SERVICE_PASSWORD') + self.__setFromEnvVar('serviceProtocol', 'DM_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('contextRoot', 'DM_CONTEXT_ROOT') @@ -297,7 +307,7 @@ class ConfigurationManager(UserDict.UserDict): return [] @classmethod - def getModuleClassConstructorTuple(cls, value): + def getModuleClassConstructorTuple(cls, value, creatorClass=None): """ Extract (module,class,constructor) tuple from the given value. """ itemList = value.split('(') if not itemList: @@ -306,6 +316,13 @@ class ConfigurationManager(UserDict.UserDict): 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:])) @@ -496,29 +513,53 @@ class ConfigurationManager(UserDict.UserDict): def hasServiceHost(self): return self.has_key('serviceHost') - def getDefaultServiceUsername(self): - return self['defaultServiceUsername'] + 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 setServiceUsername(self, serviceUsername): - self['serviceUsername'] = serviceUsername + def setDsWebServicePort(self, dsWebServicePort): + self['dsWebServicePort'] = dsWebServicePort - def getServiceUsername(self, default='__dm_default__'): - return self.__getKeyValue('serviceUsername', default) + def getDsWebServicePort(self, default='__dm_default__'): + return int(self.__getKeyValue('dsWebServicePort', default)) - def hasServiceUsername(self): - return self.has_key('serviceUsername') + def hasDsWebServicePort(self): + return self.has_key('dsWebServicePort') - def getDefaultServicePassword(self): - return self['defaultServicePassword'] + def getDefaultDsWebServiceHost(self): + return self['defaultDsWebServiceHost'] - def setServicePassword(self, servicePassword): - self['servicePassword'] = servicePassword + def setDsWebServiceHost(self, dsWebServiceHost): + self['dsWebServiceHost'] = dsWebServiceHost - def getServicePassword(self, default='__dm_default__'): - return self.__getKeyValue('servicePassword', default) + def getDsWebServiceHost(self, default='__dm_default__'): + return self.__getKeyValue('dsWebServiceHost', default) - def hasServicePassword(self): - return self.has_key('servicePassword') + def hasDsWebServiceHost(self): + return self.has_key('dsWebServiceHost') def getDefaultDb(self): return self['defaultDb'] -- GitLab