--- OSA_system2/OSAS_browser.py 2005/02/10 19:50:18 1.8 +++ OSA_system2/OSAS_browser.py 2005/02/10 20:23:24 1.9 @@ -27,7 +27,6 @@ class OSAS_storeOnline(SimpleItem): security=ClassSecurityInfo() _v_fileSystem={} #chache fuer filesystem - _v_metaFiles={} #chache fuer indexMeta @@ -61,68 +60,7 @@ class OSAS_storeOnline(SimpleItem): - def getSubDirsFromIndexMeta(self,path): - - """Gebe alle path untergeordenten Objekte aus - @param path: optional, default ist "", Pfad auf das Object relativ zum rootFolderName - @return: Directory [pfad auf das Objekt]->(fileType,''), fileType ist hierbei OSAS_dir_archive falls Object ein directory und OSAS_file_archive falls das Object ein File ist,der zweite Eintrag des Tupels ist zur Zeit immer '', spaeter wird hier die Beschreibung gemaess Metadaten stehen, wie bei readObjectsFromPath. - @todo: Rueckgabe einer Beschreibung gemaess Metadaten - """ - ret={} - server=xmlrpclib.Server(self.serverUrl) - indexMeta,stats=server.findIndexMetaWithStats(path)#findex index.meta zu path. - - if not indexMeta: - return ret - - realPath=os.path.split(indexMeta)[0] - path=path.replace(realPath,"") - if path and (path[0]==os.sep): #falls am Anfang os.sep steht lösche dieses. - path=path[1:] - - - - #teste ob schon im cache - - if self._v_metaFiles.has_key(path) and (self._v_metaFiles[path][0]==stats[stat.ST_MTIME]): - return self._v_metaFiles[path][1] - - try: - dom=xml.dom.minidom.parse(indexMeta) - except: - zLOG.LOG("OSAS_browser (getSubDirsFromIndexMeta)",zLOG.ERROR,"Cannot parse: %s"%indexMeta) - - - dirs=[] - dirs=dom.getElementsByTagName('dir')+dom.getElementsByTagName('file') - - for dir in dirs: - pathes=dir.getElementsByTagName('path') - if pathes: - pathX=OSAS_helpers.getText(pathes[0].childNodes) - else: - pathX="" - names=dir.getElementsByTagName('name') - if names: - name=OSAS_helpers.getText(names[0].childNodes) - else: - name="" - - #print "PP",pathX,path - if pathX==path: - if dir.tagName=="dir": - fileType="OSAS_dir_archive" - else: - fileType="OSAS_file_archive" - - object=os.path.join(realPath,pathX,name) - ret[object]=(fileType,'') - - self._v_metaFiles[path]=(stats[stat.ST_MTIME],ret) # speicher im chache - return ret - - - + def readObjectsFromPath(self,path="",metaDataId=None): """Liest files aus dem path und speichert im cache _v_filesystem. @@ -214,7 +152,9 @@ class OSAS_storeOnline(SimpleItem): objects=self.readObjectsFromPath(path) if not objects: objects={} - im=self.getSubDirsFromIndexMeta(path) + + server=xmlrpclib.Server(self.serverUrl) + im=server.getSubDirsFromIndexMeta(path) for key in im.keys(): #virtuelle pfade hinzufuegen