def work(self, content, waitsec=1): self.write(content) cmodem.doSleep(waitsec) data = self.readline() #print "work" , data wlog.getLogger().debug("CDTU work readed:" + str(data)) return data
def fileRename(old, new): try: os.rename(old, new) except Exception, err: #after 0.8.8 wlog.getLogger().error("ignor err for fileRename file:%s to %s" % (old, new)) wlog.doTraceBack()
def onFAILRECV(): if(inLinux()): wlog.getLogger().error("FAIL_RECV remote listener error in linux") return "FAIL_RECV" wlog.getLogger().error("ignor FAIL_RECV remote listener error in win") return "OK"
def workWmR(self,content,readsize,waitsec=1,maxARead=1024): # after 0.8.6 if(maxARead<1): return [self.workWR(content, readsize, waitsec)] cpr=str(content) wlog.getLogger().debug("CDTU workWmR towrite :" +cpr[0:60]) self.write(content) cmodem.doSleep(waitsec) datas=[] worksize=readsize cworksize=min(worksize,maxARead) while(worksize>0): data= self.doRead(cworksize) wlog.getLogger().debug(str(len(data))+" bytes--CDTU workWmR readed:" +str(data)[:21]) if(data is None): cmodem.doSleep(waitsec) data= self.doRead(cworksize) if(data is None): break datas.append(data) worksize=worksize-cworksize if(worksize>0): raise "error rcv" return datas
def freshDBStrByDB(fdb): def commDBStr(): return {"DATABASE": 'intranet', "PAGESIZE": 500} def winDB(fdb): # {SQL Server Native Client 10.0} {SQL Server} return { "DRIVER": rbconf.getWinSQLDriver(), "SERVER": fdb["DB_IP"], "PORT": fdb["DB_PORT"], "PAGESIZE": 50 } def linuxDB(fdb): import rbruntime.Linux as linux return linux.linuxDBStr def dbUserPSW(fdb): return {"UID": fdb["DB_USER"], "PWD": fdb["DB_PSW"]} def dbDriverServer(fdb): if (inLinux()): return linuxDB(fdb) return winDB(fdb) if ("DB_USER" not in fdb): return if (conff.db is None): conff.db = commDBStr() if (fdb["LOCAL_CAPTYPE"] == "DB"): conff.db.update(dbUserPSW(fdb)) conff.db.update(dbDriverServer(fdb)) wlog.getLogger().debug(str(conff.db)) freshCAPTYPE(fdb) return
def onStart(): wrkCtrl.onPath(curpath) rbcfg.RUNMSG["COMM"] = "STOP" rbcfg.WEB["tpls"] = webroot rbcfg.WEB["tplsA"] = dfile.joinPath(webroot, "WEB-INF") wlog.getLogger().debug(webroot) cfgdb.onCfg() #cfgdb.freshConfByDB() app = webRun() session = tweb.session.Session(app, tweb.session.DiskStore('sessions'), initializer={'count': 0}) import rbsite.CmdRender as CmdRender refs4tpl = { 'context': session, "vtypeof": type, "cmdsRender": CmdRender.cmdsRender1 } render = tweb.template.render(rbcfg.WEB["tpls"], globals=refs4tpl) renderA = tweb.template.render(rbcfg.WEB["tplsA"], globals=refs4tpl) rbcfg.WEB["render"] = render rbcfg.WEB["renderA"] = renderA rbcfg.WEB["app"] = app rbsite.RBSite.regPageCtx4Tpls() return
def work(self,content,waitsec=1): self.write(content) cmodem.doSleep(waitsec) data= self.readline() #print "work" , data wlog.getLogger().debug("CDTU work readed:" +str(data)) return data
def freshDBStrByDB(fdb): def commDBStr(): return {"DATABASE":'intranet', "PAGESIZE":500} def winDB(fdb):# {SQL Server Native Client 10.0} {SQL Server} return {"DRIVER":rbconf.getWinSQLDriver(),"SERVER":fdb["DB_IP"],"PORT":fdb["DB_PORT"] ,"PAGESIZE":50} def linuxDB(fdb): import rbruntime.Linux as linux return linux.linuxDBStr def dbUserPSW(fdb): return {"UID":fdb["DB_USER"],"PWD":fdb["DB_PSW"]} def dbDriverServer(fdb): if(inLinux()):return linuxDB(fdb) return winDB(fdb) if("DB_USER" not in fdb):return if(conff.db is None):conff.db=commDBStr() if(fdb["LOCAL_CAPTYPE"]=="DB"): conff.db.update(dbUserPSW(fdb)) conff.db.update(dbDriverServer(fdb)) wlog.getLogger().debug(str(conff.db)) freshCAPTYPE(fdb) return
def onFAILRECV(): if (inLinux()): wlog.getLogger().error("FAIL_RECV remote listener error in linux") return "FAIL_RECV" wlog.getLogger().error("ignor FAIL_RECV remote listener error in win") return "OK"
def workWmR(self, content, readsize, waitsec=1, maxARead=1024): # after 0.8.6 if (maxARead < 1): return [self.workWR(content, readsize, waitsec)] cpr = str(content) wlog.getLogger().debug("CDTU workWmR towrite :" + cpr[0:60]) self.write(content) cmodem.doSleep(waitsec) datas = [] worksize = readsize cworksize = min(worksize, maxARead) while (worksize > 0): data = self.doRead(cworksize) wlog.getLogger().debug( str(len(data)) + " bytes--CDTU workWmR readed:" + str(data)[:21]) if (data is None): cmodem.doSleep(waitsec) data = self.doRead(cworksize) if (data is None): break datas.append(data) worksize = worksize - cworksize if (worksize > 0): raise "error rcv" return datas
def dtParse2StrP(dt, fmt): adt = dt wlog.getLogger().debug('dtParse2StrP:' + str(adt)) if (adt is None): #dt1900() patchParse2Str(dt) #return patchParse2Str(dt) adt = dt1900() wlog.getLogger().debug('dtParse2StrP:' + str(adt)) return dtParse2Str(adt, fmt)
def dtParse2StrP(dt,fmt): adt=dt wlog.getLogger().debug('dtParse2StrP:'+str(adt)) if(adt is None): #dt1900() patchParse2Str(dt) #return patchParse2Str(dt) adt=dt1900() wlog.getLogger().debug('dtParse2StrP:'+str(adt)) return dtParse2Str(adt,fmt)
def encode(self, session_dict): try: pickled = pickle.dumps(session_dict) #print "encode session_data:", str([session_dict, pickled ]) wlog.getLogger().debug(str(["encode session_data:", session_dict, pickled ])) return base64.encodestring(pickled) except: wlog.doTraceBack() raise err.RbErr("err.encode session_dict:"+str(session_dict))
def decode(self, session_data): try: pickled = base64.decodestring(session_data) #print "decode session_data:", str([session_data, pickled ]) wlog.getLogger().debug(str(["decode session_data:", session_data, pickled ])) return pickle.loads(pickled) except: wlog.doTraceBack() raise err.RbErr("err.decode session_data:"+str(session_data))
def _post(self): self._pjCaptrue.delPojos(self._dbw,self._ctrl) self._ctrl.reset() self._dbw=None #todo 0901 lmsg= self._imp+"_post()"+self._tbn+"" wlog.getLogger().debug(lmsg) wlog.getExLogger(rbdatabase.logTag).debug(lmsg) return
def encode(self, session_dict): try: pickled = pickle.dumps(session_dict) #print "encode session_data:", str([session_dict, pickled ]) wlog.getLogger().debug( str(["encode session_data:", session_dict, pickled])) return base64.encodestring(pickled) except: wlog.doTraceBack() raise err.RbErr("err.encode session_dict:" + str(session_dict))
def delFile(path,patten): ret=[] for src in glob.glob1(path, patten): sp=joinPath(path,src) if os.path.isfile(sp): try: os.remove(sp) ret.append(sp) except Exception,err: wlog.getLogger().error("err for del file:%s by %s" % (sp,err.message))
def _doexe(self,wkpath,filen): mfn=self.getMainFileName(filen) wk=BaseAction.FileZipTransAction(mfn,wkpath,conff.TRAN["psw"],self._implType,) try: wk.exe() return except Exception,err: wlog.getLogger().error("ReduceAction error:"+err.message) wlog.doTraceBack()
def decode(self, session_data): try: pickled = base64.decodestring(session_data) #print "decode session_data:", str([session_data, pickled ]) wlog.getLogger().debug( str(["decode session_data:", session_data, pickled])) return pickle.loads(pickled) except: wlog.doTraceBack() raise err.RbErr("err.decode session_data:" + str(session_data))
def doRender(*arg, **karg): if (len(arg) < 1): return doRender("index") pg = arg[0] if (pg is None): pg = "index" #print 'doRender' ,pg wlog.getLogger().debug('doRender:' + str(pg)) return rbcfg.WEB["render"]._template(pg)(*arg[1:], **karg)
def doRender(* arg,** karg): if(len(arg)<1): return doRender("index") pg=arg[0] if(pg is None): pg="index" #print 'doRender' ,pg wlog.getLogger().debug('doRender:'+str(pg)) return rbcfg.WEB["render"]._template(pg)(* arg[1:],** karg)
def doPrint(*arg): if (rbconf.hasWinService()): return try: print arg except: wlog.getLogger().error("Linux doPrint ignor:") wlog.doTraceBack() return
def stop(self): if(self._stopingPL is not None ): impt="" if(type(self._imptype)==type('')):impt=self._imptype wlog.getLogger().debug(impt+"_stopingPL.append:"+str(self)) #print impt+"_stopingPL.append:"+str(self) self._stopingPL.append(self) if(not self.chkStart()): self._onstoped() self._stoped=True return
def delFile(path, patten): ret = [] for src in glob.glob1(path, patten): sp = joinPath(path, src) if os.path.isfile(sp): try: os.remove(sp) ret.append(sp) except Exception, err: wlog.getLogger().error("err for del file:%s by %s" % (sp, err.message))
def beforeRemoteStart(): # 1.0.0.1 if ("server" in conff.WEB): try: conff.WEB["server"].shutdown() wlog.getLogger().debug('conff.WEB.server shutdowned') except: wlog.doTraceBack() time.sleep(2) return
def freshTRANByDB(fdb): conff.TRAN["Locator"] = "" conff.TRAN["DeviceCode"] = fdb["DEVCODE"] conff.TRAN["CAP"] = None # after 0.8.7 "CTRLNO" if (conff.TRAN["CTRLNO"] is None or str(conff.TRAN["CTRLNO"]) == '0'): conff.TRAN["CTRLNO"] = devCodeTail5() # after 1.0.0 "CTRLNO" wlog.getLogger().debug("CTRLNO:" + str(conff.TRAN["CTRLNO"])) return
def beforeRemoteStart():# 1.0.0.1 if("server" in conff.WEB): try: conff.WEB["server"].shutdown() wlog.getLogger().debug('conff.WEB.server shutdowned') except : wlog.doTraceBack() time.sleep(2) return
def workWR(self,content,readsize,waitsec=1): # after 0.8.5 cpr=str(content) wlog.getLogger().debug("CDTU workWR towrite :" +cpr[0:60]) self.write(content) cmodem.doSleep(waitsec) data= self.doRead(readsize) #print "work" , data wlog.getLogger().debug(str(len(data))+" bytes--CDTU workWR readed:" +str(data)) return data
def freshTRANByDB(fdb): conff.TRAN["Locator"]="" conff.TRAN["DeviceCode"]=fdb["DEVCODE"] conff.TRAN["CAP"]=None # after 0.8.7 "CTRLNO" if(conff.TRAN["CTRLNO"] is None or str(conff.TRAN["CTRLNO"])=='0'): conff.TRAN["CTRLNO"]=devCodeTail5() # after 1.0.0 "CTRLNO" wlog.getLogger().debug("CTRLNO:"+str(conff.TRAN["CTRLNO"])) return
def stop(self): if (self._stopingPL is not None): impt = "" if (type(self._imptype) == type('')): impt = self._imptype wlog.getLogger().debug(impt + "_stopingPL.append:" + str(self)) #print impt+"_stopingPL.append:"+str(self) self._stopingPL.append(self) if (not self.chkStart()): self._onstoped() self._stoped = True return
def doPrint(* arg): if(rbconf.hasWinService()): return try: print arg except: wlog.getLogger().error("Linux doPrint ignor:") wlog.doTraceBack() return
def start(self, stoped=False): if (self._timer is None): return wlog.getLogger().debug("Daemon tostart" + str(self)) linux.doPrint("Daemon tostart" + str(self)) if self._started is False: self._started = True self._timer.start() wlog.getLogger().debug("Daemon started" + str(self)) linux.doPrint("Daemon started" + str(self)) self._stoped = stoped return
def workWR(self, content, readsize, waitsec=1): # after 0.8.5 cpr = str(content) wlog.getLogger().debug("CDTU workWR towrite :" + cpr[0:60]) self.write(content) cmodem.doSleep(waitsec) data = self.doRead(readsize) #print "work" , data wlog.getLogger().debug( str(len(data)) + " bytes--CDTU workWR readed:" + str(data)) return data
def start(self,stoped=False): if(self._timer is None):return wlog.getLogger().debug("Daemon tostart"+str(self)) linux.doPrint( "Daemon tostart"+str(self)) if self._started is False: self._started=True self._timer.start() wlog.getLogger().debug("Daemon started"+str(self)) linux.doPrint( "Daemon started"+str(self)) self._stoped=stoped return
def _onstoped(self): #if(self._imptype is "BASE"):print self._imptype+":_onstoped:"+str(self);wlog.getLogger().debug(self._imptype+":_onstoped:"+str(self)) if(self._stopingPL is not None and self._stopedPL is not None and self._stopingPL.included(self) and not self._stopedPL.included(self) ): impt="" if(type(self._imptype)==type('')):impt=self._imptype print impt+"_stopedPL.append:"+str(self) wlog.getLogger().debug(impt+"_stopedPL.append:"+str(self)) self._stopedPL.append(self) #time.sleep(3) #self._stopedPL.restart() return
def commpost(data, **karg): rok = ["OK"] if (data is not None and len(data) > 0): #linux.doPrint( data) if (data[0] == '1'): wlog.getLogger().debug("send data success:" + data) else: rok = ["ERR_RECV"] wlog.getLogger().error("ERR_RECV listener error:" + data) else: rok = [onFAILRECV()] return rok
def commpost(data,** karg): rok=["OK"] if(data is not None and len(data)>0) : #linux.doPrint( data) if(data[0]=='1'): wlog.getLogger().debug("send data success:" + data) else: rok=["ERR_RECV"] wlog.getLogger().error("ERR_RECV listener error:"+data) else: rok=[onFAILRECV()] return rok
def sizeTranBydtu(content, adress, readsize, maxARead=1024): rok = ["OK", None] ddelay = cmodem.getDelay() sdtu = None try: sdtu = cdtu.getDTU() sdtu.open() except Exception, x: wlog.getLogger().error("FAIL_DTU remote dtu error") wlog.doTraceBack() cmodem.doSleep(10) # ddelay['socket']['recv'] 10 return ["FAIL_DTU", None]
def exe(self): ok="OK" try: ok=rbcommit.csock.transmit(rbcommit.csock.getHeartBeatProtocol(), self.getRemote()) wlog.getLogger().debug("HeartBeatAction:"+ok) except: wlog.doTraceBack() ok="FAIL_OPENTAR" finally: pass self.post(ok) return
def dtutrans(content,adress): rok="OK" ddelay=cmodem.getDelay() sdtu=None try: sdtu=cdtu.getDTU() sdtu.open() except Exception,x: wlog.getLogger().error("FAIL_DTU remote dtu error") wlog.doTraceBack() cmodem.doSleep(10)# ddelay['socket']['recv'] 10 return "FAIL_DTU"
def onStart(): if(rbcfg.RUNMSG["COMM"]=="OK"):return #rbcfg.RUNMSG["COMM"]="OK" ''' cfgcmd.commCmd("OK") cfgcmd.notifyCommCmd() ''' cfgdb.setRunWhenStart(cfgdb.freshIMPLEMENTSByDB,cfgdb.freshIMPLEMENTADDSByDB,refreshRealPRunnersDaemonPools) if(rbcfg.RUNMSG["COMM"]=="OK"): doStart() wlog.getLogger().debug("WorkdoStarted") return
def sizeTranBydtu(content,adress,readsize,maxARead=1024): rok=["OK",None] ddelay=cmodem.getDelay() sdtu=None try: sdtu=cdtu.getDTU() sdtu.open() except Exception,x: wlog.getLogger().error("FAIL_DTU remote dtu error") wlog.doTraceBack() cmodem.doSleep(10)# ddelay['socket']['recv'] 10 return ["FAIL_DTU",None]
def dtutrans(content, adress): rok = "OK" ddelay = cmodem.getDelay() sdtu = None try: sdtu = cdtu.getDTU() sdtu.open() except Exception, x: wlog.getLogger().error("FAIL_DTU remote dtu error") wlog.doTraceBack() cmodem.doSleep(10) # ddelay['socket']['recv'] 10 return "FAIL_DTU"
def _onstoped(self): #if(self._imptype is "BASE"):print self._imptype+":_onstoped:"+str(self);wlog.getLogger().debug(self._imptype+":_onstoped:"+str(self)) if (self._stopingPL is not None and self._stopedPL is not None and self._stopingPL.included(self) and not self._stopedPL.included(self)): impt = "" if (type(self._imptype) == type('')): impt = self._imptype print impt + "_stopedPL.append:" + str(self) wlog.getLogger().debug(impt + "_stopedPL.append:" + str(self)) self._stopedPL.append(self) #time.sleep(3) #self._stopedPL.restart() return
def socktrans(content, adress): sock = None rok = "OK" ddelay = cmodem.getDelay() try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(30) sock.connect(adress) except Exception, x: wlog.getLogger().error("FAIL_CON remote socket error:" + str(adress)) wlog.doTraceBack() cmodem.doSleep(10) # ddelay['socket']['recv'] 10 return "FAIL_CON"
def _doPWF(self,pjs): if len(pjs)>0: wlog.getLogger().debug(self._imp+":"+self._tbn+"_doPWF()="+str(len(pjs))) pass fname,strl=self._lstParse.parse(pjs) wf=self._wkpath+BaseAction.getWFileName(fname) wff=self._wkpath+BaseAction.getWFFileName(fname) if len(pjs)>0: ##wlog.getLogger().debug(str(self._ctrl)+":"+self._tbn+":"+wf+"_doPWF()="+str(len(strl))) pass self._wFile.writeF(wf,strl) os.rename(wf, wff) return
def socktrans(content,adress): sock=None; rok="OK" ddelay=cmodem.getDelay() try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(30) sock.connect(adress) except Exception,x: wlog.getLogger().error("FAIL_CON remote socket error:"+str(adress)) wlog.doTraceBack() cmodem.doSleep(10)# ddelay['socket']['recv'] 10 return "FAIL_CON"
def exe(self): ok = "OK" try: ok = rbcommit.csock.transmit(rbcommit.csock.getHeartBeatProtocol(), self.getRemote()) wlog.getLogger().debug("HeartBeatAction:" + ok) except: wlog.doTraceBack() ok = "FAIL_OPENTAR" finally: pass self.post(ok) return
def onStart(): if (rbcfg.RUNMSG["COMM"] == "OK"): return #rbcfg.RUNMSG["COMM"]="OK" ''' cfgcmd.commCmd("OK") cfgcmd.notifyCommCmd() ''' cfgdb.setRunWhenStart(cfgdb.freshIMPLEMENTSByDB, cfgdb.freshIMPLEMENTADDSByDB, refreshRealPRunnersDaemonPools) if (rbcfg.RUNMSG["COMM"] == "OK"): doStart() wlog.getLogger().debug("WorkdoStarted") return
def dozip(tarIndex,*args): eval(conff.TRAN["zipper"]) ''' if("os" in conff.TRAN and conff.TRAN["os"]=="test"): pyzip(*args) else: cmdzip(tarIndex,*args) ''' fsize=os.path.getsize(args[tarIndex]) bsize=os.stat(args[tarIndex])[stat.ST_SIZE] msg="tarfile=%s fsize=%s bsize=%s" % (args[tarIndex],str(fsize),str(bsize)) #print msg wlog.getLogger().debug(msg) return fsize,bsize
def dozip(tarIndex, *args): eval(conff.TRAN["zipper"]) ''' if("os" in conff.TRAN and conff.TRAN["os"]=="test"): pyzip(*args) else: cmdzip(tarIndex,*args) ''' fsize = os.path.getsize(args[tarIndex]) bsize = os.stat(args[tarIndex])[stat.ST_SIZE] msg = "tarfile=%s fsize=%s bsize=%s" % (args[tarIndex], str(fsize), str(bsize)) #print msg wlog.getLogger().debug(msg) return fsize, bsize
def tupleParse2Strs(rtp,deftp): ret=[] if(rtp is None): raise errs.RbErr("error input datas") if(deftp is None): raise errs.RbErr("error input data defs") if(len(rtp) <= len(deftp)): i=0 while i<len(rtp): #print deftp[i] wlog.getLogger().debug("tupleParse2Strs:"+str(i)) ret.append(doParse2Str(rtp[i],*deftp[i])) i=i+1 # todo for ex field after 0.8.7 return ret raise errs.RbErr("not match betewn datas and their defs")
def tupleParse2Strs(rtp, deftp): ret = [] if (rtp is None): raise errs.RbErr("error input datas") if (deftp is None): raise errs.RbErr("error input data defs") if (len(rtp) <= len(deftp)): i = 0 while i < len(rtp): #print deftp[i] wlog.getLogger().debug("tupleParse2Strs:" + str(i)) ret.append(doParse2Str(rtp[i], *deftp[i])) i = i + 1 # todo for ex field after 0.8.7 return ret raise errs.RbErr("not match betewn datas and their defs")
def _run(self): _BasePooledDaemon._run(self) cfgcmd.setSts(**{self._imptype:"RUNNING"}) if(self.dbw is None): self.dbw =pjbuilder.DBPool.pop(rbcfg.IMPLEMENTS[self._imptype]["POOL"]) linux.doPrint( self._imptype+".dbw:"+str(self.dbw)) wlog.getLogger().debug( self._imptype+".dbw:"+str(self.dbw)) for r in self.runners: # r.exe(self.dbw) try: r.exe(self.dbw) except errs.RbDBErr,dbe: cfgcmd.setSts(**{self._imptype:"ERRDB"}) pjbuilder.DBPool.back(self.dbw,rbcfg.IMPLEMENTS[self._imptype]["POOL"],True) self.dbw=None wlog.doTraceBack() return except Exception,err: wlog.doTraceBack()
def exe(self,dbw=None): #todo 0901 if(dbw is not None): self._dbw=dbw nowT=datetime.datetime.now() ##wlog.getLogger().debug(self._imp+":exe()"+str(nowT)) self._pjCaptrue.begin(self._dbw,self._ctrl) lmsg= self._imp+"_pjCaptrue.begun:"+str(nowT) wlog.getLogger().debug(lmsg) wlog.getExLogger(rbdatabase.logTag).debug(lmsg) hasNext=True while hasNext==True: pjs,hasNext=self._pjCaptrue.getPojos() if(pjs is None or len(pjs)<1): break self._doPWF(pjs) pjs=[] cmodem.doSleep(1) # reduce cpu usage self._post() return
def postRestart(self): _StopedDaemonPool.postRestart(self) wlog.getLogger().debug("postRestart:"+str(self)) self._dbpool.clear() return