def check(self, dbw=None): if (dbw is not None): self.dbw = dbw if (self.step > 0): return if (self.tbn is None or type(self.tbn) != type("")): raise errs.RbErr("error table to be controlled") if (self.dtfield is None or type(self.dtfield) != type("")): raise errs.RbErr("error field of the table to be controlled") if (self.dbw is None): # todo0901 raise errs.RbErr("error dbwrap") self._setTbn() self._init() ''' try: self._init() except: wlog.doTraceBack() ''' self.step = 1 return
def onRcvOK(res): if (len(res) < 2): errs.RbRemoteErr("ERR_RECV") if (res[0] == "OK"): return res[0] raise errs.RbRemoteErr(res[0])
def parseAnswerStr(datastr): if (type(datastr) == type('') and len(datastr) == 21): ret = [datastr[0], datastr[1:11], datastr[12:]] try: int(ret[1]) int(ret[2]) return ret except: wlog.getExLogger(cfgvol.upg['logtag']).debug(datastr) raise errs.RbRemoteErr("ERR_RECV") raise errs.RbRemoteErr("ERR_RECV")
def ftpDowns(self,oftp,ftpdir,wkpath,funW,funF): if(oftp is None or funW is None or funF is None):return bn=dirf.joinPath(wkpath, ftpdir) ftpfs=[] try: ftpfs=oftp.nlst() except: wlog.doTraceBack() raise errs.RbFtpErr("error get ftp files") for ftpf in ftpfs: if(ftpw.ignorFile(ftpf) or ftpw.existFile(ftpf,wkpath)):continue localW=funW(bn) localF=funF(bn) try: ##wlog.getLogger().debug("from ftp:"+ftpf) ftpw.downFile(oftp,ftpf,localW) ##wlog.getLogger().debug("ftp ok:"+localW) except: wlog.doTraceBack() continue try: ftpw.delFile(oftp,ftpf) except: wlog.doTraceBack() continue dirf.fileRename(localW, localF) return
def _check(self, rightStep): if (self.step != rightStep): oldstep = self.step self.reset() ### reset for error raise errs.RbErr( self.tbn + " the right step is %s but now is %s" % (str(self.flow[rightStep]), str(self.flow[oldstep])))
def __init__(self, basepath, imptype, detaSec, delaySec=0): if (imptype is None): raise errs.RbErr("error imptype") _BasePooledDaemon.__init__(self, basepath, imptype, detaSec, delaySec) return
def parse(self, datalst): if (self._tbname is None): raise errs.RbErr("no table name") return RRPS.dtParse2Str( datetime.datetime.now(), 'DateTime21') + self._tbname, RRPS.listParse2Str( datalst, self._datadef, ";")
def _curexe(curs, *arg): try: curs.execute(*arg) except: emsg = "error_curexe()" + str(arg) wlog.getExLogger(rbdatabase.logTag).debug(emsg) wlog.doExTraceBack(rbdatabase.logTag) raise errs.RbDBErr(emsg)
def ReduceZipTranDaemon(basepath, imptype, detaSec=None, delaySec=0): if (imptype is None or not (imptype in rbcfg.IMPLEMENTS)): raise errs.RbErr("error imptype" + imptype) if (detaSec is None): detaSec = datetime.timedelta( seconds=rbcfg.IMPLEMENTS[imptype]["TIMER"]) return _ReduceZipTranDaemon(basepath, imptype, detaSec, delaySec)
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 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 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 dpop(self): if (self._rcd < self._max): if (len(self._pl) < 1): self._pl.append(self._newDB_()) ret = self._pl.pop() self._rcd = self._rcd + 1 return ret raise errs.RbErr("FUll")
def CaptureMapDaemon(basepath, imptype, detaSec=None, delaySec=0): if (imptype is None or not (imptype in rbcfg.IMPLEMENTS)): raise errs.RbErr("error imptype" + imptype) if (detaSec is None): detaSec = datetime.timedelta( seconds=rbcfg.IMPLEMENTS[imptype]["TIMER"]) cls = _CaptureMapDaemon if ("CAP" in rbcfg.TRAN and rbcfg.TRAN["CAP"] in capdaemons): cls = capdaemons[rbcfg.TRAN["CAP"]] #return _CaptureMapDaemon(basepath,imptype,detaSec,delaySec) return cls(basepath, imptype, detaSec, delaySec)
def _chkTable(self): if (self.ctrlType in CtrlTypes): ctype = CtrlTypes[self.ctrlType] self.fields = ctype["FLDS"] self.chktable = ctype["CHK"] % self.tbn self.createtable = ctype["CREATE"] % self.tbn chkCreateTable(self.dbw, CHK=self.chktable, CREATE=self.createtable) return raise errs.RbErr("error ctrl type %s" % self.ctrlType)
def writeF(self, filename, strlst): if (filename is None): raise errs.RbErr("error file") ff = self._openF(filename) ff.write(self.head) if (strlst is not None and len(strlst) > 0): #ff.writelines(strlst[:len(strlst)-1]) for strr in strlst[:len(strlst) - 1]: ff.write(strr + "\n") ff.write(strlst[len(strlst) - 1]) ff.write(self.tail) ff.close() return
def __init__(self, basepath, imptype, detaSec=datetime.timedelta(seconds=30), delaySec=0): if (imptype is None): raise errs.RbErr("none imptype") _BasePooledDaemon.__init__(self, basepath, imptype, detaSec, delaySec) #refp=rbcfg.IMPLEMENTS[imptype]["PATH"] work msg #rbcfg.RUNMSG[imptype]="OK" #todo stop cfgcmd.setCmd(imptype="OK") self.runner = MapReduceAction.BaseReduceAction(self._basepath, self._imptype) self.heartbeat = None if (self._imptype in rbcfg.TRAN["HeartBeat"]): self.heartbeat = MapReduceAction.HeartBeatAction( self._basepath, self._imptype) return
def exe(self): if(self._ftpdir is None or self._wkpath is None):return oftp=None back=False try: oftp=ftpw.FTPPool.pop(self._imptype) ##wlog.getLogger().debug("do ftp:"+self._ftpdir) oftp.cwd(self._ftpdir) self.ftpDowns(oftp, self._ftpdir, self._wkpath, BaseAction.getWFileName, BaseAction.getWFFileName) return except: wlog.doTraceBack() back=True raise errs.RbFtpErr("error work for ftp") finally: ftpw.FTPPool.back(oftp, self._imptype, back) oftp=None
def createQuery(tbn, fldns, wheresub=""): if (tbn is None or type(tbn) != type('')): raise errs.RbErr("error table name!!!") return "select " + createFieldsStr( fldns) + " from " + tbn + " " + wheresub
def onDatas(res): result = parseAnswerStr(res[1]) if (result[0] <> '1'): raise errs.RbRemoteErr("ERR_RECV") return result
def getZipFileName(bn): if (bn is None or type("") != type(bn)): raise errs.RbErr("error file name") return bn + fileSuffs[4]
def createDel(tbn, wheresub=""): if (tbn is None or type(tbn) != type('')): raise errs.RbErr("error table name!!!") return "delete from " + tbn + " " + wheresub
def createFieldsStr(fldns): if (fldns is None or len(fldns) < 1): raise errs.RbErr("Empty fields!!!") return rbruntime.StringUtils.pAstr(fldns)