def __init__(self,iConfig={}): """ Read and parse content of configuration file The following syntax is supported in configuration file: # ESDB configuration file login:password # ESDB Master Comments are started with '#' letter. User can specify login and password to provide access to underlying DB, if SQLite is used they're ignored. If DBS_CLIENT_CONFIG is noty set then the configuration is not attempted to be read. """ uFileName="" iList=['url','alias','log','level', 'version','clienttype','verbose','mode','dbshome','javahome','adshome','retry'] #iList=['user','password','driver','url','host','port','log','level', 'servlet','version','dbname','dbsDB','clienttype', 'dbtype','verbose','mode', 'dbshome', 'javahome', 'adshome','retry'] self.configDict={} #for item in iList: #print item # if iConfig.has_key(item) and iConfig[item]: # self.configDict[item] = iConfig[item] if os.environ.has_key('DBS_CLIENT_CONFIG'): if not os.path.isfile(os.environ['DBS_CLIENT_CONFIG']): raise DbsException(args="The '%s' config file does not exists"%os.environ['DBS_CLIENT_CONFIG']) uFileName=os.environ['DBS_CLIENT_CONFIG'] #else: # raise DbsException(args="No DBS_CLIENT_CONFIG environment is defined") #else: # uFileName = os.path.normpath(os.environ["HOME"]+"/.dbs.conf") self.configFile=uFileName if not os.path.isfile(uFileName): raise DbsException(args="The DBS_CLIENT_CONFIG='%s' config file does not exists"%uFileName) #mode = os.stat(uFileName)[stat.ST_MODE] #if mode!=33152: # mode is not -rw------- #print "WARNING: permission of %s is set to 0600 mode (-rw-------)"%uFileName #os.chmod(uFileName,0600) print "" #login = masterHost = masterName = masterPort = masterSocket = admin = "" for read in open(uFileName).readlines(): line = string.split(read,"\n")[0] line = line.strip() if not len(line): continue if line[0]=="#": continue for item in iList: keyword=string.upper(item) if re.search(keyword,line): #print item, line, keyword self.configDict[item] = string.split(line,"%s="%keyword)[1] #if iConfig.has_key(item) and iConfig[item]: # self.configDict[item] = iConfig[item] # Over-write the values from the Passed in dict. OR use them if no config file is specified for item in iList: if iConfig.has_key(item) and iConfig[item]: self.configDict[item] = iConfig[item]
def javahome(self): if not self.configDict.has_key('javahome'): raise DbsException(args="DBS configuration missing javahome parameter") return self.configDict['javahome']
def version(self): if not self.configDict.has_key('version'): raise DbsException(args="DBS configuration missing (Clent API) version parameter") return self.configDict['version']
def clienttype(self): if not self.configDict.has_key('clienttype'): raise DbsException(args="DBS configuration missing user_type parameter") return self.configDict['clienttype']
def mode(self): if not self.configDict.has_key('mode'): raise DbsException(args="DBS configuration missing mode parameter") return self.configDict['mode']
def retry(self): if not self.configDict.has_key('retry'): raise DbsException(args="DBS configuration missing retry parameter") return self.configDict['retry']
def loglevel(self): if not self.configDict.has_key('level'): raise DbsException(args="DBS configuration missing log level parameter") return self.configDict['level']
def url(self): if not self.configDict.has_key('url'): raise DbsException(args="DBS configuration missing url/alias parameter") return self.configDict['url']
def __init__ (self, **kwargs): DbsException.__init__(self, **kwargs)
def __init__ (self, **kwargs): """ Initialization. """ DbsException.__init__(self, **kwargs) msg = "\nCaught API Exception %s: %s " % (self.getClassName(), self.getErrorMessage() ) if self.getErrorCode() not in (None, ""): msg += "\nDBS Exception Error Code: %s " % str(self.getErrorCode())