#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
#-------------------------------------------------------------------------------
|
#
|
|
from DBCommon import GlobalFunctions
|
import traceback
|
import ConfigParser
|
import os
|
|
from DBCommon import error
|
from Common import mylog
|
|
#ÅäÖÃ×Öµä
|
#¸ñʽ£ºkeyname:[defvalue, secionname]£¬ÐÂÔöÅäÖÃÖ»ÒªÔÚÏÂÃæ×ֵ䶨ÒåÖÐÐÂÔöÒ»Ðм´¿É
|
#Ó÷¨£¬importÄ£¿éºó£¬Ö±½ÓDBConfig.¿ª¹ØÃû³Æ ¼´¿É
|
dbconfig = {
|
#auth section
|
"userdb_user":['', "auth"],
|
"userdb_pwd":['', 'auth'],
|
|
#connect section
|
"USER_DB_PORT":[27017, "connect"], #MongoDB¶Ë¿Ú
|
"USER_DB_IP":["localhost", "connect"], #MongoDB IP
|
"USER_DB_NAME":["GameUser", "connect"], #MongoDB Name
|
"USER_DB_Log":["GameLog", "connect"], #MongoDB Name
|
|
#update
|
"Spid":["test", "update"],
|
"Serverid":["s1", "update"], # ûÓзþÎñÆ÷ID ±êʶ±£³ÖÔÀ´µÄ Ö»¸Ä±äspid
|
|
"BeforeSpid":["test", "update"],
|
"BeforeServerid":["s1", "update"],
|
}
|
|
|
def ReadCongfigValue(config, secname, keyname, defvalue):
|
try:
|
if config.has_option(secname, keyname):
|
value = config.get(secname, keyname)
|
# if type(defvalue) == str:
|
# value = type(defvalue)(value)
|
if type(defvalue) == bool:
|
value = type(defvalue)(int(value))
|
elif type(defvalue) in (dict, list, tuple):
|
value = eval(value)
|
else:
|
value = type(defvalue)(value)
|
else:return defvalue
|
except:
|
msg = error.formatMsg('error', error.ERROR_NO_18, 'config = %s, secname = %s, keyname = %s, defvalue = %s\n%s'%(config, secname, keyname, defvalue, traceback.format_exc()))
|
mylog.error(msg)
|
return None
|
# print value
|
return value
|
|
|
|
def ReadDBConfig():
|
try:
|
config = ConfigParser.ConfigParser()
|
config.read(os.path.join(GlobalFunctions.getAppPath(), 'config\\config.ini'))
|
|
self_module = __import__(__name__)
|
|
#¶ÁÈ¡Êý¾Ý¿âÅäÖÃÎļþ
|
for k, v in dbconfig.items():
|
value = ReadCongfigValue(config, v[1], k, v[0])
|
if value == None:return False
|
|
setattr(self_module, k, value)
|
|
except:
|
msg = error.formatMsg('error', error.ERROR_NO_28, '%s'%traceback.format_exc())
|
mylog.error(msg)
|
return False
|
return True
|
|
dbconfig_init = False
|
|
if not dbconfig_init:
|
if not ReadDBConfig():
|
msg = error.formatMsg('fatal', error.ERROR_NO_29, "Init config failed.")
|
mylog.fatal(msg)
|
dbconfig_init = True
|
|
|