version 1.2, 2008/10/02 11:42:43
|
version 1.7, 2008/10/29 12:20:08
|
Line 1
|
Line 1
|
|
|
from threading import Thread |
from threading import Thread |
from ZPublisher.HTTPResponse import HTTPResponse |
from ZPublisher.HTTPResponse import HTTPResponse |
from ZPublisher.HTTPRequest import HTTPRequest |
from ZPublisher.HTTPRequest import HTTPRequest |
Line 6 from ZPublisher.BaseRequest import Reque
|
Line 5 from ZPublisher.BaseRequest import Reque
|
import logging |
import logging |
import os |
import os |
import transaction |
import transaction |
|
|
|
|
|
def correctFileName(filename): |
|
m1=filename[0:3] |
|
m2=filename[3:5] |
|
name=os.path.join("cdliRoot","cdlimain",m1,m2,filename) |
|
logging.debug("%s corrected zu name %s"%(filename,name)) |
|
return name |
|
|
class DownloadBasketFinallyThread(Thread): |
class DownloadBasketFinallyThread(Thread): |
|
|
def __init__(self): |
def __init__(self): |
Line 87 class DownloadBasketFinallyThread(Thread
|
Line 95 class DownloadBasketFinallyThread(Thread
|
req = HTTPRequest(None, env, resp) |
req = HTTPRequest(None, env, resp) |
return app.__of__(RequestContainer(REQUEST = req)) |
return app.__of__(RequestContainer(REQUEST = req)) |
|
|
|
|
def downloadObjectsAsOneFileFinally(self,lock=None,procedure=None,user=None,current="no",basketVersion=None): |
def downloadObjectsAsOneFileFinally(self,lock=None,procedure=None,user=None,current="no",basketVersion=None): |
"""print do the download""" |
"""print do the download""" |
logging.debug("download thread") |
logging.debug("download thread") |
|
|
logging.debug("donwloadBasketasonefile: found basket:"+repr(basketVersion)) |
logging.debug("downloadBasketasonefile: found basket:"+repr(basketVersion)) |
ret="" |
ret="" |
|
|
self.counter=0 |
self.counter=0 |
#fh=file("/var/tmp/test","w") |
#fh=file("/var/tmp/test","w") |
files=[] |
files=[] |
|
lockedFiles=[] |
objects=basketVersion.getContent() |
objects=basketVersion.getContent() |
|
logging.debug("got object in main call") |
self.number=len(objects) |
self.number=len(objects) |
|
logging.debug("objects:"+repr(self.number)) |
for object in objects: |
for object in objects: |
|
obj=self.ctx.getFileObject(object[0]) |
self.counter+=1 |
self.counter+=1 |
# logging.error("ret:"+repr(object[0])) |
# logging.error("ret:"+repr(object[0])) |
# logging.error(" -"+repr(procedure)) |
# logging.error(" -"+repr(procedure)) |
lockedBy=object[1].lockedBy |
try: |
|
lockedBy=obj.lockedBy |
|
except: |
|
logging.error("no object:"+repr(self.counter)) |
|
logging.error("no object:"+repr(object)) |
|
continue |
|
|
# lockedBy="" |
# lockedBy="" |
# logging.error(" -"+repr(lockedBy)) |
# logging.error(" -"+repr(lockedBy)) |
# |
# |
if (procedure=="downloadAll") or (lockedBy=='') or (lockedBy==user): |
|
#logging.error("ret1") |
#logging.error("ret1") |
if current=="no": #version as they are in the basket |
if current=="no": #version as they are in the basket |
#logging.error("ret2") |
#logging.error("ret2") |
#object[0].addToFile2("/var/tmp/test2") |
#object[0].addToFile2("/var/tmp/test2") |
#ret+=str(object[0].getData())+"\n" |
#ret+=str(object[0].getData())+"\n" |
files.append(object[0].getFileName()) |
logging.debug("CURRENT YES") |
|
files.append(obj.getVersionNr(object[1]).getFileName()) |
elif current=="yes": |
elif current=="yes": |
logging.error("ret3") |
#logging.error("ret3") |
#search current object |
#search current object |
#founds=self.CDLICatalog.search({'title':object[1].getId().split(".")[0]}) |
#founds=self.CDLICatalog.search({'title':object[1].getId().split(".")[0]}) |
obj=self.ctx.getFileObjectLastVersion(object[1].getId()) |
obj=self.ctx.getFileObjectLastVersion(object[0]) |
if obj: |
if obj: |
files.append(obj.getFileName()) |
logging.debug("CURRENT NO") |
|
files.append(correctFileName(obj.getFileName())) |
else: |
else: |
logging.error("donwloadBasketasonefile: don't know: "+repr(object[0].getId())) |
logging.error("downloadBasketasonefile: don't know: "+repr(object[0])) |
#if len(founds)>0: |
#if len(founds)>0: |
# ret+=str(founds[0].getObject().getLastVersion().getData())+"\n" |
# 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],lockedBy)) |
|
|
#if lock and lockedBy=='': |
#if lock and lockedBy=='': |
#obj=self.ctx.getFileObject(object[1].getId()) |
#obj=self.ctx.getFileObject(object[1].getId()) |
Line 154 class DownloadBasketFinallyThread(Thread
|
Line 178 class DownloadBasketFinallyThread(Thread
|
if not hasattr(self.ctx,'resultHash'): |
if not hasattr(self.ctx,'resultHash'): |
self.ctx.resultHash={} |
self.ctx.resultHash={} |
self.ctx.resultHash[self.getName()]=files |
self.ctx.resultHash[self.getName()]=files |
|
|
|
if not hasattr(self.ctx,'resultLockedHash'): |
|
self.ctx.resultLockedHash={} |
|
self.ctx.resultLockedHash[self.getName()]=lockedFiles |
|
|
transaction.get().commit() |
transaction.get().commit() |
self.conn.close() |
self.conn.close() |
logging.error("---------download thread:run9") |
logging.error("---------download thread:run9") |