--- cdli/DownloadBasket.py 2008/10/06 10:46:46 1.3 +++ cdli/DownloadBasket.py 2008/10/06 13:35:39 1.5 @@ -90,48 +90,54 @@ class DownloadBasketFinallyThread(Thread """print do the download""" logging.debug("download thread") - logging.debug("donwloadBasketasonefile: found basket:"+repr(basketVersion)) + logging.debug("downloadBasketasonefile: found basket:"+repr(basketVersion)) ret="" self.counter=0 #fh=file("/var/tmp/test","w") files=[] + lockedFiles=[] objects=basketVersion.getContent() self.number=len(objects) + logging.error("objects:"+repr(self.number)) for object in objects: self.counter+=1 # logging.error("ret:"+repr(object[0])) # logging.error(" -"+repr(procedure)) - try: + try: lockedBy=object[1].lockedBy - except: - logging.error("no object:"+repr(self.counter)) - logging.error("no object:"+repr(object)) - continue + except: + logging.error("no object:"+repr(self.counter)) + logging.error("no object:"+repr(object)) + continue # lockedBy="" # logging.error(" -"+repr(lockedBy)) # - if (procedure=="downloadAll") or (lockedBy=='') or (lockedBy==user): + #logging.error("ret1") - if current=="no": #version as they are in the basket - #logging.error("ret2") - #object[0].addToFile2("/var/tmp/test2") - #ret+=str(object[0].getData())+"\n" - files.append(object[0].getFileName()) - elif current=="yes": - logging.error("ret3") - #search current object - #founds=self.CDLICatalog.search({'title':object[1].getId().split(".")[0]}) - obj=self.ctx.getFileObjectLastVersion(object[1].getId()) - if obj: - files.append(obj.getFileName()) - else: - logging.error("donwloadBasketasonefile: don't know: "+repr(object[0].getId())) - #if len(founds)>0: - # ret+=str(founds[0].getObject().getLastVersion().getData())+"\n" - + if current=="no": #version as they are in the basket + #logging.error("ret2") + #object[0].addToFile2("/var/tmp/test2") + #ret+=str(object[0].getData())+"\n" + files.append(object[0].getFileName()) + elif current=="yes": + #logging.error("ret3") + #search current object + #founds=self.CDLICatalog.search({'title':object[1].getId().split(".")[0]}) + obj=self.ctx.getFileObjectLastVersion(object[1].getId()) + if obj: + files.append(obj.getFileName()) + else: + logging.error("downloadBasketasonefile: don't know: "+repr(object[0].getId())) + #if len(founds)>0: + # ret+=str(founds[0].getObject().getLastVersion().getData())+"\n" + + #falls die Datei gesperrit ist nimm sie in die Liste auf. + if not((procedure=="downloadAll") or (lockedBy=='') or (lockedBy==user)): + #logging.error("ret4") + lockedFiles.append((object[0].getId(),lockedBy)) #if lock and lockedBy=='': #obj=self.ctx.getFileObject(object[1].getId()) @@ -159,6 +165,11 @@ class DownloadBasketFinallyThread(Thread if not hasattr(self.ctx,'resultHash'): self.ctx.resultHash={} self.ctx.resultHash[self.getName()]=files + + if not hasattr(self.ctx,'resultLockedHash'): + self.ctx.resultLockedHash={} + self.ctx.resultLockedHash[self.getName()]=lockedFiles + transaction.get().commit() self.conn.close() logging.error("---------download thread:run9")