예제 #1
0
파일: utils.py 프로젝트: mghui/restgang
def reloadDataSource():
    '''
    加载数据库中的P_AT_DATASOURCE表保存的数据源,只支持jdbc:oracle:thin:@127.0.0.1:1521:orcl,stu,stu格式的数据库链接串
    @return:
    '''
    dbmap = db.querySQL2map("select DATAID,DATAURL from P_AT_DATASOURCE")
    if len(dbmap) == 0:
        return
    rs = {}
    for item in dbmap:
        url = item["DATAURL"]
        if url.find("jdbc:oracle:thin") != -1:
            # jdbc:oracle:thin:@127.0.0.1:1521:orcl,stu,stu
            us = url.split(",")
            if len(us) != 3:
                continue
            r = {"USER": us[1], "PASSWORD": us[2]}
            i = us[0].find("@")
            if i == -1:
                continue

            s = us[0][-1 * (len(us[0]) - us[0].find("@") - 1):]
            ss = s.split(":")
            if len(ss) != 3:
                continue
            r["HOST"] = ss[0]
            r["PORT"] = ss[1]
            r["NAME"] = ss[2]
            rs[item["DATAID"]] = r
    redistip.put2redis("P_AT_DATASOURCE", rs)
    for key in rs:
        redistip.put2redis("P_AT_DATASOURCE_%s" % key, rs[key])
        settings.DATABASES[key] = rs[key]
예제 #2
0
파일: utils.py 프로젝트: mghui/restgang
 def reloadAppkey(cur):
     """
     重新加载appkey回调句柄
     :param cur:
     :return:
     """
     preKey = "APPKEY_"
     ks = GLOBAREDIS.keys(preKey + "*")
     field = ['app_id', 'publickey', 'privatekey', 'uname', 'pwd']
     appkeys = []
     for item in cur.fetchall():
         d = dict(zip(field, item))
         srvs = []
         for srv in appsrv:
             if srv["APP_ID"] == d['app_id']:
                 srvs.append(srv["SERVICE_ID"])
         d["services"] = srvs
         key = preKey + d['app_id']
         redistip.put2redis(key, d)
         if key in ks:
             ks.remove(key)
         appkeys.append(key)
         if settings.DEBUG:
             settings.infoLogger.info("add app data,appkey:%s" %
                                      (preKey + d['app_id']))
     for k in ks:
         GLOBAREDIS.delete(k)
예제 #3
0
파일: utils.py 프로젝트: mghui/restgang
 def reloadplant(cur):
     field = [
         'platid', 'area', 'contacts', 'pluguel', 'sysusername', 'syspwd'
     ]
     for item in cur.fetchall():
         redistip.put2redis("PC_" + item[4], dict(zip(field, item)))
         if settings.DEBUG:
             settings.infoLogger.info("add plantfrom,key:%s" %
                                      ("PC_" + item[4]))
예제 #4
0
파일: utils.py 프로젝트: mghui/restgang
 def reloadcloudSrv(cur):
     field = [
         "SERVICEID", "TYPE", "SERVICENAME", "URL", "ENABLED", "CACHETYPE",
         "SECRET", "MSGLOG", "NOTE", "SERVICETYPE", "ORIGIALURL", "META",
         "ORIGIALSECURITY", "PLANTID"
     ]
     for item in cur.fetchall():
         redistip.put2redis("SC_" + str(item[0]), dict(zip(field, item)))
         if settings.DEBUG:
             settings.infoLogger.info("add cloud service,key:%s" %
                                      ("PC_" + str(item[0])))
예제 #5
0
파일: utils.py 프로젝트: mghui/restgang
    def reloadservice(cur):
        field = [
            'serviceid', 'type', 'servicename', 'url', 'enabled', 'cachetype',
            'origialurl', 'namespace', 'secret', 'msglog'
        ]

        for item in cur.fetchall():
            d = dict(zip(field, item))
            redistip.put2redis("SRV_URL_" + d["url"], d)
            if ("SRV_URL_" + d["url"]).encode(encoding="utf-8") in keys:
                keys.remove(("SRV_URL_" + d["url"]).encode(encoding="utf-8"))
            if settings.DEBUG:
                settings.infoLogger.info("app ws service,key:%s" %
                                         ("SRV_URL_" + d["url"]))
예제 #6
0
파일: utils.py 프로젝트: mghui/restgang
def _reloadCacheData():
    ks = GLOBAREDIS.keys("CACHE_*")
    for k in ks:
        GLOBAREDIS.delete(k)
    for item in settings.CACHE_TABLES:
        key = "CACHE_" + item[3] + "_"
        data = db.querySQL2map(item[0], None, item[1])
        for d in data:
            k = key + '_'.join(map(lambda x: d[x], item[2]))
            if (item[4] is None) or (len(item[4]) == 0):
                redistip.put2redis(k, d)
            elif len(item[4]) == 1:
                redistip.putStr2redis(k, d[item[4][0]])
            else:
                redistip.put2redis(k, dict([[r, d[r]] for r in item[4]]))