#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
#-------------------------------------------------------------------------------
|
#
|
|
from Common import mylog
|
import CommonDefine
|
from datetime import datetime
|
from uuid import uuid1
|
import pymongo
|
import traceback
|
#from Config import DBConfig
|
import base64
|
from DBCommon import error
|
import ChConfig
|
|
__state = CommonDefine.mssNone
|
|
|
def setServerState(newState):
|
global __state
|
__state = newState
|
|
def getServerState():
|
global __state
|
return __state
|
|
def getAppPath():
|
return ChConfig.GetDBPath()
|
|
|
def GetTransactionIDStr(len):
|
nowtime = datetime.today()
|
return ("%04d%02d%02d%02d%02d%02d%03d%X-%X-%X-%X%X%X"%(nowtime.timetuple()[:6] + tuple([nowtime.microsecond/1000]) + uuid1().fields))[:len]
|
|
|
BASE64_ENCODE_CNT = 3
|
XOR_KEY = 151
|
def GetEncodePsw(psw):
|
ret = ""
|
try:
|
for i in range(BASE64_ENCODE_CNT):
|
psw = base64.decodestring(psw)
|
except:
|
msg = error.formatMsg('error', error.ERROR_NO_40, '%s'%traceback.format_exc())
|
mylog.error(msg)
|
return False,ret
|
|
for i in psw:
|
ret += chr(ord(i)^XOR_KEY)
|
return True, ret
|
|
|
#µÇ¼Êý¾Ý¿âÑéÖ¤
|
def LoginMongoDB(user, pwd, ip = '', port = '', connection = None ):
|
try:
|
if not connection:
|
connection = pymongo.Connection(ip, port, auto_start_request=False)
|
db = connection.admin
|
return db.authenticate(user, pwd)
|
except:
|
mylog.info('Login mongodb failed:user = %s,pwd = %s'%(user, pwd))
|
msg = error.formatMsg('error', error.ERROR_NO_41, '%s'%traceback.format_exc())
|
mylog.error(msg)
|
return False
|
|
|