コード例 #1
0
    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
コード例 #2
0
def onRcvOK(res):
    if (len(res) < 2):
        errs.RbRemoteErr("ERR_RECV")

    if (res[0] == "OK"):
        return res[0]

    raise errs.RbRemoteErr(res[0])
コード例 #3
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")
コード例 #4
0
 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
           
コード例 #5
0
 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])))
コード例 #6
0
ファイル: Daemons.py プロジェクト: wangfeng3769/remotebox
    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
コード例 #7
0
    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, ";")
コード例 #8
0
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)
コード例 #9
0
ファイル: Daemons.py プロジェクト: wangfeng3769/remotebox
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)
コード例 #10
0
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")
コード例 #11
0
 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))
コード例 #12
0
 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))
コード例 #13
0
ファイル: PoolUtils.py プロジェクト: wangfeng3769/remotebox
    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")
コード例 #14
0
ファイル: Daemons.py プロジェクト: wangfeng3769/remotebox
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)
コード例 #15
0
    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)
コード例 #16
0
    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
コード例 #17
0
ファイル: Daemons.py プロジェクト: wangfeng3769/remotebox
    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
コード例 #18
0
 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
コード例 #19
0
ファイル: PojoBuilder.py プロジェクト: wangfeng3769/remotebox
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
コード例 #20
0
    def onDatas(res):
        result = parseAnswerStr(res[1])
        if (result[0] <> '1'):
            raise errs.RbRemoteErr("ERR_RECV")

        return result
コード例 #21
0
def getZipFileName(bn):
    if (bn is None or type("") != type(bn)):
        raise errs.RbErr("error file name")

    return bn + fileSuffs[4]
コード例 #22
0
ファイル: PojoBuilder.py プロジェクト: wangfeng3769/remotebox
def createDel(tbn, wheresub=""):
    if (tbn is None or type(tbn) != type('')):
        raise errs.RbErr("error table name!!!")

    return "delete  from " + tbn + "  " + wheresub
コード例 #23
0
ファイル: PojoBuilder.py プロジェクト: wangfeng3769/remotebox
def createFieldsStr(fldns):
    if (fldns is None or len(fldns) < 1):
        raise errs.RbErr("Empty fields!!!")

    return rbruntime.StringUtils.pAstr(fldns)